{
  "markdown": "# llame\n\nllame is a self-hosted, personal-first **meta-harness**: durable chat and agent\nexecution on your infrastructure, with multi-user isolation for households,\nteams, or organizations. It keeps ownership of Chat and Run identity while\naiming to dispatch peer coding agents over protocols such as ACP and A2A\n(similar to goose) as executor adapters — not a second session system.\n\n## What runs today\n\n- Multi-user with opaque sessions, RLS-enforced tenant isolation, and\n  organizational identity.\n- Durable chat Runs via pg-boss. Progress persists and replays after refresh or\n  reconnect.\n- Operator-managed providers, models, and per-model system prompts in\n  `llame.config.json`, supporting OpenAI-compatible endpoints.\n- Owner-only Projects for organizing chats, with pinning and reversible archive.\n- Bounded tool loop: `search_conversations`, optional line-ranged\n  `conversation_read`, and operator-configured Streamable HTTP MCP tools.\n- Optional native host file tools: selector-based `read`, exact `edit`, and\n  create-only `write`, with durable mutation fencing, plus host `bash` with\n  per-call literal `cwd` and additive `env`, fresh processes, and bounded\n  output. See [native file setup](docs/native-files.md).\n- Owner-scoped Markdown Knowledge Spaces: `knowledge_search` over live files\n  (including uncommitted changes), plus `kb://` reads through the native\n  `read` tool, operator-configured and allowlisted.\n- Optional owner-scoped chat recency digests: an owner opts in to send a bounded\n  list of their other chats' titles and opening excerpts to the configured\n  provider.\n\nNot yet shipped: agent-authored knowledge writes, Git-backed recovery, user\nBYOK, fine-grained tool permissions, subagents. See [ROADMAP.md](ROADMAP.md).\nOperator setup: [docs/conversation-recall.md](docs/conversation-recall.md),\n[docs/knowledge.md](docs/knowledge.md).\n\n## Direction\n\nllame targets an assistant with external tools, a Git-backed Markdown knowledge\nbase, prior-work recall, and self-improving context through recoverable writes.\nKnowledge currently reads live\nowner-scoped files; Git-backed writes begin in #212. Workspaces, artifacts, child\nagents, automation, peer harness adapters (ACP/A2A and similar), and messaging\nchannels follow only after that core loop works. See [VISION.md](VISION.md).\nPrior art for those adapters:\n[docs/research/harnesses/index.md](docs/research/harnesses/index.md).\n\n## Getting started\n\n```bash\npnpm install\ncp apps/api/.env.example apps/api/.env.local\ncp apps/api/llame.config.json.example apps/api/llame.config.json\npnpm db:up\npnpm db:migrate\npnpm db:provision-rls\npnpm dev\n```\n\n`apps/api` needs `POSTGRES_URL` and any provider credentials referenced by\n`llame.config.json`. `apps/web` is a thin client configured with\n`NEXT_PUBLIC_API_URL`. See [AGENTS.md](AGENTS.md) for development setup and\ncommands.\n\nPersonal Knowledge is opt-in. Set an absolute `knowledge.root` in the operator\nconfiguration, mount the same logical stable-ID child directories into every\nprocess that can provision or consume Runs, and add `knowledge_search` and\n`read` to `tools.allowed`. Every Run-authoring API must declare the setting for\nconsistent accept-time availability, even if it does not mount the root.\nConfiguration loading does not probe the root; provisioning and worker\nexecution fail closed when their mount is missing. The Knowledge API keeps the\nroot and local binding out of model context and owner-facing results; allowlisted\nhost `bash` can discover a mounted root through ordinary filesystem commands.\nSee [docs/knowledge.md](docs/knowledge.md).\n\n**Breaking**: `knowledge_read` is deleted. An allowlisted `knowledge_read`\nentry now fails boot; remove it from `tools.allowed` before upgrading. Read\nKnowledge files through the native `read` tool's `kb://<knowledgeSpaceId>/<path>`\nlocator instead.\n\nSelf-hosted Postgres needs `vector` (pgvector) and `pg_trgm` for\nembeddings-backed search. `pnpm db:up` provides both. **Breaking** for\nself-hosters on their own Postgres: switch to a pgvector-capable image before\nupgrading, or the extension migration fails.\n\n`models[]` entries can set `systemPromptFile` to a prompt file; omitting it uses\nthe packaged default. Relative paths resolve from the active config file,\ninvalid overrides fail startup without fallback,\nand prompt contents must be safe for the chat owner to inspect. Each Run binds\nan immutable receipt of the effective prompt and advertised tools. The owner UI\nshows model switches and loads the receipt on demand; host file paths never\nenter the model catalog or receipt. Authoring:\n[apps/api/AGENTS.md](apps/api/AGENTS.md).\n\n`shareRecentChats` defaults off. Enabling sends a frozen, capped digest of the\nowner's other chats' titles and opening excerpts to the configured provider;\nretroactive over existing eligible chats. Disabling stops new baselines,\nre-bakes, and updates, but does\nnot remove a digest already bound to another chat; deleting a source chat is not\nerasure from those existing prompts or receipts. The digest is framed as\nuntrusted data and has no chat identifiers. Compaction excludes the digest from\ncheckpoints by instruction, not structural enforcement.\n\nMCP servers use a top-level `.mcp.json`-shaped `mcpServers` map in\n`llame.config.json`, with two transports. A remote entry is exactly\n`{ type, url, headers? }`, where `http` and `streamable-http` both select\nStreamable HTTP. A local entry is `{ type: \"stdio\", command, args?, env?, cwd? }`,\nrun as a child process — the shape most MCP servers ship.\n\nSecrets use `{env:...}` and `{path:...}` interpolation. Interpolation marks a\nvalue secret: resolved values are redacted from diagnostics, results, and\nerrors, never visible to users or models. A stdio child receives only its\ndeclared `env` plus the MCP SDK's base allowlist — llame's own credentials do\nnot reach it. Runs unsandboxed as the\nllame user. Operators must explicitly allowlist each namespaced tool as\nread-only. See [docs/mcp-tools.md](docs/mcp-tools.md).\n\n## Documentation\n\n- [VISION.md](VISION.md): product direction and deliberate deferrals\n- [ROADMAP.md](ROADMAP.md): sequenced, unshipped work\n- [SPEC.md](SPEC.md): current architecture, invariants, and authority map\n- [CHANGELOG.md](CHANGELOG.md): shipped history\n- [AGENTS.md](AGENTS.md): repository workflow and engineering rules\n- [docs/knowledge.md](docs/knowledge.md): personal Knowledge operator runbook\n- [docs/mcp-tools.md](docs/mcp-tools.md): remote MCP operator runbook\n- [docs/codex-subscription.md](docs/codex-subscription.md): ChatGPT/Codex\n  subscription operator runbook\n- [docs/research/harnesses/index.md](docs/research/harnesses/index.md):\n  peer harness / protocol prior art (noncanonical)\n\nTypeScript throughout: Next.js (`apps/web`), NestJS + worker (`apps/api`),\nshared components (`packages/ui`).\n\n## License\n\n[MIT](LICENSE). Contributions are welcome; opening a pull request licenses your\ncontribution under the same terms.\n",
  "bytes": 6958,
  "sha": "a897a8f59d4204d02990bbc291355a6ff70cd7a421bf8960dacdfbefff2441fa",
  "repo_slug": "leon0399/llame",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_leon0399_llame_docs_research_harnesses_i_69f8b0d2/readme"
}