{
  "markdown": "# Pramana\n\n**Give Claude your domain knowledge.**\n\nWrite what you know in Markdown. Pramana makes it available to Claude — automatically. When your conversation touches your domain, Claude looks up the relevant knowledge without you having to ask.\n\n### Why?\n\nWithout Pramana, Claude guesses your domain rules. With Pramana, Claude looks them up:\n\n> **Before:** \"I'd suggest a standard 30-day return policy…\" (generic guess)\n> **After:** \"Per your pricing-rules artifact, early-payment discount is 5% within 10 days, and enterprise customers get volume discounts.\" (grounded in your knowledge)\n\n> The reference implementation of the semantic layer described in [Knowledge Engineering: The Future of AI-Assisted Software Engineering](https://knowledgeengineering.substack.com/p/knowledge-engineering-the-future).\n\n## Quick start\n\n### Prerequisites\n\n- An MCP-compatible client: [Claude Desktop](https://claude.ai/download) or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)\n\nThe install script downloads a standalone binary — no Bun, Node.js, or other runtime needed.\n\n**Platform support:** macOS (arm64, x64), Linux (x64), Windows (x64).\n\n### 1. Install Pramana\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/lambda-brahman/pramana/main/install.sh | sh\n```\n\n### 2. Configure your MCP client\n\nPramana exposes your knowledge base over [MCP](https://modelcontextprotocol.io) via the `pramana mcp` subcommand. Point your client at it once — no separate plugin needed.\n\n**Claude Desktop** — add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"pramana\": {\n      \"command\": \"pramana\",\n      \"args\": [\"mcp\", \"--source\", \"./knowledge\"]\n    }\n  }\n}\n```\n\n**Claude Code** — run once in your terminal:\n\n```bash\nclaude mcp add pramana -- pramana mcp --source ./knowledge\n```\n\nReplace `./knowledge` with the path to your knowledge directory. For multiple directories, repeat `--source`:\n\n```bash\npramana mcp --source ./law --source ./engineering\n```\n\n### 3. Write a knowledge file\n\nCreate a Markdown file in a directory (e.g., `./knowledge/onboarding.md`):\n\n```markdown\n---\nslug: onboarding-flow\ntitle: Onboarding Flow\ntags: [process, user-facing]\nrelationships:\n  depends-on: [user-account]\n  relates-to: [email-verification]\n---\n\n# Onboarding Flow\n\nNew users go through a three-step onboarding.\n\n## Steps\n\n1. Create account via [[depends-on::user-account]]\n2. Verify email via [[email-verification]]\n3. Complete profile\n\n## Rules\n\n- Email must be verified within 24 hours\n- Profile completion is optional but recommended\n```\n\nEach file is a **knowledge artifact** — a self-contained piece of expertise with a name (`slug`), labels (`tags`), and connections to other artifacts (`relationships`).\n\n### 4. Start Pramana and talk to Claude\n\nIn Claude Code, ask Claude to set things up:\n\n```\n/pramana:setup ./knowledge\n```\n\nClaude starts Pramana, checks that your files were loaded correctly, and reports any issues. Once running, **Claude automatically uses your knowledge base** whenever the conversation needs it.\n\n## Using your knowledge base\n\nThere are two ways to use Pramana — nudge Claude with a hint in your prompt, or invoke the query skill directly.\n\n### Hint in your prompt\n\nMention the knowledge base in parentheses and Claude will look things up:\n\n```\n\"I'm working on the checkout page. How does order validation work?\n(use /pramana:query to check the KB)\"\n\n\"What would break if we changed the pricing model?\n(check the knowledge base with /pramana:query)\"\n```\n\nClaude sees the hint, invokes the query skill, searches your knowledge, reads the relevant sections, follows relationship chains, and answers grounded in what you wrote.\n\n### Invoke directly\n\nWhen you know exactly what you want to look up:\n\n```\n/pramana:query \"what are the onboarding rules?\"\n/pramana:query \"show me everything that depends on user-account\"\n```\n\nFor multiple knowledge bases, specify which one:\n\n```\n/pramana:query law \"what is negligence?\"\n/pramana:query eng \"how does the build pipeline work?\"\n```\n\n## Writing knowledge files\n\nA knowledge file is a Markdown file with a small header (called \"frontmatter\") that tells Pramana what the file is about.\n\n### The header\n\nEvery file needs at least a `slug` — a short, lowercase name that identifies the artifact:\n\n```yaml\n---\nslug: pricing-rules\ntitle: Pricing Rules\ntags: [business, billing]\nrelationships:\n  depends-on: [subscription-plan, discount-policy]\n  relates-to: [invoice]\n---\n```\n\n| Field | Required | What it does |\n|-------|----------|-------------|\n| `slug` | Yes | Unique identifier, lowercase with hyphens (e.g., `pricing-rules`) |\n| `title` | No | Human-readable name. Defaults to the first heading. |\n| `tags` | No | Labels for categorizing (e.g., `[business, billing]`) |\n| `relationships` | No | How this artifact connects to others |\n\n### Relationships\n\nThere are two types:\n\n- **depends-on** — this artifact needs the other to make sense. \"Pricing rules depend on subscription plans.\"\n- **relates-to** — these artifacts are connected but independent. \"Pricing rules relate to invoices.\"\n\n### The body\n\nWrite naturally using Markdown headings:\n\n```markdown\n# Pricing Rules\n\n## Tiers\n\nEnterprise customers get volume discounts...\n\n## Discounts\n\nEarly-payment discount is 5% if paid within 10 days...\n```\n\nUse `##` headings to break content into sections. Claude reads specific sections rather than loading entire files, so good headings help Claude find exactly what it needs.\n\n### Linking artifacts together\n\nUse double-bracket links to connect ideas:\n\n```markdown\nPricing depends on the [[depends-on::subscription-plan]].\nSee also [[invoice]] for billing details.\n```\n\nThese links are optional — the `relationships` header is what Pramana uses to build the graph. But inline links make your files more readable.\n\n## Let Claude write knowledge for you\n\nAuthor agents are useful when you want consistent artifacts across a team, or when generating knowledge as a CI artifact (e.g., API docs from code).\n\nFirst, create an author agent that captures your writing standards:\n\n```\n/pramana:create-author commerce api-docs\n```\n\nClaude asks open-ended questions about your domain expertise, writing style, and quality standards, then saves an author agent. You can create multiple authors for different purposes (e.g., API reference vs tutorials).\n\nThen invoke the author agent to create artifacts:\n\n```\n@\"author-api-docs-commerce (agent)\" write about API rate limiting\n```\n\nClaude delegates to the author agent, which writes artifacts that match your standards — with proper connections to existing artifacts.\n\n## Multiple knowledge bases\n\nIf you have separate domains (e.g., legal knowledge and engineering knowledge), serve them together:\n\n```\n/pramana:setup ./law ./engineering\n```\n\nClaude helps you name each knowledge base and keeps them separate. When you ask a question, specify the domain:\n\n```\n/pramana:query law \"what is negligence?\"\n/pramana:query eng \"how does the build pipeline work?\"\n```\n\n## How Claude uses your knowledge\n\nWith Pramana connected via MCP, Claude has four ways to access your knowledge:\n\n- **Search** — find artifacts by topic or keyword\n- **Get** — read a specific artifact or section\n- **Traverse** — follow dependency chains (\"what does X depend on?\")\n- **List** — see all artifacts, optionally filtered by tags\n\nClaude chooses the right approach automatically based on your question. It reads specific sections rather than loading everything, keeping conversations focused and efficient.\n\n## Configuration\n\nPramana runs on port **5111** by default. To change it:\n\n```bash\npramana start --port 5200            # CLI flag\nPRAMANA_PORT=5200 pramana start      # environment variable\n```\n\n## Validating your knowledge base\n\nRun `pramana lint` to check your files for frontmatter errors, broken links, and missing slugs:\n\n```bash\npramana lint ./knowledge\n```\n\n## Install options\n\n```bash\n# Latest\ncurl -fsSL https://raw.githubusercontent.com/lambda-brahman/pramana/main/install.sh | sh\n\n# Specific version (see Releases for available versions)\ncurl -fsSL https://raw.githubusercontent.com/lambda-brahman/pramana/main/install.sh | sh -s v0.8.1\n```\n\nSee [Releases](https://github.com/lambda-brahman/pramana/releases) for binaries.\n\n## Further reading\n\n- [Technical reference](docs/technical.md) — CLI commands, HTTP API, document format, multi-tenant details\n\n## Troubleshooting\n\n**Daemon won't start**\nCheck if another process is using port 5111: `lsof -i :5111`. Use `--port` or `PRAMANA_PORT` to pick a different port.\n\n**Files not loading**\nEnsure your Markdown files have valid frontmatter with at least a `slug` field. Run `pramana lint ./knowledge` to catch formatting issues.\n\n**Claude isn't using the knowledge base**\nVerify that the MCP server is configured correctly in your client and that Pramana is running. Add a hint like `(use pramana to check the KB)` to your prompt.\n\n**\"Connection refused\" errors**\nThe Pramana daemon may have stopped. Re-run `/pramana:setup ./knowledge` to restart it.\n\n**Stale data after editing files**\nRestart the daemon — Pramana loads files at startup. Re-run `/pramana:setup` to pick up changes.\n\n## Uninstall\n\nRemove the binary:\n\n```bash\nrm ~/.local/bin/pramana\n```\n\nThen remove the `pramana` entry from your MCP client config (`claude_desktop_config.json` or via `claude mcp remove pramana`).\n\n## Development\n\nRust workspace; stable toolchain.\n\n```bash\ncargo build --release -p pramana-cli   # produces target/release/pramana\ncargo test --workspace                 # full test suite\ncargo fmt --check\ncargo clippy --workspace -- -D warnings\n```\n\nInstall the pre-commit hook (`cargo fmt` + `clippy` + lib tests):\n\n```bash\ngit config core.hooksPath .githooks\n```\n\n## License\n\nPrivate\n",
  "bytes": 9834,
  "sha": "fee87f6e311ada318b86536d9919ebb60d00bd828103ea462312cf3803b411f1",
  "repo_slug": "lambda-brahman/pramana",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_lambda_brahman_pramana_pramana_daa0826d/readme"
}