diff --git a/README.md b/README.md index d265d90..63b09d1 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,59 @@ -# Feynman +

+ + Feynman CLI + +

+

The open source AI research agent.

+

+ Docs + npm + License +

-The open source AI research agent +--- + +### Installation ```bash curl -fsSL https://feynman.is/install | bash ``` ```powershell +# Windows irm https://feynman.is/install.ps1 | iex ``` -Or install the npm fallback: - ```bash +# npm fallback npm install -g @companion-ai/feynman ``` -```bash -feynman setup -feynman +Then run `feynman setup` to configure your model and get started. + +--- + +### What you type → what happens + +``` +$ feynman "what do we know about scaling laws" +→ Searches papers and web, produces a cited research brief + +$ feynman deepresearch "mechanistic interpretability" +→ Multi-agent investigation with parallel researchers, synthesis, verification + +$ feynman lit "RLHF alternatives" +→ Literature review with consensus, disagreements, open questions + +$ feynman audit 2401.12345 +→ Compares paper claims against the public codebase + +$ feynman replicate "chain-of-thought improves math" +→ Asks where to run, then builds a replication plan ``` -Feynman works directly inside your folder or repo. For long-running work, keep the stable repo contract in `AGENTS.md`, the current task brief in `outputs/.plans/`, and the chronological lab notebook in `CHANGELOG.md`. - --- -## What you type → what happens - -| Prompt | Result | -| --- | --- | -| `feynman "what do we know about scaling laws"` | Searches papers and web, produces a cited research brief | -| `feynman deepresearch "mechanistic interpretability"` | Multi-agent investigation with parallel researchers, synthesis, verification | -| `feynman lit "RLHF alternatives"` | Literature review with consensus, disagreements, open questions | -| `feynman audit 2401.12345` | Compares paper claims against the public codebase | -| `feynman replicate "chain-of-thought improves math"` | Asks where to run, then builds a replication plan | -| `feynman "summarize this PDF" --prompt paper.pdf` | One-shot mode, no REPL | - ---- - -## Workflows +### Workflows Ask naturally or use slash commands as shortcuts. @@ -56,9 +71,9 @@ Ask naturally or use slash commands as shortcuts. --- -## Agents +### Agents -Four bundled research agents, dispatched automatically or via subagent commands. +Four bundled research agents, dispatched automatically. - **Researcher** — gather evidence across papers, web, repos, docs - **Reviewer** — simulated peer review with severity-graded feedback @@ -67,42 +82,23 @@ Four bundled research agents, dispatched automatically or via subagent commands. --- -## Tools +### Tools - **[AlphaXiv](https://www.alphaxiv.org/)** — paper search, Q&A, code reading, persistent annotations - **Docker** — isolated container execution for safe experiments on your machine -- **Web search** — Gemini or Perplexity, zero-config default via signed-in Chromium -- **Session search** — optional indexed recall across prior research sessions +- **Web search** — Gemini or Perplexity, zero-config default +- **Session search** — indexed recall across prior research sessions - **Preview** — browser and PDF export of generated artifacts --- -## CLI +### How it works -```bash -feynman # REPL -feynman setup # guided setup -feynman doctor # diagnose everything -feynman status # current config summary -feynman model login [provider] # model auth -feynman model set # set default model -feynman alpha login # alphaXiv auth -feynman packages list # core vs optional packages -feynman packages install memory # opt into heavier packages on demand -feynman search status # web search config -``` +Built on [Pi](https://github.com/badlogic/pi-mono) for the agent runtime, [alphaXiv](https://www.alphaxiv.org/) for paper search and analysis, and [Docker](https://www.docker.com/) for isolated local execution. Every output is source-grounded — claims link to papers, docs, or repos with direct URLs. --- -## How it works - -Built on [Pi](https://github.com/badlogic/pi-mono) for the agent runtime, [alphaXiv](https://www.alphaxiv.org/) for paper search and analysis, and [Docker](https://www.docker.com/) for isolated local execution - -Every output is source-grounded — claims link to papers, docs, or repos with direct URLs - ---- - -## Contributing +### Contributing ```bash git clone https://github.com/getcompanion-ai/feynman.git diff --git a/assets/hero-raw.png b/assets/hero-raw.png new file mode 100644 index 0000000..21675f4 Binary files /dev/null and b/assets/hero-raw.png differ diff --git a/assets/hero.png b/assets/hero.png new file mode 100644 index 0000000..5d7149b Binary files /dev/null and b/assets/hero.png differ diff --git a/extensions/research-tools/alpha.ts b/extensions/research-tools/alpha.ts index d3e3fbf..3f5a5db 100644 --- a/extensions/research-tools/alpha.ts +++ b/extensions/research-tools/alpha.ts @@ -16,7 +16,174 @@ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; import { Type } from "@sinclair/typebox"; import { getExtensionCommandSpec } from "../../metadata/commands.mjs"; -import { formatToolText } from "./shared.js"; +import { collapseExcessBlankLines, formatToolText } from "./shared.js"; + +type JsonRecord = Record; + +type AlphaSearchHit = { + rank?: number; + title?: string; + publishedAt?: string; + organizations?: string; + authors?: string; + abstract?: string; + arxivId?: string; + arxivUrl?: string; + alphaXivUrl?: string; +}; + +type AlphaSearchSection = { + count: number; + results: AlphaSearchHit[]; + note?: string; +}; + +type AlphaSearchPayload = { + query?: string; + mode?: string; + results?: AlphaSearchHit[]; + semantic?: AlphaSearchSection; + keyword?: AlphaSearchSection; + agentic?: AlphaSearchSection; +}; + +function isRecord(value: unknown): value is JsonRecord { + return typeof value === "object" && value !== null && !Array.isArray(value); +} + +function cleanText(value: unknown, maxLength = 320): string | undefined { + if (typeof value !== "string") { + return undefined; + } + + const collapsed = collapseExcessBlankLines(value) + .replace(/\s*\n\s*/g, " ") + .replace(/[ \t]+/g, " "); + if (!collapsed) { + return undefined; + } + + return collapsed.length > maxLength ? `${collapsed.slice(0, maxLength - 1).trimEnd()}…` : collapsed; +} + +function sanitizeHit(value: unknown, fallbackRank: number): AlphaSearchHit | null { + if (!isRecord(value)) { + return null; + } + + const title = cleanText(value.title, 220); + if (!title) { + return null; + } + + return { + rank: typeof value.rank === "number" ? value.rank : fallbackRank, + title, + publishedAt: cleanText(value.publishedAt, 48), + organizations: cleanText(value.organizations, 180), + authors: cleanText(value.authors, 220), + abstract: cleanText(value.abstract, 360), + arxivId: cleanText(value.arxivId, 32), + arxivUrl: cleanText(value.arxivUrl, 160), + alphaXivUrl: cleanText(value.alphaXivUrl, 160), + }; +} + +function sanitizeHits(value: unknown): AlphaSearchHit[] { + if (!Array.isArray(value)) { + return []; + } + + return value + .map((entry, index) => sanitizeHit(entry, index + 1)) + .filter((entry): entry is AlphaSearchHit => entry !== null); +} + +function sanitizeSection(value: unknown): AlphaSearchSection { + if (!isRecord(value)) { + return { count: 0, results: [] }; + } + + const results = sanitizeHits(value.results); + const note = results.length === 0 ? cleanText(value.raw, 600) : undefined; + + return { + count: results.length, + results, + ...(note ? { note } : {}), + }; +} + +export function sanitizeAlphaSearchPayload(value: unknown): AlphaSearchPayload { + if (!isRecord(value)) { + return {}; + } + + const payload: AlphaSearchPayload = { + query: cleanText(value.query, 240), + mode: cleanText(value.mode, 32), + }; + + const topLevelResults = sanitizeHits(value.results); + if (topLevelResults.length > 0) { + payload.results = topLevelResults; + } + + for (const key of ["semantic", "keyword", "agentic"] as const) { + if (key in value) { + payload[key] = sanitizeSection(value[key]); + } + } + + return payload; +} + +function pushHitLines(lines: string[], hit: AlphaSearchHit): void { + lines.push(`${hit.rank ?? "?"}. ${hit.title ?? "Untitled result"}`); + if (hit.arxivId) lines.push(` arXiv: ${hit.arxivId}`); + if (hit.publishedAt) lines.push(` published: ${hit.publishedAt}`); + if (hit.organizations) lines.push(` orgs: ${hit.organizations}`); + if (hit.authors) lines.push(` authors: ${hit.authors}`); + if (hit.abstract) lines.push(` abstract: ${hit.abstract}`); + if (hit.arxivUrl) lines.push(` arXiv URL: ${hit.arxivUrl}`); + if (hit.alphaXivUrl) lines.push(` alphaXiv URL: ${hit.alphaXivUrl}`); +} + +function pushSectionLines(lines: string[], label: string, section: AlphaSearchSection): void { + lines.push(`${label} (${section.count})`); + if (section.results.length === 0) { + lines.push(section.note ? ` note: ${section.note}` : " no parsed results"); + return; + } + + for (const hit of section.results) { + pushHitLines(lines, hit); + } +} + +export function formatAlphaSearchContext(value: unknown): string { + const payload = sanitizeAlphaSearchPayload(value); + const lines: string[] = []; + + if (payload.query) lines.push(`query: ${payload.query}`); + if (payload.mode) lines.push(`mode: ${payload.mode}`); + + if (payload.results) { + pushSectionLines(lines, "results", { count: payload.results.length, results: payload.results }); + } + + for (const [label, section] of [ + ["semantic", payload.semantic], + ["keyword", payload.keyword], + ["agentic", payload.agentic], + ] as const) { + if (section) { + pushSectionLines(lines, label, section); + } + } + + return lines.length > 0 ? lines.join("\n") : "No alpha search results returned."; +} export function registerAlphaCommands(pi: ExtensionAPI): void { pi.registerCommand("alpha-login", { @@ -72,9 +239,10 @@ export function registerAlphaTools(pi: ExtensionAPI): void { async execute(_toolCallId, params) { try { const result = await searchPapers(params.query, params.mode?.trim() || "all"); + const sanitized = sanitizeAlphaSearchPayload(result); return { - content: [{ type: "text", text: formatToolText(result) }], - details: result, + content: [{ type: "text", text: formatAlphaSearchContext(sanitized) }], + details: sanitized, }; } finally { await disconnect(); diff --git a/extensions/research-tools/shared.ts b/extensions/research-tools/shared.ts index 2157753..34e9626 100644 --- a/extensions/research-tools/shared.ts +++ b/extensions/research-tools/shared.ts @@ -27,8 +27,13 @@ export const FEYNMAN_RESEARCH_TOOLS = [ "preview_file", ]; +export function collapseExcessBlankLines(text: string): string { + return text.replace(/\r\n/g, "\n").replace(/\n{3,}/g, "\n\n").trim(); +} + export function formatToolText(result: unknown): string { - return typeof result === "string" ? result : JSON.stringify(result, null, 2); + const text = typeof result === "string" ? result : JSON.stringify(result, null, 2); + return collapseExcessBlankLines(text); } export function getFeynmanHome(): string { diff --git a/src/pi/package-presets.ts b/src/pi/package-presets.ts index de37138..718962f 100644 --- a/src/pi/package-presets.ts +++ b/src/pi/package-presets.ts @@ -23,13 +23,13 @@ export const OPTIONAL_PACKAGE_PRESETS = { }, } as const; +export type OptionalPackagePresetName = keyof typeof OPTIONAL_PACKAGE_PRESETS; + const LEGACY_DEFAULT_PACKAGE_SOURCES = [ ...CORE_PACKAGE_SOURCES, "npm:pi-generative-ui", ] as const; -export type OptionalPackagePresetName = keyof typeof OPTIONAL_PACKAGE_PRESETS; - function arraysMatchAsSets(left: readonly string[], right: readonly string[]): boolean { if (left.length !== right.length) { return false; diff --git a/tests/alpha-tools.test.ts b/tests/alpha-tools.test.ts new file mode 100644 index 0000000..08ec4ee --- /dev/null +++ b/tests/alpha-tools.test.ts @@ -0,0 +1,86 @@ +import test from "node:test"; +import assert from "node:assert/strict"; + +import { formatAlphaSearchContext, sanitizeAlphaSearchPayload } from "../extensions/research-tools/alpha.js"; +import { formatToolText } from "../extensions/research-tools/shared.js"; + +test("sanitizeAlphaSearchPayload drops raw alpha search text while keeping parsed hits", () => { + const payload = sanitizeAlphaSearchPayload({ + query: "scaling laws", + mode: "all", + semantic: { + raw: "\n\n\n1. **Paper A**\n- Abstract: noisy raw block", + results: [ + { + rank: 1, + title: "Paper A", + publishedAt: "2025-09-28", + organizations: "Stanford University, EPFL", + authors: "A. Author, B. Author", + abstract: "Line one.\n\n\nLine two.", + arxivId: "2509.24012", + arxivUrl: "https://arxiv.org/abs/2509.24012", + alphaXivUrl: "https://www.alphaxiv.org/overview/2509.24012", + raw: "internal raw block that should be dropped", + }, + ], + }, + keyword: { + raw: "\n\n\nNoisy keyword fallback", + results: [], + }, + }); + + assert.deepEqual(payload, { + query: "scaling laws", + mode: "all", + semantic: { + count: 1, + results: [ + { + rank: 1, + title: "Paper A", + publishedAt: "2025-09-28", + organizations: "Stanford University, EPFL", + authors: "A. Author, B. Author", + abstract: "Line one. Line two.", + arxivId: "2509.24012", + arxivUrl: "https://arxiv.org/abs/2509.24012", + alphaXivUrl: "https://www.alphaxiv.org/overview/2509.24012", + }, + ], + }, + keyword: { + count: 0, + results: [], + note: "Noisy keyword fallback", + }, + }); +}); + +test("formatAlphaSearchContext emits compact model-facing text without raw JSON escapes", () => { + const text = formatAlphaSearchContext({ + query: "scaling laws", + mode: "semantic", + results: [ + { + rank: 1, + title: "Paper A", + abstract: "First line.\n\n\nSecond line.", + arxivId: "2509.24012", + raw: "should not appear", + }, + ], + raw: "\n\n\nvery noisy raw payload", + }); + + assert.match(text, /query: scaling laws/); + assert.match(text, /1\. Paper A/); + assert.match(text, /abstract: First line\. Second line\./); + assert.ok(!text.includes("\\n")); + assert.ok(!text.includes("raw")); +}); + +test("formatToolText collapses excess blank lines in plain strings", () => { + assert.equal(formatToolText("alpha\n\n\n\nbeta"), "alpha\n\nbeta"); +}); diff --git a/website/.astro/data-store.json b/website/.astro/data-store.json new file mode 100644 index 0000000..bb5517c --- /dev/null +++ b/website/.astro/data-store.json @@ -0,0 +1 @@ +[["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.18.1","content-config-digest","d2da5d7c4a062d75","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://feynman.is\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":3001,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{\"light\":\"everforest-light\",\"dark\":\"everforest-dark\"},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"actionBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false,\"svgo\":false},\"legacy\":{\"collections\":false}}","docs",["Map",11,12,52,53,89,90,134,135,161,162,185,186,211,212,243,244,279,280,314,315,343,344,375,376,400,401,435,436,457,458,486,487,518,519,544,545,566,567,590,591,611,612,633,634,654,655,678,679],"agents/verifier",{"id":11,"data":13,"body":18,"filePath":19,"digest":20,"rendered":21,"legacyId":51},{"title":14,"description":15,"section":16,"order":17},"Verifier","Post-process a draft to add inline citations and verify every source URL.","Agents",4,"## Source\n\nGenerated from `.feynman/agents/verifier.md`. Edit that prompt file, not this docs page.\n\n## Role\n\nPost-process a draft to add inline citations and verify every source URL.\n\n## Tools\n\n`read`, `bash`, `grep`, `find`, `ls`, `write`, `edit`\n\n## Default Output\n\n`cited.md`\n\nYou receive a draft document and the research files it was built from. Your job is to:\n\n1. **Anchor every factual claim** in the draft to a specific source from the research files. Insert inline citations `[1]`, `[2]`, etc. directly after each claim.\n2. **Verify every source URL** — use fetch_content to confirm each URL resolves and contains the claimed content. Flag dead links.\n3. **Build the final Sources section** — a numbered list at the end where every number matches at least one inline citation in the body.\n4. **Remove unsourced claims** — if a factual claim in the draft cannot be traced to any source in the research files, either find a source for it or remove it. Do not leave unsourced factual claims.\n\n## Citation rules\n\n- Every factual claim gets at least one citation: \"Transformers achieve 94.2% on MMLU [3].\"\n- Multiple sources for one claim: \"Recent work questions benchmark validity [7, 12].\"\n- No orphan citations — every `[N]` in the body must appear in Sources.\n- No orphan sources — every entry in Sources must be cited at least once.\n- Hedged or opinion statements do not need citations.\n- When multiple research files use different numbering, merge into a single unified sequence starting from [1]. Deduplicate sources that appear in multiple files.\n\n## Source verification\n\nFor each source URL:\n- **Live:** keep as-is.\n- **Dead/404:** search for an alternative URL (archived version, mirror, updated link). If none found, remove the source and all claims that depended solely on it.\n- **Redirects to unrelated content:** treat as dead.\n\n## Output contract\n- Save to the output file (default: `cited.md`).\n- The output is the complete final document — same structure as the input draft, but with inline citations added throughout and a verified Sources section.\n- Do not change the substance or structure of the draft. Only add citations and fix dead sources.","src/content/docs/agents/verifier.md","efc12a91a847824e",{"html":22,"metadata":23},"\u003Ch2 id=\"source\">Source\u003C/h2>\n\u003Cp>Generated from \u003Ccode>.feynman/agents/verifier.md\u003C/code>. Edit that prompt file, not this docs page.\u003C/p>\n\u003Ch2 id=\"role\">Role\u003C/h2>\n\u003Cp>Post-process a draft to add inline citations and verify every source URL.\u003C/p>\n\u003Ch2 id=\"tools\">Tools\u003C/h2>\n\u003Cp>\u003Ccode>read\u003C/code>, \u003Ccode>bash\u003C/code>, \u003Ccode>grep\u003C/code>, \u003Ccode>find\u003C/code>, \u003Ccode>ls\u003C/code>, \u003Ccode>write\u003C/code>, \u003Ccode>edit\u003C/code>\u003C/p>\n\u003Ch2 id=\"default-output\">Default Output\u003C/h2>\n\u003Cp>\u003Ccode>cited.md\u003C/code>\u003C/p>\n\u003Cp>You receive a draft document and the research files it was built from. Your job is to:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Anchor every factual claim\u003C/strong> in the draft to a specific source from the research files. Insert inline citations \u003Ccode>[1]\u003C/code>, \u003Ccode>[2]\u003C/code>, etc. directly after each claim.\u003C/li>\n\u003Cli>\u003Cstrong>Verify every source URL\u003C/strong> — use fetch_content to confirm each URL resolves and contains the claimed content. Flag dead links.\u003C/li>\n\u003Cli>\u003Cstrong>Build the final Sources section\u003C/strong> — a numbered list at the end where every number matches at least one inline citation in the body.\u003C/li>\n\u003Cli>\u003Cstrong>Remove unsourced claims\u003C/strong> — if a factual claim in the draft cannot be traced to any source in the research files, either find a source for it or remove it. Do not leave unsourced factual claims.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"citation-rules\">Citation rules\u003C/h2>\n\u003Cul>\n\u003Cli>Every factual claim gets at least one citation: “Transformers achieve 94.2% on MMLU [3].”\u003C/li>\n\u003Cli>Multiple sources for one claim: “Recent work questions benchmark validity [7, 12].”\u003C/li>\n\u003Cli>No orphan citations — every \u003Ccode>[N]\u003C/code> in the body must appear in Sources.\u003C/li>\n\u003Cli>No orphan sources — every entry in Sources must be cited at least once.\u003C/li>\n\u003Cli>Hedged or opinion statements do not need citations.\u003C/li>\n\u003Cli>When multiple research files use different numbering, merge into a single unified sequence starting from [1]. Deduplicate sources that appear in multiple files.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"source-verification\">Source verification\u003C/h2>\n\u003Cp>For each source URL:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Live:\u003C/strong> keep as-is.\u003C/li>\n\u003Cli>\u003Cstrong>Dead/404:\u003C/strong> search for an alternative URL (archived version, mirror, updated link). If none found, remove the source and all claims that depended solely on it.\u003C/li>\n\u003Cli>\u003Cstrong>Redirects to unrelated content:\u003C/strong> treat as dead.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"output-contract\">Output contract\u003C/h2>\n\u003Cul>\n\u003Cli>Save to the output file (default: \u003Ccode>cited.md\u003C/code>).\u003C/li>\n\u003Cli>The output is the complete final document — same structure as the input draft, but with inline citations added throughout and a verified Sources section.\u003C/li>\n\u003Cli>Do not change the substance or structure of the draft. Only add citations and fix dead sources.\u003C/li>\n\u003C/ul>",{"headings":24,"localImagePaths":47,"remoteImagePaths":48,"frontmatter":49,"imagePaths":50},[25,29,32,35,38,41,44],{"depth":26,"slug":27,"text":28},2,"source","Source",{"depth":26,"slug":30,"text":31},"role","Role",{"depth":26,"slug":33,"text":34},"tools","Tools",{"depth":26,"slug":36,"text":37},"default-output","Default Output",{"depth":26,"slug":39,"text":40},"citation-rules","Citation rules",{"depth":26,"slug":42,"text":43},"source-verification","Source verification",{"depth":26,"slug":45,"text":46},"output-contract","Output contract",[],[],{"title":14,"description":15,"section":16,"order":17},[],"agents/verifier.md","agents/reviewer",{"id":52,"data":54,"body":57,"filePath":58,"digest":59,"rendered":60,"legacyId":88},{"title":55,"description":56,"section":16,"order":26},"Reviewer","Simulate a tough but constructive AI research peer reviewer with inline annotations.","## Source\n\nGenerated from `.feynman/agents/reviewer.md`. Edit that prompt file, not this docs page.\n\n## Role\n\nSimulate a tough but constructive AI research peer reviewer with inline annotations.\n\n## Default Output\n\n`review.md`\n\nYour job is to act like a skeptical but fair peer reviewer for AI/ML systems work.\n\n## Review checklist\n- Evaluate novelty, clarity, empirical rigor, reproducibility, and likely reviewer pushback.\n- Do not praise vaguely. Every positive claim should be tied to specific evidence.\n- Look for:\n - missing or weak baselines\n - missing ablations\n - evaluation mismatches\n - unclear claims of novelty\n - weak related-work positioning\n - insufficient statistical evidence\n - benchmark leakage or contamination risks\n - under-specified implementation details\n - claims that outrun the experiments\n- Distinguish between fatal issues, strong concerns, and polish issues.\n- Preserve uncertainty. If the draft might pass depending on venue norms, say so explicitly.\n\n## Output format\n\nProduce two sections: a structured review and inline annotations.\n\n### Part 1: Structured Review\n\n```markdown\n## Summary\n1-2 paragraph summary of the paper's contributions and approach.\n\n## Strengths\n- [S1] ...\n- [S2] ...\n\n## Weaknesses\n- [W1] **FATAL:** ...\n- [W2] **MAJOR:** ...\n- [W3] **MINOR:** ...\n\n## Questions for Authors\n- [Q1] ...\n\n## Verdict\nOverall assessment and confidence score. Would this pass at [venue]?\n\n## Revision Plan\nPrioritized, concrete steps to address each weakness.\n```\n\n### Part 2: Inline Annotations\n\nQuote specific passages from the paper and annotate them directly:\n\n```markdown\n## Inline Annotations\n\n> \"We achieve state-of-the-art results on all benchmarks\"\n**[W1] FATAL:** This claim is unsupported — Table 3 shows the method underperforms on 2 of 5 benchmarks. Revise to accurately reflect results.\n\n> \"Our approach is novel in combining X with Y\"\n**[W3] MINOR:** Z et al. (2024) combined X with Y in a different domain. Acknowledge this and clarify the distinction.\n\n> \"We use a learning rate of 1e-4\"\n**[Q1]:** Was this tuned? What range was searched? This matters for reproducibility.\n```\n\nReference the weakness/question IDs from Part 1 so annotations link back to the structured review.\n\n## Operating rules\n- Every weakness must reference a specific passage or section in the paper.\n- Inline annotations must quote the exact text being critiqued.\n- End with a `Sources` section containing direct URLs for anything additionally inspected during review.\n\n## Output contract\n- Save the main artifact to `review.md`.\n- The review must contain both the structured review AND inline annotations.","src/content/docs/agents/reviewer.md","115fe4b081dd8349",{"html":61,"metadata":62},"\u003Ch2 id=\"source\">Source\u003C/h2>\n\u003Cp>Generated from \u003Ccode>.feynman/agents/reviewer.md\u003C/code>. Edit that prompt file, not this docs page.\u003C/p>\n\u003Ch2 id=\"role\">Role\u003C/h2>\n\u003Cp>Simulate a tough but constructive AI research peer reviewer with inline annotations.\u003C/p>\n\u003Ch2 id=\"default-output\">Default Output\u003C/h2>\n\u003Cp>\u003Ccode>review.md\u003C/code>\u003C/p>\n\u003Cp>Your job is to act like a skeptical but fair peer reviewer for AI/ML systems work.\u003C/p>\n\u003Ch2 id=\"review-checklist\">Review checklist\u003C/h2>\n\u003Cul>\n\u003Cli>Evaluate novelty, clarity, empirical rigor, reproducibility, and likely reviewer pushback.\u003C/li>\n\u003Cli>Do not praise vaguely. Every positive claim should be tied to specific evidence.\u003C/li>\n\u003Cli>Look for:\n\u003Cul>\n\u003Cli>missing or weak baselines\u003C/li>\n\u003Cli>missing ablations\u003C/li>\n\u003Cli>evaluation mismatches\u003C/li>\n\u003Cli>unclear claims of novelty\u003C/li>\n\u003Cli>weak related-work positioning\u003C/li>\n\u003Cli>insufficient statistical evidence\u003C/li>\n\u003Cli>benchmark leakage or contamination risks\u003C/li>\n\u003Cli>under-specified implementation details\u003C/li>\n\u003Cli>claims that outrun the experiments\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Distinguish between fatal issues, strong concerns, and polish issues.\u003C/li>\n\u003Cli>Preserve uncertainty. If the draft might pass depending on venue norms, say so explicitly.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Produce two sections: a structured review and inline annotations.\u003C/p>\n\u003Ch3 id=\"part-1-structured-review\">Part 1: Structured Review\u003C/h3>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"markdown\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Summary\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">1-2 paragraph summary of the paper's contributions and approach.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Strengths\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">S1\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">S2\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Weaknesses\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">W1\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] \u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">FATAL:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">W2\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] \u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">MAJOR:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">W3\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] \u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">MINOR:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Questions for Authors\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F85552;--shiki-dark:#E67E80\">-\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">Q1\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">] ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Verdict\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">Overall assessment and confidence score. Would this pass at [\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">venue\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">]?\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Revision Plan\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">Prioritized, concrete steps to address each weakness.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"part-2-inline-annotations\">Part 2: Inline Annotations\u003C/h3>\n\u003Cp>Quote specific passages from the paper and annotate them directly:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"markdown\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Inline Annotations\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">>\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> \"We achieve state-of-the-art results on all benchmarks\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">[\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">W1\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">] FATAL:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> This claim is unsupported — Table 3 shows the method underperforms on 2 of 5 benchmarks. Revise to accurately reflect results.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">>\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> \"Our approach is novel in combining X with Y\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">[\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">W3\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">] MINOR:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> Z et al. (2024) combined X with Y in a different domain. Acknowledge this and clarify the distinction.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">>\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> \"We use a learning rate of 1e-4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">[\u003C/span>\u003Cspan style=\"color:#DF69BA;--shiki-dark:#D699B6\">Q1\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-light-font-weight:bold;--shiki-dark:#D3C6AA;--shiki-dark-font-weight:bold\">]:\u003C/span>\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">**\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> Was this tuned? What range was searched? This matters for reproducibility.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Reference the weakness/question IDs from Part 1 so annotations link back to the structured review.\u003C/p>\n\u003Ch2 id=\"operating-rules\">Operating rules\u003C/h2>\n\u003Cul>\n\u003Cli>Every weakness must reference a specific passage or section in the paper.\u003C/li>\n\u003Cli>Inline annotations must quote the exact text being critiqued.\u003C/li>\n\u003Cli>End with a \u003Ccode>Sources\u003C/code> section containing direct URLs for anything additionally inspected during review.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"output-contract\">Output contract\u003C/h2>\n\u003Cul>\n\u003Cli>Save the main artifact to \u003Ccode>review.md\u003C/code>.\u003C/li>\n\u003Cli>The review must contain both the structured review AND inline annotations.\u003C/li>\n\u003C/ul>",{"headings":63,"localImagePaths":84,"remoteImagePaths":85,"frontmatter":86,"imagePaths":87},[64,65,66,67,70,73,77,80,83],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":30,"text":31},{"depth":26,"slug":36,"text":37},{"depth":26,"slug":68,"text":69},"review-checklist","Review checklist",{"depth":26,"slug":71,"text":72},"output-format","Output format",{"depth":74,"slug":75,"text":76},3,"part-1-structured-review","Part 1: Structured Review",{"depth":74,"slug":78,"text":79},"part-2-inline-annotations","Part 2: Inline Annotations",{"depth":26,"slug":81,"text":82},"operating-rules","Operating rules",{"depth":26,"slug":45,"text":46},[],[],{"title":55,"description":56,"section":16,"order":26},[],"agents/reviewer.md","agents/researcher",{"id":89,"data":91,"body":95,"filePath":96,"digest":97,"rendered":98,"legacyId":133},{"title":92,"description":93,"section":16,"order":94},"Researcher","Gather primary evidence across papers, web sources, repos, docs, and local artifacts.",1,"## Source\n\nGenerated from `.feynman/agents/researcher.md`. Edit that prompt file, not this docs page.\n\n## Role\n\nGather primary evidence across papers, web sources, repos, docs, and local artifacts.\n\n## Tools\n\n`read`, `bash`, `grep`, `find`, `ls`\n\n## Default Output\n\n`research.md`\n\n## Integrity commandments\n1. **Never fabricate a source.** Every named tool, project, paper, product, or dataset must have a verifiable URL. If you cannot find a URL, do not mention it.\n2. **Never claim a project exists without checking.** Before citing a GitHub repo, search for it. Before citing a paper, find it. If a search returns zero results, the thing does not exist — do not invent it.\n3. **Never extrapolate details you haven't read.** If you haven't fetched and inspected a source, you may note its existence but must not describe its contents, metrics, or claims.\n4. **URL or it didn't happen.** Every entry in your evidence table must include a direct, checkable URL. No URL = not included.\n\n## Search strategy\n1. **Start wide.** Begin with short, broad queries to map the landscape. Use the `queries` array in `web_search` with 2–4 varied-angle queries simultaneously — never one query at a time when exploring.\n2. **Evaluate availability.** After the first round, assess what source types exist and which are highest quality. Adjust strategy accordingly.\n3. **Progressively narrow.** Drill into specifics using terminology and names discovered in initial results. Refine queries, don't repeat them.\n4. **Cross-source.** When the topic spans current reality and academic literature, always use both `web_search` and `alpha_search`.\n\nUse `recencyFilter` on `web_search` for fast-moving topics. Use `includeContent: true` on the most important results to get full page content rather than snippets.\n\n## Source quality\n- **Prefer:** academic papers, official documentation, primary datasets, verified benchmarks, government filings, reputable journalism, expert technical blogs, official vendor pages\n- **Accept with caveats:** well-cited secondary sources, established trade publications\n- **Deprioritize:** SEO-optimized listicles, undated blog posts, content aggregators, social media without primary links\n- **Reject:** sources with no author and no date, content that appears AI-generated with no primary backing\n\nWhen initial results skew toward low-quality sources, re-search with `domainFilter` targeting authoritative domains.\n\n## Output format\n\nAssign each source a stable numeric ID. Use these IDs consistently so downstream agents can trace claims to exact sources.\n\n### Evidence table\n\n| # | Source | URL | Key claim | Type | Confidence |\n|---|--------|-----|-----------|------|------------|\n| 1 | ... | ... | ... | primary / secondary / self-reported | high / medium / low |\n\n### Findings\n\nWrite findings using inline source references: `[1]`, `[2]`, etc. Every factual claim must cite at least one source by number.\n\n### Sources\n\nNumbered list matching the evidence table:\n1. Author/Title — URL\n2. Author/Title — URL\n\n## Context hygiene\n- Write findings to the output file progressively. Do not accumulate full page contents in your working memory — extract what you need, write it to file, move on.\n- When `includeContent: true` returns large pages, extract relevant quotes and discard the rest immediately.\n- If your search produces 10+ results, triage by title/snippet first. Only fetch full content for the top candidates.\n- Return a one-line summary to the parent, not full findings. The parent reads the output file.\n\n## Output contract\n- Save to the output file (default: `research.md`).\n- Minimum viable output: evidence table with ≥5 numbered entries, findings with inline references, and a numbered Sources section.\n- Write to the file and pass a lightweight reference back — do not dump full content into the parent context.","src/content/docs/agents/researcher.md","4d4d0e1b0fa38cd0",{"html":99,"metadata":100},"\u003Ch2 id=\"source\">Source\u003C/h2>\n\u003Cp>Generated from \u003Ccode>.feynman/agents/researcher.md\u003C/code>. Edit that prompt file, not this docs page.\u003C/p>\n\u003Ch2 id=\"role\">Role\u003C/h2>\n\u003Cp>Gather primary evidence across papers, web sources, repos, docs, and local artifacts.\u003C/p>\n\u003Ch2 id=\"tools\">Tools\u003C/h2>\n\u003Cp>\u003Ccode>read\u003C/code>, \u003Ccode>bash\u003C/code>, \u003Ccode>grep\u003C/code>, \u003Ccode>find\u003C/code>, \u003Ccode>ls\u003C/code>\u003C/p>\n\u003Ch2 id=\"default-output\">Default Output\u003C/h2>\n\u003Cp>\u003Ccode>research.md\u003C/code>\u003C/p>\n\u003Ch2 id=\"integrity-commandments\">Integrity commandments\u003C/h2>\n\u003Col>\n\u003Cli>\u003Cstrong>Never fabricate a source.\u003C/strong> Every named tool, project, paper, product, or dataset must have a verifiable URL. If you cannot find a URL, do not mention it.\u003C/li>\n\u003Cli>\u003Cstrong>Never claim a project exists without checking.\u003C/strong> Before citing a GitHub repo, search for it. Before citing a paper, find it. If a search returns zero results, the thing does not exist — do not invent it.\u003C/li>\n\u003Cli>\u003Cstrong>Never extrapolate details you haven’t read.\u003C/strong> If you haven’t fetched and inspected a source, you may note its existence but must not describe its contents, metrics, or claims.\u003C/li>\n\u003Cli>\u003Cstrong>URL or it didn’t happen.\u003C/strong> Every entry in your evidence table must include a direct, checkable URL. No URL = not included.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"search-strategy\">Search strategy\u003C/h2>\n\u003Col>\n\u003Cli>\u003Cstrong>Start wide.\u003C/strong> Begin with short, broad queries to map the landscape. Use the \u003Ccode>queries\u003C/code> array in \u003Ccode>web_search\u003C/code> with 2–4 varied-angle queries simultaneously — never one query at a time when exploring.\u003C/li>\n\u003Cli>\u003Cstrong>Evaluate availability.\u003C/strong> After the first round, assess what source types exist and which are highest quality. Adjust strategy accordingly.\u003C/li>\n\u003Cli>\u003Cstrong>Progressively narrow.\u003C/strong> Drill into specifics using terminology and names discovered in initial results. Refine queries, don’t repeat them.\u003C/li>\n\u003Cli>\u003Cstrong>Cross-source.\u003C/strong> When the topic spans current reality and academic literature, always use both \u003Ccode>web_search\u003C/code> and \u003Ccode>alpha_search\u003C/code>.\u003C/li>\n\u003C/ol>\n\u003Cp>Use \u003Ccode>recencyFilter\u003C/code> on \u003Ccode>web_search\u003C/code> for fast-moving topics. Use \u003Ccode>includeContent: true\u003C/code> on the most important results to get full page content rather than snippets.\u003C/p>\n\u003Ch2 id=\"source-quality\">Source quality\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Prefer:\u003C/strong> academic papers, official documentation, primary datasets, verified benchmarks, government filings, reputable journalism, expert technical blogs, official vendor pages\u003C/li>\n\u003Cli>\u003Cstrong>Accept with caveats:\u003C/strong> well-cited secondary sources, established trade publications\u003C/li>\n\u003Cli>\u003Cstrong>Deprioritize:\u003C/strong> SEO-optimized listicles, undated blog posts, content aggregators, social media without primary links\u003C/li>\n\u003Cli>\u003Cstrong>Reject:\u003C/strong> sources with no author and no date, content that appears AI-generated with no primary backing\u003C/li>\n\u003C/ul>\n\u003Cp>When initial results skew toward low-quality sources, re-search with \u003Ccode>domainFilter\u003C/code> targeting authoritative domains.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Assign each source a stable numeric ID. Use these IDs consistently so downstream agents can trace claims to exact sources.\u003C/p>\n\u003Ch3 id=\"evidence-table\">Evidence table\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>#\u003C/th>\u003Cth>Source\u003C/th>\u003Cth>URL\u003C/th>\u003Cth>Key claim\u003C/th>\u003Cth>Type\u003C/th>\u003Cth>Confidence\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>1\u003C/td>\u003Ctd>…\u003C/td>\u003Ctd>…\u003C/td>\u003Ctd>…\u003C/td>\u003Ctd>primary / secondary / self-reported\u003C/td>\u003Ctd>high / medium / low\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch3 id=\"findings\">Findings\u003C/h3>\n\u003Cp>Write findings using inline source references: \u003Ccode>[1]\u003C/code>, \u003Ccode>[2]\u003C/code>, etc. Every factual claim must cite at least one source by number.\u003C/p>\n\u003Ch3 id=\"sources\">Sources\u003C/h3>\n\u003Cp>Numbered list matching the evidence table:\u003C/p>\n\u003Col>\n\u003Cli>Author/Title — URL\u003C/li>\n\u003Cli>Author/Title — URL\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"context-hygiene\">Context hygiene\u003C/h2>\n\u003Cul>\n\u003Cli>Write findings to the output file progressively. Do not accumulate full page contents in your working memory — extract what you need, write it to file, move on.\u003C/li>\n\u003Cli>When \u003Ccode>includeContent: true\u003C/code> returns large pages, extract relevant quotes and discard the rest immediately.\u003C/li>\n\u003Cli>If your search produces 10+ results, triage by title/snippet first. Only fetch full content for the top candidates.\u003C/li>\n\u003Cli>Return a one-line summary to the parent, not full findings. The parent reads the output file.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"output-contract\">Output contract\u003C/h2>\n\u003Cul>\n\u003Cli>Save to the output file (default: \u003Ccode>research.md\u003C/code>).\u003C/li>\n\u003Cli>Minimum viable output: evidence table with ≥5 numbered entries, findings with inline references, and a numbered Sources section.\u003C/li>\n\u003Cli>Write to the file and pass a lightweight reference back — do not dump full content into the parent context.\u003C/li>\n\u003C/ul>",{"headings":101,"localImagePaths":129,"remoteImagePaths":130,"frontmatter":131,"imagePaths":132},[102,103,104,105,106,109,112,115,116,119,122,125,128],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":30,"text":31},{"depth":26,"slug":33,"text":34},{"depth":26,"slug":36,"text":37},{"depth":26,"slug":107,"text":108},"integrity-commandments","Integrity commandments",{"depth":26,"slug":110,"text":111},"search-strategy","Search strategy",{"depth":26,"slug":113,"text":114},"source-quality","Source quality",{"depth":26,"slug":71,"text":72},{"depth":74,"slug":117,"text":118},"evidence-table","Evidence table",{"depth":74,"slug":120,"text":121},"findings","Findings",{"depth":74,"slug":123,"text":124},"sources","Sources",{"depth":26,"slug":126,"text":127},"context-hygiene","Context hygiene",{"depth":26,"slug":45,"text":46},[],[],{"title":92,"description":93,"section":16,"order":94},[],"agents/researcher.md","agents/writer",{"id":134,"data":136,"body":139,"filePath":140,"digest":141,"rendered":142,"legacyId":160},{"title":137,"description":138,"section":16,"order":74},"Writer","Turn research notes into clear, structured briefs and drafts.","## Source\n\nGenerated from `.feynman/agents/writer.md`. Edit that prompt file, not this docs page.\n\n## Role\n\nTurn research notes into clear, structured briefs and drafts.\n\n## Tools\n\n`read`, `bash`, `grep`, `find`, `ls`, `write`, `edit`\n\n## Default Output\n\n`draft.md`\n\n## Integrity commandments\n1. **Write only from supplied evidence.** Do not introduce claims, tools, or sources that are not in the input research files.\n2. **Preserve caveats and disagreements.** Never smooth away uncertainty.\n3. **Be explicit about gaps.** If the research files have unresolved questions or conflicting evidence, surface them — do not paper over them.\n\n## Output structure\n\n```markdown\n# Title\n\n## Executive Summary\n2-3 paragraph overview of key findings.\n\n## Section 1: ...\nDetailed findings organized by theme or question.\n\n## Section N: ...\n...\n\n## Open Questions\nUnresolved issues, disagreements between sources, gaps in evidence.\n```\n\n## Operating rules\n- Use clean Markdown structure and add equations only when they materially help.\n- Keep the narrative readable, but never outrun the evidence.\n- Produce artifacts that are ready to review in a browser or PDF preview.\n- Do NOT add inline citations — the verifier agent handles that as a separate post-processing step.\n- Do NOT add a Sources section — the verifier agent builds that.\n\n## Output contract\n- Save the main artifact to the specified output path (default: `draft.md`).\n- Focus on clarity, structure, and evidence traceability.","src/content/docs/agents/writer.md","ef9e81fb8113db70",{"html":143,"metadata":144},"\u003Ch2 id=\"source\">Source\u003C/h2>\n\u003Cp>Generated from \u003Ccode>.feynman/agents/writer.md\u003C/code>. Edit that prompt file, not this docs page.\u003C/p>\n\u003Ch2 id=\"role\">Role\u003C/h2>\n\u003Cp>Turn research notes into clear, structured briefs and drafts.\u003C/p>\n\u003Ch2 id=\"tools\">Tools\u003C/h2>\n\u003Cp>\u003Ccode>read\u003C/code>, \u003Ccode>bash\u003C/code>, \u003Ccode>grep\u003C/code>, \u003Ccode>find\u003C/code>, \u003Ccode>ls\u003C/code>, \u003Ccode>write\u003C/code>, \u003Ccode>edit\u003C/code>\u003C/p>\n\u003Ch2 id=\"default-output\">Default Output\u003C/h2>\n\u003Cp>\u003Ccode>draft.md\u003C/code>\u003C/p>\n\u003Ch2 id=\"integrity-commandments\">Integrity commandments\u003C/h2>\n\u003Col>\n\u003Cli>\u003Cstrong>Write only from supplied evidence.\u003C/strong> Do not introduce claims, tools, or sources that are not in the input research files.\u003C/li>\n\u003Cli>\u003Cstrong>Preserve caveats and disagreements.\u003C/strong> Never smooth away uncertainty.\u003C/li>\n\u003Cli>\u003Cstrong>Be explicit about gaps.\u003C/strong> If the research files have unresolved questions or conflicting evidence, surface them — do not paper over them.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"output-structure\">Output structure\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"markdown\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">#\u003C/span>\u003Cspan style=\"color:#F85552;--shiki-light-font-weight:bold;--shiki-dark:#E67E80;--shiki-dark-font-weight:bold\"> Title\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Executive Summary\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">2-3 paragraph overview of key findings.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Section 1: ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">Detailed findings organized by theme or question.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Section N: ...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#939F91;--shiki-dark:#859289\">##\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-light-font-weight:bold;--shiki-dark:#E69875;--shiki-dark-font-weight:bold\"> Open Questions\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">Unresolved issues, disagreements between sources, gaps in evidence.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"operating-rules\">Operating rules\u003C/h2>\n\u003Cul>\n\u003Cli>Use clean Markdown structure and add equations only when they materially help.\u003C/li>\n\u003Cli>Keep the narrative readable, but never outrun the evidence.\u003C/li>\n\u003Cli>Produce artifacts that are ready to review in a browser or PDF preview.\u003C/li>\n\u003Cli>Do NOT add inline citations — the verifier agent handles that as a separate post-processing step.\u003C/li>\n\u003Cli>Do NOT add a Sources section — the verifier agent builds that.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"output-contract\">Output contract\u003C/h2>\n\u003Cul>\n\u003Cli>Save the main artifact to the specified output path (default: \u003Ccode>draft.md\u003C/code>).\u003C/li>\n\u003Cli>Focus on clarity, structure, and evidence traceability.\u003C/li>\n\u003C/ul>",{"headings":145,"localImagePaths":156,"remoteImagePaths":157,"frontmatter":158,"imagePaths":159},[146,147,148,149,150,151,154,155],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":30,"text":31},{"depth":26,"slug":33,"text":34},{"depth":26,"slug":36,"text":37},{"depth":26,"slug":107,"text":108},{"depth":26,"slug":152,"text":153},"output-structure","Output structure",{"depth":26,"slug":81,"text":82},{"depth":26,"slug":45,"text":46},[],[],{"title":137,"description":138,"section":16,"order":74},[],"agents/writer.md","reference/package-stack",{"id":161,"data":163,"body":167,"filePath":168,"digest":169,"rendered":170,"legacyId":184},{"title":164,"description":165,"section":166,"order":74},"Package Stack","Curated Pi packages bundled with Feynman","Reference","Curated Pi packages bundled with Feynman. The runtime package list lives in `.feynman/settings.json`.\n\n## Core packages\n\nInstalled by default.\n\n| Package | Purpose |\n|---------|---------|\n| `pi-subagents` | Parallel literature gathering and decomposition. |\n| `pi-btw` | Fast side-thread `/btw` conversations without interrupting the main run. |\n| `pi-docparser` | PDFs, Office docs, spreadsheets, and images. |\n| `pi-web-access` | Web, GitHub, PDF, and media access. |\n| `pi-markdown-preview` | Polished Markdown and LaTeX-heavy research writeups. |\n| `@walterra/pi-charts` | Charts and quantitative visualizations. |\n| `pi-mermaid` | Diagrams in the TUI. |\n| `@aliou/pi-processes` | Long-running experiments and log tails. |\n| `pi-zotero` | Citation-library workflows. |\n| `pi-schedule-prompt` | Recurring and deferred research jobs. |\n| `@tmustier/pi-ralph-wiggum` | Long-running agent loops for iterative development. |\n\n## Optional packages\n\nInstall on demand with `feynman packages install \u003Cpreset>`.\n\n| Package | Purpose |\n|---------|---------|\n| `pi-generative-ui` | Interactive HTML-style widgets. |\n| `@kaiserlich-dev/pi-session-search` | Indexed session recall and summarize/resume UI. |\n| `@samfp/pi-memory` | Automatic preference and correction memory across sessions. |","src/content/docs/reference/package-stack.md","7c0accc036d20333",{"html":171,"metadata":172},"\u003Cp>Curated Pi packages bundled with Feynman. The runtime package list lives in \u003Ccode>.feynman/settings.json\u003C/code>.\u003C/p>\n\u003Ch2 id=\"core-packages\">Core packages\u003C/h2>\n\u003Cp>Installed by default.\u003C/p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Package\u003C/th>\u003Cth>Purpose\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>pi-subagents\u003C/code>\u003C/td>\u003Ctd>Parallel literature gathering and decomposition.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-btw\u003C/code>\u003C/td>\u003Ctd>Fast side-thread \u003Ccode>/btw\u003C/code> conversations without interrupting the main run.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-docparser\u003C/code>\u003C/td>\u003Ctd>PDFs, Office docs, spreadsheets, and images.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-web-access\u003C/code>\u003C/td>\u003Ctd>Web, GitHub, PDF, and media access.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-markdown-preview\u003C/code>\u003C/td>\u003Ctd>Polished Markdown and LaTeX-heavy research writeups.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@walterra/pi-charts\u003C/code>\u003C/td>\u003Ctd>Charts and quantitative visualizations.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-mermaid\u003C/code>\u003C/td>\u003Ctd>Diagrams in the TUI.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@aliou/pi-processes\u003C/code>\u003C/td>\u003Ctd>Long-running experiments and log tails.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-zotero\u003C/code>\u003C/td>\u003Ctd>Citation-library workflows.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-schedule-prompt\u003C/code>\u003C/td>\u003Ctd>Recurring and deferred research jobs.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@tmustier/pi-ralph-wiggum\u003C/code>\u003C/td>\u003Ctd>Long-running agent loops for iterative development.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"optional-packages\">Optional packages\u003C/h2>\n\u003Cp>Install on demand with \u003Ccode>feynman packages install <preset>\u003C/code>.\u003C/p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Package\u003C/th>\u003Cth>Purpose\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>pi-generative-ui\u003C/code>\u003C/td>\u003Ctd>Interactive HTML-style widgets.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@kaiserlich-dev/pi-session-search\u003C/code>\u003C/td>\u003Ctd>Indexed session recall and summarize/resume UI.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@samfp/pi-memory\u003C/code>\u003C/td>\u003Ctd>Automatic preference and correction memory across sessions.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":173,"localImagePaths":180,"remoteImagePaths":181,"frontmatter":182,"imagePaths":183},[174,177],{"depth":26,"slug":175,"text":176},"core-packages","Core packages",{"depth":26,"slug":178,"text":179},"optional-packages","Optional packages",[],[],{"title":164,"description":165,"section":166,"order":74},[],"reference/package-stack.md","reference/slash-commands",{"id":185,"data":187,"body":190,"filePath":191,"digest":192,"rendered":193,"legacyId":210},{"title":188,"description":189,"section":166,"order":26},"Slash Commands","Repo-owned REPL slash commands","This page documents the slash commands that Feynman owns in this repository: prompt templates from `prompts/` and extension commands from `extensions/research-tools/`.\n\nAdditional slash commands can appear at runtime from Pi core and bundled packages such as subagents, preview, session search, and scheduling. Use `/help` inside the REPL for the live command list instead of relying on a static copy of package-provided commands.\n\n## Research Workflows\n\n| Command | Description |\n| --- | --- |\n| `/deepresearch \u003Ctopic>` | Run a thorough, source-heavy investigation on a topic and produce a durable research brief with inline citations. |\n| `/lit \u003Ctopic>` | Run a literature review on a topic using paper search and primary-source synthesis. |\n| `/review \u003Cartifact>` | Simulate an AI research peer review with likely objections, severity, and a concrete revision plan. |\n| `/audit \u003Citem>` | Compare a paper's claims against its public codebase and identify mismatches, omissions, and reproducibility risks. |\n| `/replicate \u003Cpaper>` | Plan or execute a replication workflow for a paper, claim, or benchmark. |\n| `/compare \u003Ctopic>` | Compare multiple sources on a topic and produce a source-grounded matrix of agreements, disagreements, and confidence. |\n| `/draft \u003Ctopic>` | Turn research findings into a polished paper-style draft with equations, sections, and explicit claims. |\n| `/autoresearch \u003Cidea>` | Autonomous experiment loop — try ideas, measure results, keep what works, discard what doesn't, repeat. |\n| `/watch \u003Ctopic>` | Set up a recurring or deferred research watch on a topic, company, paper area, or product surface. |\n\n## Project & Session\n\n| Command | Description |\n| --- | --- |\n| `/log` | Write a durable session log with completed work, findings, open questions, and next steps. |\n| `/jobs` | Inspect active background research work, including running processes and scheduled follow-ups. |\n| `/help` | Show grouped Feynman commands and prefill the editor with a selected command. |\n| `/init` | Bootstrap AGENTS.md and session-log folders for a research project. |\n\n## Setup\n\n| Command | Description |\n| --- | --- |\n| `/alpha-login` | Sign in to alphaXiv from inside Feynman. |\n| `/alpha-status` | Show alphaXiv authentication status. |\n| `/alpha-logout` | Clear alphaXiv auth from inside Feynman. |","src/content/docs/reference/slash-commands.md","f548c25cfafb9aea",{"html":194,"metadata":195},"\u003Cp>This page documents the slash commands that Feynman owns in this repository: prompt templates from \u003Ccode>prompts/\u003C/code> and extension commands from \u003Ccode>extensions/research-tools/\u003C/code>.\u003C/p>\n\u003Cp>Additional slash commands can appear at runtime from Pi core and bundled packages such as subagents, preview, session search, and scheduling. Use \u003Ccode>/help\u003C/code> inside the REPL for the live command list instead of relying on a static copy of package-provided commands.\u003C/p>\n\u003Ch2 id=\"research-workflows\">Research Workflows\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>/deepresearch <topic>\u003C/code>\u003C/td>\u003Ctd>Run a thorough, source-heavy investigation on a topic and produce a durable research brief with inline citations.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/lit <topic>\u003C/code>\u003C/td>\u003Ctd>Run a literature review on a topic using paper search and primary-source synthesis.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/review <artifact>\u003C/code>\u003C/td>\u003Ctd>Simulate an AI research peer review with likely objections, severity, and a concrete revision plan.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/audit <item>\u003C/code>\u003C/td>\u003Ctd>Compare a paper’s claims against its public codebase and identify mismatches, omissions, and reproducibility risks.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/replicate <paper>\u003C/code>\u003C/td>\u003Ctd>Plan or execute a replication workflow for a paper, claim, or benchmark.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/compare <topic>\u003C/code>\u003C/td>\u003Ctd>Compare multiple sources on a topic and produce a source-grounded matrix of agreements, disagreements, and confidence.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/draft <topic>\u003C/code>\u003C/td>\u003Ctd>Turn research findings into a polished paper-style draft with equations, sections, and explicit claims.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/autoresearch <idea>\u003C/code>\u003C/td>\u003Ctd>Autonomous experiment loop — try ideas, measure results, keep what works, discard what doesn’t, repeat.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/watch <topic>\u003C/code>\u003C/td>\u003Ctd>Set up a recurring or deferred research watch on a topic, company, paper area, or product surface.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"project--session\">Project & Session\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>/log\u003C/code>\u003C/td>\u003Ctd>Write a durable session log with completed work, findings, open questions, and next steps.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/jobs\u003C/code>\u003C/td>\u003Ctd>Inspect active background research work, including running processes and scheduled follow-ups.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/help\u003C/code>\u003C/td>\u003Ctd>Show grouped Feynman commands and prefill the editor with a selected command.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/init\u003C/code>\u003C/td>\u003Ctd>Bootstrap AGENTS.md and session-log folders for a research project.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"setup\">Setup\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>/alpha-login\u003C/code>\u003C/td>\u003Ctd>Sign in to alphaXiv from inside Feynman.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/alpha-status\u003C/code>\u003C/td>\u003Ctd>Show alphaXiv authentication status.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/alpha-logout\u003C/code>\u003C/td>\u003Ctd>Clear alphaXiv auth from inside Feynman.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":196,"localImagePaths":206,"remoteImagePaths":207,"frontmatter":208,"imagePaths":209},[197,200,203],{"depth":26,"slug":198,"text":199},"research-workflows","Research Workflows",{"depth":26,"slug":201,"text":202},"project--session","Project & Session",{"depth":26,"slug":204,"text":205},"setup","Setup",[],[],{"title":188,"description":189,"section":166,"order":26},[],"reference/slash-commands.md","reference/cli-commands",{"id":211,"data":213,"body":216,"filePath":217,"digest":218,"rendered":219,"legacyId":242},{"title":214,"description":215,"section":166,"order":94},"CLI Commands","Complete reference for Feynman CLI commands","This page covers the dedicated Feynman CLI commands and compatibility flags.\n\nWorkflow prompt templates such as `/deepresearch` also run directly from the shell as `feynman \u003Cworkflow> ...`. Those workflow entries live in the slash-command reference instead of being duplicated here.\n\n## Core\n\n| Command | Description |\n| --- | --- |\n| `feynman` | Launch the interactive REPL. |\n| `feynman chat [prompt]` | Start chat explicitly, optionally with an initial prompt. |\n| `feynman help` | Show CLI help. |\n| `feynman setup` | Run the guided setup wizard. |\n| `feynman doctor` | Diagnose config, auth, Pi runtime, and preview dependencies. |\n| `feynman status` | Show the current setup summary. |\n\n## Model Management\n\n| Command | Description |\n| --- | --- |\n| `feynman model list` | List available models in Pi auth storage. |\n| `feynman model login [id]` | Login to a Pi OAuth model provider. |\n| `feynman model logout [id]` | Logout from a Pi OAuth model provider. |\n| `feynman model set \u003Cprovider/model>` | Set the default model. |\n\n## AlphaXiv\n\n| Command | Description |\n| --- | --- |\n| `feynman alpha login` | Sign in to alphaXiv. |\n| `feynman alpha logout` | Clear alphaXiv auth. |\n| `feynman alpha status` | Check alphaXiv auth status. |\n\n## Utilities\n\n| Command | Description |\n| --- | --- |\n| `feynman search status` | Show Pi web-access status and config path. |\n| `feynman update [package]` | Update installed packages, or a specific package. |\n\n## Flags\n\n| Flag | Description |\n| --- | --- |\n| `--prompt \"\u003Ctext>\"` | Run one prompt and exit. |\n| `--alpha-login` | Sign in to alphaXiv and exit. |\n| `--alpha-logout` | Clear alphaXiv auth and exit. |\n| `--alpha-status` | Show alphaXiv auth status and exit. |\n| `--model \u003Cprovider:model>` | Force a specific model. |\n| `--thinking \u003Clevel>` | Set thinking level: off | minimal | low | medium | high | xhigh. |\n| `--cwd \u003Cpath>` | Set the working directory for tools. |\n| `--session-dir \u003Cpath>` | Set the session storage directory. |\n| `--new-session` | Start a new persisted session. |\n| `--doctor` | Alias for `feynman doctor`. |\n| `--setup-preview` | Alias for `feynman setup preview`. |","src/content/docs/reference/cli-commands.md","5ba10666ccf260a6",{"html":220,"metadata":221},"\u003Cp>This page covers the dedicated Feynman CLI commands and compatibility flags.\u003C/p>\n\u003Cp>Workflow prompt templates such as \u003Ccode>/deepresearch\u003C/code> also run directly from the shell as \u003Ccode>feynman <workflow> ...\u003C/code>. Those workflow entries live in the slash-command reference instead of being duplicated here.\u003C/p>\n\u003Ch2 id=\"core\">Core\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman\u003C/code>\u003C/td>\u003Ctd>Launch the interactive REPL.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman chat [prompt]\u003C/code>\u003C/td>\u003Ctd>Start chat explicitly, optionally with an initial prompt.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman help\u003C/code>\u003C/td>\u003Ctd>Show CLI help.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman setup\u003C/code>\u003C/td>\u003Ctd>Run the guided setup wizard.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman doctor\u003C/code>\u003C/td>\u003Ctd>Diagnose config, auth, Pi runtime, and preview dependencies.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman status\u003C/code>\u003C/td>\u003Ctd>Show the current setup summary.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"model-management\">Model Management\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman model list\u003C/code>\u003C/td>\u003Ctd>List available models in Pi auth storage.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman model login [id]\u003C/code>\u003C/td>\u003Ctd>Login to a Pi OAuth model provider.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman model logout [id]\u003C/code>\u003C/td>\u003Ctd>Logout from a Pi OAuth model provider.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman model set <provider/model>\u003C/code>\u003C/td>\u003Ctd>Set the default model.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"alphaxiv\">AlphaXiv\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman alpha login\u003C/code>\u003C/td>\u003Ctd>Sign in to alphaXiv.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman alpha logout\u003C/code>\u003C/td>\u003Ctd>Clear alphaXiv auth.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman alpha status\u003C/code>\u003C/td>\u003Ctd>Check alphaXiv auth status.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"utilities\">Utilities\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman search status\u003C/code>\u003C/td>\u003Ctd>Show Pi web-access status and config path.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman update [package]\u003C/code>\u003C/td>\u003Ctd>Update installed packages, or a specific package.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"flags\">Flags\u003C/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Flag\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>--prompt \"<text>\"\u003C/code>\u003C/td>\u003Ctd>Run one prompt and exit.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--alpha-login\u003C/code>\u003C/td>\u003Ctd>Sign in to alphaXiv and exit.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--alpha-logout\u003C/code>\u003C/td>\u003Ctd>Clear alphaXiv auth and exit.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--alpha-status\u003C/code>\u003C/td>\u003Ctd>Show alphaXiv auth status and exit.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--model <provider:model>\u003C/code>\u003C/td>\u003Ctd>Force a specific model.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--thinking <level>\u003C/code>\u003C/td>\u003Ctd>Set thinking level: off\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--cwd <path>\u003C/code>\u003C/td>\u003Ctd>Set the working directory for tools.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--session-dir <path>\u003C/code>\u003C/td>\u003Ctd>Set the session storage directory.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--new-session\u003C/code>\u003C/td>\u003Ctd>Start a new persisted session.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--doctor\u003C/code>\u003C/td>\u003Ctd>Alias for \u003Ccode>feynman doctor\u003C/code>.\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--setup-preview\u003C/code>\u003C/td>\u003Ctd>Alias for \u003Ccode>feynman setup preview\u003C/code>.\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":222,"localImagePaths":238,"remoteImagePaths":239,"frontmatter":240,"imagePaths":241},[223,226,229,232,235],{"depth":26,"slug":224,"text":225},"core","Core",{"depth":26,"slug":227,"text":228},"model-management","Model Management",{"depth":26,"slug":230,"text":231},"alphaxiv","AlphaXiv",{"depth":26,"slug":233,"text":234},"utilities","Utilities",{"depth":26,"slug":236,"text":237},"flags","Flags",[],[],{"title":214,"description":215,"section":166,"order":94},[],"reference/cli-commands.md","getting-started/configuration",{"id":243,"data":245,"body":249,"filePath":250,"digest":251,"rendered":252,"legacyId":278},{"title":246,"description":247,"section":248,"order":17},"Configuration","Configure models, search, and runtime options","Getting Started","## Model\n\nSet the default model:\n\n```bash\nfeynman model set \u003Cprovider:model>\n```\n\nOverride at runtime:\n\n```bash\nfeynman --model anthropic:claude-opus-4-6\n```\n\nList available models:\n\n```bash\nfeynman model list\n```\n\n## Thinking level\n\nControl the reasoning depth:\n\n```bash\nfeynman --thinking high\n```\n\nLevels: `off`, `minimal`, `low`, `medium`, `high`, `xhigh`.\n\n## Web search\n\nCheck the current search configuration:\n\n```bash\nfeynman search status\n```\n\nFor advanced configuration, edit `~/.feynman/web-search.json` directly to set Gemini API keys, Perplexity keys, or a different route.\n\n## Working directory\n\n```bash\nfeynman --cwd /path/to/project\n```\n\n## Session storage\n\n```bash\nfeynman --session-dir /path/to/sessions\n```\n\n## One-shot mode\n\nRun a single prompt and exit:\n\n```bash\nfeynman --prompt \"summarize the key findings of 2401.12345\"\n```","src/content/docs/getting-started/configuration.md","9d66eb82ad4b948a",{"html":253,"metadata":254},"\u003Ch2 id=\"model\">Model\u003C/h2>\n\u003Cp>Set the default model:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> model\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> set\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\"> <\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\">provider:mode\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">l\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Override at runtime:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --model\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> anthropic:claude-opus-4-6\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>List available models:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> model\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> list\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"thinking-level\">Thinking level\u003C/h2>\n\u003Cp>Control the reasoning depth:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --thinking\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> high\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Levels: \u003Ccode>off\u003C/code>, \u003Ccode>minimal\u003C/code>, \u003Ccode>low\u003C/code>, \u003Ccode>medium\u003C/code>, \u003Ccode>high\u003C/code>, \u003Ccode>xhigh\u003C/code>.\u003C/p>\n\u003Ch2 id=\"web-search\">Web search\u003C/h2>\n\u003Cp>Check the current search configuration:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> search\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>For advanced configuration, edit \u003Ccode>~/.feynman/web-search.json\u003C/code> directly to set Gemini API keys, Perplexity keys, or a different route.\u003C/p>\n\u003Ch2 id=\"working-directory\">Working directory\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --cwd\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> /path/to/project\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"session-storage\">Session storage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --session-dir\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> /path/to/sessions\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"one-shot-mode\">One-shot mode\u003C/h2>\n\u003Cp>Run a single prompt and exit:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --prompt\u003C/span>\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\"> \"summarize the key findings of 2401.12345\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":255,"localImagePaths":274,"remoteImagePaths":275,"frontmatter":276,"imagePaths":277},[256,259,262,265,268,271],{"depth":26,"slug":257,"text":258},"model","Model",{"depth":26,"slug":260,"text":261},"thinking-level","Thinking level",{"depth":26,"slug":263,"text":264},"web-search","Web search",{"depth":26,"slug":266,"text":267},"working-directory","Working directory",{"depth":26,"slug":269,"text":270},"session-storage","Session storage",{"depth":26,"slug":272,"text":273},"one-shot-mode","One-shot mode",[],[],{"title":246,"description":247,"section":248,"order":17},[],"getting-started/configuration.md","getting-started/installation",{"id":279,"data":281,"body":284,"filePath":285,"digest":286,"rendered":287,"legacyId":313},{"title":282,"description":283,"section":248,"order":94},"Installation","Install Feynman and get started","## Requirements\n\n- macOS, Linux, or WSL\n- `curl` or `wget`\n\n## Recommended install\n\n```bash\ncurl -fsSL https://feynman.is/install | bash\n```\n\n## Verify\n\n```bash\nfeynman --version\n```\n\n## Windows PowerShell\n\n```powershell\nirm https://feynman.is/install.ps1 | iex\n```\n\n## npm fallback\n\nIf you already manage Node yourself:\n\n```bash\nnpm install -g @companion-ai/feynman\n```\n\n## Local Development\n\nFor contributing or local development:\n\n```bash\ngit clone https://github.com/getcompanion-ai/feynman.git\ncd feynman\nnpm install\nnpm run start\n```","src/content/docs/getting-started/installation.md","3c9e114ec05e8393",{"html":288,"metadata":289},"\u003Ch2 id=\"requirements\">Requirements\u003C/h2>\n\u003Cul>\n\u003Cli>macOS, Linux, or WSL\u003C/li>\n\u003Cli>\u003Ccode>curl\u003C/code> or \u003Ccode>wget\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"recommended-install\">Recommended install\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">curl\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> -fsSL\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> https://feynman.is/install\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\"> |\u003C/span>\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\"> bash\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"verify\">Verify\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --version\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"windows-powershell\">Windows PowerShell\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">irm https:\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\">//\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">feynman.is\u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\">/\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\">install.ps1 \u003C/span>\u003Cspan style=\"color:#F57D26;--shiki-dark:#E69875\">|\u003C/span>\u003Cspan style=\"color:#5C6A72;--shiki-dark:#D3C6AA\"> iex\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"npm-fallback\">npm fallback\u003C/h2>\n\u003Cp>If you already manage Node yourself:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">npm\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> -g\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"local-development\">Local Development\u003C/h2>\n\u003Cp>For contributing or local development:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">git\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> clone\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> https://github.com/getcompanion-ai/feynman.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\">cd\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> feynman\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">npm\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">npm\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> run\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> start\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":290,"localImagePaths":309,"remoteImagePaths":310,"frontmatter":311,"imagePaths":312},[291,294,297,300,303,306],{"depth":26,"slug":292,"text":293},"requirements","Requirements",{"depth":26,"slug":295,"text":296},"recommended-install","Recommended install",{"depth":26,"slug":298,"text":299},"verify","Verify",{"depth":26,"slug":301,"text":302},"windows-powershell","Windows PowerShell",{"depth":26,"slug":304,"text":305},"npm-fallback","npm fallback",{"depth":26,"slug":307,"text":308},"local-development","Local Development",[],[],{"title":282,"description":283,"section":248,"order":94},[],"getting-started/installation.md","getting-started/quickstart",{"id":314,"data":316,"body":319,"filePath":320,"digest":321,"rendered":322,"legacyId":342},{"title":317,"description":318,"section":248,"order":26},"Quick Start","Get up and running with Feynman in 60 seconds","## First run\n\n```bash\nfeynman setup\nfeynman\n```\n\n`feynman setup` walks you through model authentication, alphaXiv login, web search configuration, and preview dependencies.\n\n## Ask naturally\n\nFeynman routes your questions into the right workflow automatically. You don't need slash commands to get started.\n\n```\n> What are the main approaches to RLHF alignment?\n```\n\nFeynman will search papers, gather web sources, and produce a structured answer with citations.\n\n## Use workflows directly\n\nFor explicit control, use slash commands inside the REPL:\n\n```\n> /deepresearch transformer scaling laws\n> /lit multimodal reasoning benchmarks\n> /review paper.pdf\n```\n\n## Output locations\n\nFeynman writes durable artifacts to canonical directories:\n\n- `outputs/` — Reviews, reading lists, summaries\n- `papers/` — Polished paper-style drafts\n- `experiments/` — Runnable code and result logs\n- `notes/` — Scratch notes and session logs","src/content/docs/getting-started/quickstart.md","0a22caade9f6c5a5",{"html":323,"metadata":324},"\u003Ch2 id=\"first-run\">First run\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> setup\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Ccode>feynman setup\u003C/code> walks you through model authentication, alphaXiv login, web search configuration, and preview dependencies.\u003C/p>\n\u003Ch2 id=\"ask-naturally\">Ask naturally\u003C/h2>\n\u003Cp>Feynman routes your questions into the right workflow automatically. You don’t need slash commands to get started.\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>> What are the main approaches to RLHF alignment?\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Feynman will search papers, gather web sources, and produce a structured answer with citations.\u003C/p>\n\u003Ch2 id=\"use-workflows-directly\">Use workflows directly\u003C/h2>\n\u003Cp>For explicit control, use slash commands inside the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>> /deepresearch transformer scaling laws\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>> /lit multimodal reasoning benchmarks\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>> /review paper.pdf\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output-locations\">Output locations\u003C/h2>\n\u003Cp>Feynman writes durable artifacts to canonical directories:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>outputs/\u003C/code> — Reviews, reading lists, summaries\u003C/li>\n\u003Cli>\u003Ccode>papers/\u003C/code> — Polished paper-style drafts\u003C/li>\n\u003Cli>\u003Ccode>experiments/\u003C/code> — Runnable code and result logs\u003C/li>\n\u003Cli>\u003Ccode>notes/\u003C/code> — Scratch notes and session logs\u003C/li>\n\u003C/ul>",{"headings":325,"localImagePaths":338,"remoteImagePaths":339,"frontmatter":340,"imagePaths":341},[326,329,332,335],{"depth":26,"slug":327,"text":328},"first-run","First run",{"depth":26,"slug":330,"text":331},"ask-naturally","Ask naturally",{"depth":26,"slug":333,"text":334},"use-workflows-directly","Use workflows directly",{"depth":26,"slug":336,"text":337},"output-locations","Output locations",[],[],{"title":317,"description":318,"section":248,"order":26},[],"getting-started/quickstart.md","tools/alphaxiv",{"id":343,"data":345,"body":347,"filePath":348,"digest":349,"rendered":350,"legacyId":374},{"title":231,"description":346,"section":34,"order":94},"Paper search and analysis tools","## Overview\n\nAlphaXiv powers Feynman's academic paper workflows. All tools require an alphaXiv account — sign in with `feynman alpha login`.\n\n## Tools\n\n### alpha_search\n\nPaper discovery with three search modes:\n\n- **semantic** — Meaning-based search across paper content\n- **keyword** — Traditional keyword matching\n- **agentic** — AI-powered search that interprets your intent\n\n### alpha_get_paper\n\nFetch a paper's report (structured summary) or full raw text by arXiv ID.\n\n### alpha_ask_paper\n\nAsk a targeted question about a specific paper. Returns an answer grounded in the paper's content.\n\n### alpha_annotate_paper\n\nAdd persistent local notes to a paper. Annotations are stored locally and persist across sessions.\n\n### alpha_list_annotations\n\nRecall all annotations across papers and sessions.\n\n### alpha_read_code\n\nRead source code from a paper's linked GitHub repository. Useful for auditing or replication planning.","src/content/docs/tools/alphaxiv.md","a6eeb2c5a98d3096",{"html":351,"metadata":352},"\u003Ch2 id=\"overview\">Overview\u003C/h2>\n\u003Cp>AlphaXiv powers Feynman’s academic paper workflows. All tools require an alphaXiv account — sign in with \u003Ccode>feynman alpha login\u003C/code>.\u003C/p>\n\u003Ch2 id=\"tools\">Tools\u003C/h2>\n\u003Ch3 id=\"alpha_search\">alpha_search\u003C/h3>\n\u003Cp>Paper discovery with three search modes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>semantic\u003C/strong> — Meaning-based search across paper content\u003C/li>\n\u003Cli>\u003Cstrong>keyword\u003C/strong> — Traditional keyword matching\u003C/li>\n\u003Cli>\u003Cstrong>agentic\u003C/strong> — AI-powered search that interprets your intent\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"alpha_get_paper\">alpha_get_paper\u003C/h3>\n\u003Cp>Fetch a paper’s report (structured summary) or full raw text by arXiv ID.\u003C/p>\n\u003Ch3 id=\"alpha_ask_paper\">alpha_ask_paper\u003C/h3>\n\u003Cp>Ask a targeted question about a specific paper. Returns an answer grounded in the paper’s content.\u003C/p>\n\u003Ch3 id=\"alpha_annotate_paper\">alpha_annotate_paper\u003C/h3>\n\u003Cp>Add persistent local notes to a paper. Annotations are stored locally and persist across sessions.\u003C/p>\n\u003Ch3 id=\"alpha_list_annotations\">alpha_list_annotations\u003C/h3>\n\u003Cp>Recall all annotations across papers and sessions.\u003C/p>\n\u003Ch3 id=\"alpha_read_code\">alpha_read_code\u003C/h3>\n\u003Cp>Read source code from a paper’s linked GitHub repository. Useful for auditing or replication planning.\u003C/p>",{"headings":353,"localImagePaths":370,"remoteImagePaths":371,"frontmatter":372,"imagePaths":373},[354,357,358,360,362,364,366,368],{"depth":26,"slug":355,"text":356},"overview","Overview",{"depth":26,"slug":33,"text":34},{"depth":74,"slug":359,"text":359},"alpha_search",{"depth":74,"slug":361,"text":361},"alpha_get_paper",{"depth":74,"slug":363,"text":363},"alpha_ask_paper",{"depth":74,"slug":365,"text":365},"alpha_annotate_paper",{"depth":74,"slug":367,"text":367},"alpha_list_annotations",{"depth":74,"slug":369,"text":369},"alpha_read_code",[],[],{"title":231,"description":346,"section":34,"order":94},[],"tools/alphaxiv.md","tools/preview",{"id":375,"data":377,"body":380,"filePath":381,"digest":382,"rendered":383,"legacyId":399},{"title":378,"description":379,"section":34,"order":17},"Preview","Preview generated artifacts in browser or PDF","## Overview\n\nThe `preview_file` tool opens generated artifacts in your browser or PDF viewer.\n\n## Usage\n\nInside the REPL:\n\n```\n/preview\n```\n\nOr Feynman will suggest previewing when you generate artifacts that benefit from rendered output (Markdown with LaTeX, HTML reports, etc.).\n\n## Requirements\n\nPreview requires `pandoc` for PDF/HTML rendering. Install it with:\n\n```bash\nfeynman --setup-preview\n```\n\n## Supported formats\n\n- Markdown (with LaTeX math rendering)\n- HTML\n- PDF","src/content/docs/tools/preview.md","b42137d5e0befd83",{"html":384,"metadata":385},"\u003Ch2 id=\"overview\">Overview\u003C/h2>\n\u003Cp>The \u003Ccode>preview_file\u003C/code> tool opens generated artifacts in your browser or PDF viewer.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Or Feynman will suggest previewing when you generate artifacts that benefit from rendered output (Markdown with LaTeX, HTML reports, etc.).\u003C/p>\n\u003Ch2 id=\"requirements\">Requirements\u003C/h2>\n\u003Cp>Preview requires \u003Ccode>pandoc\u003C/code> for PDF/HTML rendering. Install it with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --setup-preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"supported-formats\">Supported formats\u003C/h2>\n\u003Cul>\n\u003Cli>Markdown (with LaTeX math rendering)\u003C/li>\n\u003Cli>HTML\u003C/li>\n\u003Cli>PDF\u003C/li>\n\u003C/ul>",{"headings":386,"localImagePaths":395,"remoteImagePaths":396,"frontmatter":397,"imagePaths":398},[387,388,391,392],{"depth":26,"slug":355,"text":356},{"depth":26,"slug":389,"text":390},"usage","Usage",{"depth":26,"slug":292,"text":293},{"depth":26,"slug":393,"text":394},"supported-formats","Supported formats",[],[],{"title":378,"description":379,"section":34,"order":17},[],"tools/preview.md","getting-started/setup",{"id":400,"data":402,"body":404,"filePath":405,"digest":406,"rendered":407,"legacyId":434},{"title":205,"description":403,"section":248,"order":74},"Detailed setup guide for Feynman","## Guided setup\n\n```bash\nfeynman setup\n```\n\nThis walks through four steps:\n\n### Model provider authentication\n\nFeynman uses Pi's OAuth system for model access. The setup wizard prompts you to log in to your preferred provider.\n\n```bash\nfeynman model login\n```\n\n### AlphaXiv login\n\nAlphaXiv powers Feynman's paper search and analysis tools. Sign in with:\n\n```bash\nfeynman alpha login\n```\n\nCheck status anytime:\n\n```bash\nfeynman alpha status\n```\n\n### Web search routing\n\nFeynman supports three web search backends:\n\n- **auto** — Prefer Perplexity when configured, fall back to Gemini\n- **perplexity** — Force Perplexity Sonar\n- **gemini** — Force Gemini (default, zero-config via signed-in Chromium)\n\nThe default path requires no API keys — it uses Gemini Browser via your signed-in Chromium profile.\n\n### Preview dependencies\n\nFor PDF and HTML export of generated artifacts, Feynman needs `pandoc`:\n\n```bash\nfeynman --setup-preview\n```\n\nGlobal macOS installs also try to install pandoc automatically when Homebrew is available. Use the command above to retry manually.\n\n### Optional packages\n\nFeynman keeps the default package set lean so first-run installs stay fast. Install the heavier optional packages only when you need them:\n\n```bash\nfeynman packages list\nfeynman packages install memory\nfeynman packages install session-search\nfeynman packages install generative-ui\nfeynman packages install all-extras\n```\n\n## Diagnostics\n\nRun the doctor to check everything:\n\n```bash\nfeynman doctor\n```\n\nThis verifies model auth, alphaXiv credentials, preview dependencies, and the Pi runtime.","src/content/docs/getting-started/setup.md","ac3f3bae92f2beeb",{"html":408,"metadata":409},"\u003Ch2 id=\"guided-setup\">Guided setup\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> setup\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This walks through four steps:\u003C/p>\n\u003Ch3 id=\"model-provider-authentication\">Model provider authentication\u003C/h3>\n\u003Cp>Feynman uses Pi’s OAuth system for model access. The setup wizard prompts you to log in to your preferred provider.\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> model\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> login\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"alphaxiv-login\">AlphaXiv login\u003C/h3>\n\u003Cp>AlphaXiv powers Feynman’s paper search and analysis tools. Sign in with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> alpha\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> login\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Check status anytime:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> alpha\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"web-search-routing\">Web search routing\u003C/h3>\n\u003Cp>Feynman supports three web search backends:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>auto\u003C/strong> — Prefer Perplexity when configured, fall back to Gemini\u003C/li>\n\u003Cli>\u003Cstrong>perplexity\u003C/strong> — Force Perplexity Sonar\u003C/li>\n\u003Cli>\u003Cstrong>gemini\u003C/strong> — Force Gemini (default, zero-config via signed-in Chromium)\u003C/li>\n\u003C/ul>\n\u003Cp>The default path requires no API keys — it uses Gemini Browser via your signed-in Chromium profile.\u003C/p>\n\u003Ch3 id=\"preview-dependencies\">Preview dependencies\u003C/h3>\n\u003Cp>For PDF and HTML export of generated artifacts, Feynman needs \u003Ccode>pandoc\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> --setup-preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Global macOS installs also try to install pandoc automatically when Homebrew is available. Use the command above to retry manually.\u003C/p>\n\u003Ch3 id=\"optional-packages\">Optional packages\u003C/h3>\n\u003Cp>Feynman keeps the default package set lean so first-run installs stay fast. Install the heavier optional packages only when you need them:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> packages\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> list\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> packages\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> memory\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> packages\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> session-search\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> packages\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> generative-ui\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> packages\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> install\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> all-extras\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"diagnostics\">Diagnostics\u003C/h2>\n\u003Cp>Run the doctor to check everything:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> doctor\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This verifies model auth, alphaXiv credentials, preview dependencies, and the Pi runtime.\u003C/p>",{"headings":410,"localImagePaths":430,"remoteImagePaths":431,"frontmatter":432,"imagePaths":433},[411,414,417,420,423,426,427],{"depth":26,"slug":412,"text":413},"guided-setup","Guided setup",{"depth":74,"slug":415,"text":416},"model-provider-authentication","Model provider authentication",{"depth":74,"slug":418,"text":419},"alphaxiv-login","AlphaXiv login",{"depth":74,"slug":421,"text":422},"web-search-routing","Web search routing",{"depth":74,"slug":424,"text":425},"preview-dependencies","Preview dependencies",{"depth":74,"slug":178,"text":179},{"depth":26,"slug":428,"text":429},"diagnostics","Diagnostics",[],[],{"title":205,"description":403,"section":248,"order":74},[],"getting-started/setup.md","tools/session-search",{"id":435,"data":437,"body":440,"filePath":441,"digest":442,"rendered":443,"legacyId":456},{"title":438,"description":439,"section":34,"order":74},"Session Search","Search prior Feynman session transcripts","## Overview\n\nThe `session_search` tool recovers prior Feynman work from stored session transcripts. Useful for picking up previous research threads or finding past findings.\n\n## Usage\n\nInside the REPL:\n\n```\n/search\n```\n\nOr use the tool directly — Feynman will invoke `session_search` automatically when you reference prior work.\n\n## What it searches\n\n- Full session transcripts\n- Tool outputs and agent results\n- Generated artifacts and their content","src/content/docs/tools/session-search.md","7091dddc6969e581",{"html":444,"metadata":445},"\u003Ch2 id=\"overview\">Overview\u003C/h2>\n\u003Cp>The \u003Ccode>session_search\u003C/code> tool recovers prior Feynman work from stored session transcripts. Useful for picking up previous research threads or finding past findings.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/search\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Or use the tool directly — Feynman will invoke \u003Ccode>session_search\u003C/code> automatically when you reference prior work.\u003C/p>\n\u003Ch2 id=\"what-it-searches\">What it searches\u003C/h2>\n\u003Cul>\n\u003Cli>Full session transcripts\u003C/li>\n\u003Cli>Tool outputs and agent results\u003C/li>\n\u003Cli>Generated artifacts and their content\u003C/li>\n\u003C/ul>",{"headings":446,"localImagePaths":452,"remoteImagePaths":453,"frontmatter":454,"imagePaths":455},[447,448,449],{"depth":26,"slug":355,"text":356},{"depth":26,"slug":389,"text":390},{"depth":26,"slug":450,"text":451},"what-it-searches","What it searches",[],[],{"title":438,"description":439,"section":34,"order":74},[],"tools/session-search.md","tools/web-search",{"id":457,"data":459,"body":462,"filePath":463,"digest":464,"rendered":465,"legacyId":485},{"title":460,"description":461,"section":34,"order":26},"Web Search","Web search routing and configuration","## Routing modes\n\nFeynman supports three web search backends:\n\n| Mode | Description |\n|------|-------------|\n| `auto` | Prefer Perplexity when configured, fall back to Gemini |\n| `perplexity` | Force Perplexity Sonar |\n| `gemini` | Force Gemini (default) |\n\n## Default behavior\n\nThe default path is zero-config Gemini Browser via a signed-in Chromium profile. No API keys required.\n\n## Check current config\n\n```bash\nfeynman search status\n```\n\n## Advanced configuration\n\nEdit `~/.feynman/web-search.json` directly to set:\n\n- Gemini API keys\n- Perplexity API keys\n- Custom routing preferences","src/content/docs/tools/web-search.md","b2963fe8f7ae5dce",{"html":466,"metadata":467},"\u003Ch2 id=\"routing-modes\">Routing modes\u003C/h2>\n\u003Cp>Feynman supports three web search backends:\u003C/p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Mode\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>auto\u003C/code>\u003C/td>\u003Ctd>Prefer Perplexity when configured, fall back to Gemini\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>perplexity\u003C/code>\u003C/td>\u003Ctd>Force Perplexity Sonar\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>gemini\u003C/code>\u003C/td>\u003Ctd>Force Gemini (default)\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"default-behavior\">Default behavior\u003C/h2>\n\u003Cp>The default path is zero-config Gemini Browser via a signed-in Chromium profile. No API keys required.\u003C/p>\n\u003Ch2 id=\"check-current-config\">Check current config\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#8DA101;--shiki-dark:#A7C080\">feynman\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> search\u003C/span>\u003Cspan style=\"color:#DFA000;--shiki-dark:#DBBC7F\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"advanced-configuration\">Advanced configuration\u003C/h2>\n\u003Cp>Edit \u003Ccode>~/.feynman/web-search.json\u003C/code> directly to set:\u003C/p>\n\u003Cul>\n\u003Cli>Gemini API keys\u003C/li>\n\u003Cli>Perplexity API keys\u003C/li>\n\u003Cli>Custom routing preferences\u003C/li>\n\u003C/ul>",{"headings":468,"localImagePaths":481,"remoteImagePaths":482,"frontmatter":483,"imagePaths":484},[469,472,475,478],{"depth":26,"slug":470,"text":471},"routing-modes","Routing modes",{"depth":26,"slug":473,"text":474},"default-behavior","Default behavior",{"depth":26,"slug":476,"text":477},"check-current-config","Check current config",{"depth":26,"slug":479,"text":480},"advanced-configuration","Advanced configuration",[],[],{"title":460,"description":461,"section":34,"order":26},[],"tools/web-search.md","workflows/autoresearch",{"id":486,"data":488,"body":493,"filePath":494,"digest":495,"rendered":496,"legacyId":517},{"title":489,"description":490,"section":491,"order":492},"Autoresearch","Autonomous experiment optimization loop","Workflows",8,"## Usage\n\n```\n/autoresearch \u003Cidea>\n```\n\n## What it does\n\nRuns an autonomous experiment loop:\n\n1. **Edit** — Modify code or configuration\n2. **Commit** — Save the change\n3. **Benchmark** — Run evaluation\n4. **Evaluate** — Compare against baseline\n5. **Keep or revert** — Persist improvements, roll back regressions\n6. **Repeat** — Continue until the target is hit\n\n## Tracking\n\nMetrics are tracked in:\n\n- `autoresearch.md` — Human-readable progress log\n- `autoresearch.jsonl` — Machine-readable metrics over time\n\n## Controls\n\n```\n/autoresearch \u003Cidea> # start or resume\n/autoresearch off # stop, keep data\n/autoresearch clear # delete all state, start fresh\n```\n\n## Example\n\n```\n/autoresearch optimize the learning rate schedule for better convergence\n```","src/content/docs/workflows/autoresearch.md","94559e14e60edcad",{"html":497,"metadata":498},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/autoresearch <idea>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Runs an autonomous experiment loop:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Edit\u003C/strong> — Modify code or configuration\u003C/li>\n\u003Cli>\u003Cstrong>Commit\u003C/strong> — Save the change\u003C/li>\n\u003Cli>\u003Cstrong>Benchmark\u003C/strong> — Run evaluation\u003C/li>\n\u003Cli>\u003Cstrong>Evaluate\u003C/strong> — Compare against baseline\u003C/li>\n\u003Cli>\u003Cstrong>Keep or revert\u003C/strong> — Persist improvements, roll back regressions\u003C/li>\n\u003Cli>\u003Cstrong>Repeat\u003C/strong> — Continue until the target is hit\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"tracking\">Tracking\u003C/h2>\n\u003Cp>Metrics are tracked in:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>autoresearch.md\u003C/code> — Human-readable progress log\u003C/li>\n\u003Cli>\u003Ccode>autoresearch.jsonl\u003C/code> — Machine-readable metrics over time\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"controls\">Controls\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/autoresearch <idea> # start or resume\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>/autoresearch off # stop, keep data\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>/autoresearch clear # delete all state, start fresh\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/autoresearch optimize the learning rate schedule for better convergence\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":499,"localImagePaths":513,"remoteImagePaths":514,"frontmatter":515,"imagePaths":516},[500,501,504,507,510],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},"what-it-does","What it does",{"depth":26,"slug":505,"text":506},"tracking","Tracking",{"depth":26,"slug":508,"text":509},"controls","Controls",{"depth":26,"slug":511,"text":512},"example","Example",[],[],{"title":489,"description":490,"section":491,"order":492},[],"workflows/autoresearch.md","workflows/audit",{"id":518,"data":520,"body":523,"filePath":524,"digest":525,"rendered":526,"legacyId":543},{"title":521,"description":522,"section":491,"order":17},"Code Audit","Compare paper claims against public codebases","## Usage\n\n```\n/audit \u003Citem>\n```\n\n## What it does\n\nCompares claims made in a paper against its public codebase. Surfaces mismatches, missing experiments, and reproducibility risks.\n\n## What it checks\n\n- Do the reported hyperparameters match the code?\n- Are all claimed experiments present in the repository?\n- Does the training loop match the described methodology?\n- Are there undocumented preprocessing steps?\n- Do evaluation metrics match the paper's claims?\n\n## Example\n\n```\n/audit 2401.12345\n```\n\n## Output\n\nAn audit report with:\n\n- Claim-by-claim verification\n- Identified mismatches\n- Missing components\n- Reproducibility risk assessment","src/content/docs/workflows/audit.md","58f5516850bcd065",{"html":527,"metadata":528},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit <item>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Compares claims made in a paper against its public codebase. Surfaces mismatches, missing experiments, and reproducibility risks.\u003C/p>\n\u003Ch2 id=\"what-it-checks\">What it checks\u003C/h2>\n\u003Cul>\n\u003Cli>Do the reported hyperparameters match the code?\u003C/li>\n\u003Cli>Are all claimed experiments present in the repository?\u003C/li>\n\u003Cli>Does the training loop match the described methodology?\u003C/li>\n\u003Cli>Are there undocumented preprocessing steps?\u003C/li>\n\u003Cli>Do evaluation metrics match the paper’s claims?\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit 2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cp>An audit report with:\u003C/p>\n\u003Cul>\n\u003Cli>Claim-by-claim verification\u003C/li>\n\u003Cli>Identified mismatches\u003C/li>\n\u003Cli>Missing components\u003C/li>\n\u003Cli>Reproducibility risk assessment\u003C/li>\n\u003C/ul>",{"headings":529,"localImagePaths":539,"remoteImagePaths":540,"frontmatter":541,"imagePaths":542},[530,531,532,535,536],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":533,"text":534},"what-it-checks","What it checks",{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},"output","Output",[],[],{"title":521,"description":522,"section":491,"order":17},[],"workflows/audit.md","workflows/compare",{"id":544,"data":546,"body":550,"filePath":551,"digest":552,"rendered":553,"legacyId":565},{"title":547,"description":548,"section":491,"order":549},"Source Comparison","Compare multiple sources with agreement/disagreement matrix",6,"## Usage\n\n```\n/compare \u003Ctopic>\n```\n\n## What it does\n\nCompares multiple sources on a topic. Builds an agreement/disagreement matrix showing where sources align and where they conflict.\n\n## Example\n\n```\n/compare approaches to constitutional AI training\n```\n\n## Output\n\n- Source-by-source breakdown\n- Agreement/disagreement matrix\n- Synthesis of key differences\n- Assessment of which positions have stronger evidence","src/content/docs/workflows/compare.md","669d1dce304b191f",{"html":554,"metadata":555},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare <topic>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Compares multiple sources on a topic. Builds an agreement/disagreement matrix showing where sources align and where they conflict.\u003C/p>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare approaches to constitutional AI training\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cul>\n\u003Cli>Source-by-source breakdown\u003C/li>\n\u003Cli>Agreement/disagreement matrix\u003C/li>\n\u003Cli>Synthesis of key differences\u003C/li>\n\u003Cli>Assessment of which positions have stronger evidence\u003C/li>\n\u003C/ul>",{"headings":556,"localImagePaths":561,"remoteImagePaths":562,"frontmatter":563,"imagePaths":564},[557,558,559,560],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},[],[],{"title":547,"description":548,"section":491,"order":549},[],"workflows/compare.md","workflows/draft",{"id":566,"data":568,"body":572,"filePath":573,"digest":574,"rendered":575,"legacyId":589},{"title":569,"description":570,"section":491,"order":571},"Draft Writing","Paper-style draft generation from research findings",7,"## Usage\n\n```\n/draft \u003Ctopic>\n```\n\n## What it does\n\nProduces a paper-style draft with structured sections. Writes to `papers/`.\n\n## Structure\n\nThe generated draft includes:\n\n- Title\n- Abstract\n- Introduction / Background\n- Method or Approach\n- Evidence and Analysis\n- Limitations\n- Conclusion\n- Sources\n\n## Example\n\n```\n/draft survey of differentiable physics simulators\n```\n\nThe writer agent works only from supplied evidence — it never fabricates content. If evidence is insufficient, it explicitly notes the gaps.","src/content/docs/workflows/draft.md","5549e489883745ea",{"html":576,"metadata":577},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft <topic>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Produces a paper-style draft with structured sections. Writes to \u003Ccode>papers/\u003C/code>.\u003C/p>\n\u003Ch2 id=\"structure\">Structure\u003C/h2>\n\u003Cp>The generated draft includes:\u003C/p>\n\u003Cul>\n\u003Cli>Title\u003C/li>\n\u003Cli>Abstract\u003C/li>\n\u003Cli>Introduction / Background\u003C/li>\n\u003Cli>Method or Approach\u003C/li>\n\u003Cli>Evidence and Analysis\u003C/li>\n\u003Cli>Limitations\u003C/li>\n\u003Cli>Conclusion\u003C/li>\n\u003Cli>Sources\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft survey of differentiable physics simulators\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The writer agent works only from supplied evidence — it never fabricates content. If evidence is insufficient, it explicitly notes the gaps.\u003C/p>",{"headings":578,"localImagePaths":585,"remoteImagePaths":586,"frontmatter":587,"imagePaths":588},[579,580,581,584],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":582,"text":583},"structure","Structure",{"depth":26,"slug":511,"text":512},[],[],{"title":569,"description":570,"section":491,"order":571},[],"workflows/draft.md","workflows/deep-research",{"id":590,"data":592,"body":595,"filePath":596,"digest":597,"rendered":598,"legacyId":610},{"title":593,"description":594,"section":491,"order":94},"Deep Research","Thorough source-heavy investigation with parallel agents","## Usage\n\n```\n/deepresearch \u003Ctopic>\n```\n\n## What it does\n\nDeep research runs a thorough, source-heavy investigation. It plans the research scope, delegates to parallel researcher agents, synthesizes findings, and adds inline citations.\n\nThe workflow follows these steps:\n\n1. **Plan** — Clarify the research question and identify search strategy\n2. **Delegate** — Spawn parallel researcher agents to gather evidence from different source types (papers, web, repos)\n3. **Synthesize** — Merge findings, resolve contradictions, identify gaps\n4. **Cite** — Add inline citations and verify all source URLs\n5. **Deliver** — Write a durable research brief to `outputs/`\n\n## Example\n\n```\n/deepresearch transformer scaling laws and their implications for compute-optimal training\n```\n\n## Output\n\nProduces a structured research brief with:\n\n- Executive summary\n- Key findings organized by theme\n- Evidence tables with source links\n- Open questions and suggested next steps\n- Numbered sources section with direct URLs","src/content/docs/workflows/deep-research.md","5a1ed5d3fd031659",{"html":599,"metadata":600},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/deepresearch <topic>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Deep research runs a thorough, source-heavy investigation. It plans the research scope, delegates to parallel researcher agents, synthesizes findings, and adds inline citations.\u003C/p>\n\u003Cp>The workflow follows these steps:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Plan\u003C/strong> — Clarify the research question and identify search strategy\u003C/li>\n\u003Cli>\u003Cstrong>Delegate\u003C/strong> — Spawn parallel researcher agents to gather evidence from different source types (papers, web, repos)\u003C/li>\n\u003Cli>\u003Cstrong>Synthesize\u003C/strong> — Merge findings, resolve contradictions, identify gaps\u003C/li>\n\u003Cli>\u003Cstrong>Cite\u003C/strong> — Add inline citations and verify all source URLs\u003C/li>\n\u003Cli>\u003Cstrong>Deliver\u003C/strong> — Write a durable research brief to \u003Ccode>outputs/\u003C/code>\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/deepresearch transformer scaling laws and their implications for compute-optimal training\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cp>Produces a structured research brief with:\u003C/p>\n\u003Cul>\n\u003Cli>Executive summary\u003C/li>\n\u003Cli>Key findings organized by theme\u003C/li>\n\u003Cli>Evidence tables with source links\u003C/li>\n\u003Cli>Open questions and suggested next steps\u003C/li>\n\u003Cli>Numbered sources section with direct URLs\u003C/li>\n\u003C/ul>",{"headings":601,"localImagePaths":606,"remoteImagePaths":607,"frontmatter":608,"imagePaths":609},[602,603,604,605],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},[],[],{"title":593,"description":594,"section":491,"order":94},[],"workflows/deep-research.md","workflows/replication",{"id":611,"data":613,"body":617,"filePath":618,"digest":619,"rendered":620,"legacyId":632},{"title":614,"description":615,"section":491,"order":616},"Replication","Plan replications of papers and claims",5,"## Usage\n\n```\n/replicate \u003Cpaper or claim>\n```\n\n## What it does\n\nExtracts key implementation details from a paper, identifies what's needed to replicate the results, and asks where to run before executing anything.\n\nBefore running code, Feynman asks you to choose an execution environment:\n\n- **Local** — run in the current working directory\n- **Virtual environment** — create an isolated venv/conda env first\n- **Docker** — run experiment code inside an isolated Docker container\n- **Plan only** — produce the replication plan without executing\n\n## Example\n\n```\n/replicate \"chain-of-thought prompting improves math reasoning\"\n```\n\n## Output\n\nA replication plan covering:\n\n- Key claims to verify\n- Required resources (compute, data, models)\n- Implementation details extracted from the paper\n- Potential pitfalls and underspecified details\n- Step-by-step replication procedure\n- Success criteria\n\nIf an execution environment is selected, also produces runnable scripts and captured results.","src/content/docs/workflows/replication.md","7c11487f428a389a",{"html":621,"metadata":622},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate <paper or claim>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Extracts key implementation details from a paper, identifies what’s needed to replicate the results, and asks where to run before executing anything.\u003C/p>\n\u003Cp>Before running code, Feynman asks you to choose an execution environment:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Local\u003C/strong> — run in the current working directory\u003C/li>\n\u003Cli>\u003Cstrong>Virtual environment\u003C/strong> — create an isolated venv/conda env first\u003C/li>\n\u003Cli>\u003Cstrong>Docker\u003C/strong> — run experiment code inside an isolated Docker container\u003C/li>\n\u003Cli>\u003Cstrong>Plan only\u003C/strong> — produce the replication plan without executing\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate \"chain-of-thought prompting improves math reasoning\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cp>A replication plan covering:\u003C/p>\n\u003Cul>\n\u003Cli>Key claims to verify\u003C/li>\n\u003Cli>Required resources (compute, data, models)\u003C/li>\n\u003Cli>Implementation details extracted from the paper\u003C/li>\n\u003Cli>Potential pitfalls and underspecified details\u003C/li>\n\u003Cli>Step-by-step replication procedure\u003C/li>\n\u003Cli>Success criteria\u003C/li>\n\u003C/ul>\n\u003Cp>If an execution environment is selected, also produces runnable scripts and captured results.\u003C/p>",{"headings":623,"localImagePaths":628,"remoteImagePaths":629,"frontmatter":630,"imagePaths":631},[624,625,626,627],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},[],[],{"title":614,"description":615,"section":491,"order":616},[],"workflows/replication.md","workflows/literature-review",{"id":633,"data":635,"body":638,"filePath":639,"digest":640,"rendered":641,"legacyId":653},{"title":636,"description":637,"section":491,"order":26},"Literature Review","Map consensus, disagreements, and open questions","## Usage\n\n```\n/lit \u003Ctopic>\n```\n\n## What it does\n\nRuns a structured literature review that searches across academic papers and web sources. Explicitly separates consensus findings from disagreements and open questions.\n\n## Example\n\n```\n/lit multimodal reasoning benchmarks for large language models\n```\n\n## Output\n\nA structured review covering:\n\n- **Consensus** — What the field agrees on\n- **Disagreements** — Where sources conflict\n- **Open questions** — What remains unresolved\n- **Sources** — Direct links to all referenced papers and articles","src/content/docs/workflows/literature-review.md","7def25e86b0bdc22",{"html":642,"metadata":643},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/lit <topic>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Runs a structured literature review that searches across academic papers and web sources. Explicitly separates consensus findings from disagreements and open questions.\u003C/p>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/lit multimodal reasoning benchmarks for large language models\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cp>A structured review covering:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Consensus\u003C/strong> — What the field agrees on\u003C/li>\n\u003Cli>\u003Cstrong>Disagreements\u003C/strong> — Where sources conflict\u003C/li>\n\u003Cli>\u003Cstrong>Open questions\u003C/strong> — What remains unresolved\u003C/li>\n\u003Cli>\u003Cstrong>Sources\u003C/strong> — Direct links to all referenced papers and articles\u003C/li>\n\u003C/ul>",{"headings":644,"localImagePaths":649,"remoteImagePaths":650,"frontmatter":651,"imagePaths":652},[645,646,647,648],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},[],[],{"title":636,"description":637,"section":491,"order":26},[],"workflows/literature-review.md","workflows/review",{"id":654,"data":656,"body":659,"filePath":660,"digest":661,"rendered":662,"legacyId":677},{"title":657,"description":658,"section":491,"order":74},"Peer Review","Simulated peer review with severity-graded feedback","## Usage\n\n```\n/review \u003Cartifact>\n```\n\n## What it does\n\nSimulates a tough-but-fair peer review for AI research artifacts. Evaluates novelty, empirical rigor, baselines, ablations, and reproducibility.\n\nThe reviewer agent identifies:\n\n- Weak baselines\n- Missing ablations\n- Evaluation mismatches\n- Benchmark leakage\n- Under-specified implementation details\n\n## Severity levels\n\nFeedback is graded by severity:\n\n- **FATAL** — Fundamental issues that invalidate the claims\n- **MAJOR** — Significant problems that need addressing\n- **MINOR** — Small improvements or clarifications\n\n## Example\n\n```\n/review outputs/scaling-laws-brief.md\n```\n\n## Output\n\nStructured review with:\n\n- Summary of the work\n- Strengths\n- Weaknesses (severity-graded)\n- Questions for the authors\n- Verdict (accept / revise / reject)\n- Revision plan","src/content/docs/workflows/review.md","5a1cfb4bdd03056c",{"html":663,"metadata":664},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review <artifact>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Simulates a tough-but-fair peer review for AI research artifacts. Evaluates novelty, empirical rigor, baselines, ablations, and reproducibility.\u003C/p>\n\u003Cp>The reviewer agent identifies:\u003C/p>\n\u003Cul>\n\u003Cli>Weak baselines\u003C/li>\n\u003Cli>Missing ablations\u003C/li>\n\u003Cli>Evaluation mismatches\u003C/li>\n\u003Cli>Benchmark leakage\u003C/li>\n\u003Cli>Under-specified implementation details\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"severity-levels\">Severity levels\u003C/h2>\n\u003Cp>Feedback is graded by severity:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>FATAL\u003C/strong> — Fundamental issues that invalidate the claims\u003C/li>\n\u003Cli>\u003Cstrong>MAJOR\u003C/strong> — Significant problems that need addressing\u003C/li>\n\u003Cli>\u003Cstrong>MINOR\u003C/strong> — Small improvements or clarifications\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review outputs/scaling-laws-brief.md\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"output\">Output\u003C/h2>\n\u003Cp>Structured review with:\u003C/p>\n\u003Cul>\n\u003Cli>Summary of the work\u003C/li>\n\u003Cli>Strengths\u003C/li>\n\u003Cli>Weaknesses (severity-graded)\u003C/li>\n\u003Cli>Questions for the authors\u003C/li>\n\u003Cli>Verdict (accept / revise / reject)\u003C/li>\n\u003Cli>Revision plan\u003C/li>\n\u003C/ul>",{"headings":665,"localImagePaths":673,"remoteImagePaths":674,"frontmatter":675,"imagePaths":676},[666,667,668,671,672],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":669,"text":670},"severity-levels","Severity levels",{"depth":26,"slug":511,"text":512},{"depth":26,"slug":537,"text":538},[],[],{"title":657,"description":658,"section":491,"order":74},[],"workflows/review.md","workflows/watch",{"id":678,"data":680,"body":684,"filePath":685,"digest":686,"rendered":687,"legacyId":701},{"title":681,"description":682,"section":491,"order":683},"Watch","Recurring research monitoring",9,"## Usage\n\n```\n/watch \u003Ctopic>\n```\n\n## What it does\n\nSchedules a recurring research watch. Sets a baseline of current knowledge and defines what constitutes a meaningful change worth reporting.\n\n## Example\n\n```\n/watch new papers on test-time compute scaling\n```\n\n## How it works\n\n1. Feynman establishes a baseline by surveying current sources\n2. Defines change signals (new papers, updated results, new repos)\n3. Schedules periodic checks via `pi-schedule-prompt`\n4. Reports only when meaningful changes are detected","src/content/docs/workflows/watch.md","b24ebad68d8b9736",{"html":688,"metadata":689},"\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/watch <topic>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>Schedules a recurring research watch. Sets a baseline of current knowledge and defines what constitutes a meaningful change worth reporting.\u003C/p>\n\u003Ch2 id=\"example\">Example\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes everforest-light everforest-dark\" style=\"background-color:#fdf6e3;--shiki-dark-bg:#2d353b;color:#5c6a72;--shiki-dark:#d3c6aa; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/watch new papers on test-time compute scaling\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Col>\n\u003Cli>Feynman establishes a baseline by surveying current sources\u003C/li>\n\u003Cli>Defines change signals (new papers, updated results, new repos)\u003C/li>\n\u003Cli>Schedules periodic checks via \u003Ccode>pi-schedule-prompt\u003C/code>\u003C/li>\n\u003Cli>Reports only when meaningful changes are detected\u003C/li>\n\u003C/ol>",{"headings":690,"localImagePaths":697,"remoteImagePaths":698,"frontmatter":699,"imagePaths":700},[691,692,693,694],{"depth":26,"slug":389,"text":390},{"depth":26,"slug":502,"text":503},{"depth":26,"slug":511,"text":512},{"depth":26,"slug":695,"text":696},"how-it-works","How it works",[],[],{"title":681,"description":682,"section":491,"order":683},[],"workflows/watch.md"] \ No newline at end of file diff --git a/website/astro.config.mjs b/website/astro.config.mjs index ef95811..ca5daa7 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -7,8 +7,8 @@ export default defineConfig({ markdown: { shikiConfig: { themes: { - light: 'github-light', - dark: 'github-dark', + light: 'everforest-light', + dark: 'everforest-dark', }, }, }, diff --git a/website/public/hero-raw.png b/website/public/hero-raw.png new file mode 100644 index 0000000..21675f4 Binary files /dev/null and b/website/public/hero-raw.png differ diff --git a/website/public/hero.png b/website/public/hero.png new file mode 100644 index 0000000..5d7149b Binary files /dev/null and b/website/public/hero.png differ diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro index b3f10cb..96c4f20 100644 --- a/website/src/pages/index.astro +++ b/website/src/pages/index.astro @@ -6,7 +6,6 @@ import AsciiLogo from '../components/AsciiLogo.astro';
-

The open source AI research agent

Investigate topics, write papers, run experiments, review research, audit codebases — every output cited and source-grounded

+
+ Feynman CLI +
diff --git a/website/src/styles/global.css b/website/src/styles/global.css index d055b21..b8b88aa 100644 --- a/website/src/styles/global.css +++ b/website/src/styles/global.css @@ -3,31 +3,31 @@ @tailwind utilities; :root { - --color-bg: #f0f5f1; - --color-surface: #e4ece6; - --color-surface-2: #d8e3db; - --color-border: #c2d1c6; - --color-text: #1a2e22; - --color-text-muted: #3d5c4a; - --color-text-dim: #6b8f7a; - --color-accent: #0d9668; - --color-accent-hover: #077a54; - --color-accent-subtle: #c6e4d4; - --color-teal: #0e8a7d; + --color-bg: #f3ead3; + --color-surface: #eae4ca; + --color-surface-2: #e0dbc2; + --color-border: #c9c4b0; + --color-text: #3a464c; + --color-text-muted: #5c6a72; + --color-text-dim: #859289; + --color-accent: #6e8b53; + --color-accent-hover: #5a7342; + --color-accent-subtle: #d5e3bf; + --color-teal: #5da09a; } .dark { - --color-bg: #050a08; - --color-surface: #0c1410; - --color-surface-2: #131f1a; - --color-border: #1b2f26; - --color-text: #f0f5f2; - --color-text-muted: #8aaa9a; - --color-text-dim: #4d7565; - --color-accent: #34d399; - --color-accent-hover: #10b981; - --color-accent-subtle: #064e3b; - --color-teal: #2dd4bf; + --color-bg: #2d353b; + --color-surface: #343f44; + --color-surface-2: #3a464c; + --color-border: #5c6a72; + --color-text: #d3c6aa; + --color-text-muted: #9da9a0; + --color-text-dim: #859289; + --color-accent: #a7c080; + --color-accent-hover: #93ad6c; + --color-accent-subtle: #425047; + --color-teal: #7fbbb3; } html { @@ -87,7 +87,7 @@ body { .prose code { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace; font-size: 0.875rem; - background-color: var(--color-surface); + background-color: var(--color-surface-2); padding: 0.125rem 0.375rem; border-radius: 0.25rem; color: var(--color-text); @@ -95,7 +95,6 @@ body { .prose pre { position: relative; - background-color: var(--color-surface) !important; border-radius: 0.5rem; padding: 1rem 1.25rem; overflow-x: auto; @@ -103,13 +102,13 @@ body { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace; font-size: 0.875rem; line-height: 1.7; + border: 1px solid var(--color-border); } .prose pre code { background: none !important; border: none; padding: 0; - color: var(--color-text); } .copy-code { @@ -137,9 +136,6 @@ pre:hover .copy-code { color: var(--color-accent); } -.prose pre code span { - color: inherit !important; -} .prose table { width: 100%; @@ -201,6 +197,34 @@ pre:hover .copy-code { margin-bottom: 1rem; } +* { + scrollbar-width: thin; + scrollbar-color: var(--color-border) transparent; +} + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; +} + +::-webkit-scrollbar-thumb { + background: var(--color-border); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--color-text-dim); +} + +::selection { + background: var(--color-accent-subtle); + color: var(--color-text); +} + .agent-entry { background-color: var(--color-surface); border-radius: 0.75rem;