From f6dbacc9d5c9acb6798ee238638603ae1e435b4b Mon Sep 17 00:00:00 2001 From: Advait Paliwal Date: Wed, 25 Mar 2026 13:55:32 -0700 Subject: [PATCH] Update runtime checks and installer behavior --- .astro/content.d.ts | 154 ++++++++++++++++++ .astro/types.d.ts | 2 + .feynman/SYSTEM.md | 2 +- .feynman/settings.json | 1 + .nvmrc | 1 + CHANGELOG.md | 36 ++++ README.md | 7 +- bin/feynman.js | 25 ++- package.json | 1 + scripts/check-node-version.mjs | 35 ++++ scripts/install/install.ps1 | 10 ++ scripts/install/install.sh | 31 +++- skills/alpha-research/SKILL.md | 4 +- src/index.ts | 10 +- src/pi/launch.ts | 3 + src/pi/package-presets.ts | 1 + src/pi/runtime.ts | 3 +- src/system/node-version.ts | 40 +++++ tests/node-version.test.ts | 35 ++++ tests/pi-runtime.test.ts | 1 + website/.astro/data-store.json | 2 +- website/public/install | 31 +++- website/public/install.ps1 | 10 ++ .../docs/getting-started/installation.md | 7 +- 24 files changed, 431 insertions(+), 21 deletions(-) create mode 100644 .astro/content.d.ts create mode 100644 .astro/types.d.ts create mode 100644 .nvmrc create mode 100644 scripts/check-node-version.mjs create mode 100644 src/system/node-version.ts create mode 100644 tests/node-version.test.ts diff --git a/.astro/content.d.ts b/.astro/content.d.ts new file mode 100644 index 0000000..d9eaab4 --- /dev/null +++ b/.astro/content.d.ts @@ -0,0 +1,154 @@ +declare module 'astro:content' { + export interface RenderResult { + Content: import('astro/runtime/server/index.js').AstroComponentFactory; + headings: import('astro').MarkdownHeading[]; + remarkPluginFrontmatter: Record; + } + interface Render { + '.md': Promise; + } + + export interface RenderedContent { + html: string; + metadata?: { + imagePaths: Array; + [key: string]: unknown; + }; + } + + type Flatten = T extends { [K: string]: infer U } ? U : never; + + export type CollectionKey = keyof DataEntryMap; + export type CollectionEntry = Flatten; + + type AllValuesOf = T extends any ? T[keyof T] : never; + + export type ReferenceDataEntry< + C extends CollectionKey, + E extends keyof DataEntryMap[C] = string, + > = { + collection: C; + id: E; + }; + + export type ReferenceLiveEntry = { + collection: C; + id: string; + }; + + export function getCollection>( + collection: C, + filter?: (entry: CollectionEntry) => entry is E, + ): Promise; + export function getCollection( + collection: C, + filter?: (entry: CollectionEntry) => unknown, + ): Promise[]>; + + export function getLiveCollection( + collection: C, + filter?: LiveLoaderCollectionFilterType, + ): Promise< + import('astro').LiveDataCollectionResult, LiveLoaderErrorType> + >; + + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >( + entry: ReferenceDataEntry, + ): E extends keyof DataEntryMap[C] + ? Promise + : Promise | undefined>; + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >( + collection: C, + id: E, + ): E extends keyof DataEntryMap[C] + ? string extends keyof DataEntryMap[C] + ? Promise | undefined + : Promise + : Promise | undefined>; + export function getLiveEntry( + collection: C, + filter: string | LiveLoaderEntryFilterType, + ): Promise, LiveLoaderErrorType>>; + + /** Resolve an array of entry references from the same collection */ + export function getEntries( + entries: ReferenceDataEntry[], + ): Promise[]>; + + export function render( + entry: DataEntryMap[C][string], + ): Promise; + + export function reference< + C extends + | keyof DataEntryMap + // Allow generic `string` to avoid excessive type errors in the config + // if `dev` is not running to update as you edit. + // Invalid collection names will be caught at build time. + | (string & {}), + >( + collection: C, + ): import('astro/zod').ZodPipe< + import('astro/zod').ZodString, + import('astro/zod').ZodTransform< + C extends keyof DataEntryMap + ? { + collection: C; + id: string; + } + : never, + string + > + >; + + type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; + type InferEntrySchema = import('astro/zod').infer< + ReturnTypeOrOriginal['schema']> + >; + type ExtractLoaderConfig = T extends { loader: infer L } ? L : never; + type InferLoaderSchema< + C extends keyof DataEntryMap, + L = ExtractLoaderConfig, + > = L extends { schema: import('astro/zod').ZodSchema } + ? import('astro/zod').infer + : any; + + type DataEntryMap = { + + }; + + type ExtractLoaderTypes = T extends import('astro/loaders').LiveLoader< + infer TData, + infer TEntryFilter, + infer TCollectionFilter, + infer TError + > + ? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError } + : { data: never; entryFilter: never; collectionFilter: never; error: never }; + type ExtractEntryFilterType = ExtractLoaderTypes['entryFilter']; + type ExtractCollectionFilterType = ExtractLoaderTypes['collectionFilter']; + type ExtractErrorType = ExtractLoaderTypes['error']; + + type LiveLoaderDataType = + LiveContentConfig['collections'][C]['schema'] extends undefined + ? ExtractDataType + : import('astro/zod').infer< + Exclude + >; + type LiveLoaderEntryFilterType = + ExtractEntryFilterType; + type LiveLoaderCollectionFilterType = + ExtractCollectionFilterType; + type LiveLoaderErrorType = ExtractErrorType< + LiveContentConfig['collections'][C]['loader'] + >; + + export type ContentConfig = never; + export type LiveContentConfig = never; +} diff --git a/.astro/types.d.ts b/.astro/types.d.ts new file mode 100644 index 0000000..03d7cc4 --- /dev/null +++ b/.astro/types.d.ts @@ -0,0 +1,2 @@ +/// +/// \ No newline at end of file diff --git a/.feynman/SYSTEM.md b/.feynman/SYSTEM.md index d5ae91f..87655e0 100644 --- a/.feynman/SYSTEM.md +++ b/.feynman/SYSTEM.md @@ -9,7 +9,7 @@ Operating rules: - State uncertainty explicitly. - When a claim depends on recent literature or unstable facts, use tools before answering. - When discussing papers, cite title, year, and identifier or URL when possible. -- Use the alpha-research skill for academic paper search, paper reading, paper Q&A, repository inspection, and persistent annotations. +- Use the `alpha` CLI for academic paper search, paper reading, paper Q&A, repository inspection, and persistent annotations. - Use `web_search`, `fetch_content`, and `get_search_content` first for current topics: products, companies, markets, regulations, software releases, model availability, model pricing, benchmarks, docs, or anything phrased as latest/current/recent/today. - For mixed topics, combine both: use web sources for current reality and paper sources for background literature. - Never answer a latest/current question from arXiv or alpha-backed paper search alone. diff --git a/.feynman/settings.json b/.feynman/settings.json index 257d3e8..9cbc861 100644 --- a/.feynman/settings.json +++ b/.feynman/settings.json @@ -1,5 +1,6 @@ { "packages": [ + "npm:@companion-ai/alpha-hub", "npm:pi-subagents", "npm:pi-btw", "npm:pi-docparser", diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..d4b7699 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.18.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index b5eab74..df144a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,3 +14,39 @@ Use this file to track chronology, not release notes. Keep entries short, factua - Failed / learned: ... - Blockers: ... - Next: ... + +### 2026-03-25 00:00 local — scaling-laws + +- Objective: Set up a deep research workflow for scaling laws. +- Changed: Created plan artifact at `outputs/.plans/scaling-laws.md`; defined 4 disjoint researcher dimensions and acceptance criteria. +- Verified: Read `CHANGELOG.md` and checked prior memory for related plan `scaling-laws-implications`. +- Failed / learned: No prior run-specific changelog entries existed beyond the template. +- Blockers: Waiting for user confirmation before launching researcher round 1. +- Next: On confirmation, spawn 4 parallel researcher subagents and begin evidence collection. + +### 2026-03-25 00:30 local — scaling-laws (T4 inference/time-scale pass) + +- Objective: Complete T4 on inference/test-time scaling and reasoning-time compute, scoped to 2023–2026. +- Changed: Wrote `notes/scaling-laws-research-inference.md`; updated `outputs/.plans/scaling-laws.md` to mark T4 done and log the inference-scaling verification pass. +- Verified: Cross-read 13 primary/official sources covering Tree-of-Thoughts, PRMs, repeated sampling, compute-optimal test-time scaling, provable laws, o1, DeepSeek-R1, s1, verifier failures, Anthropic extended thinking, and OpenAI reasoning API docs. +- Failed / learned: OpenAI blog fetch for `learning-to-reason-with-llms` returned malformed content, so the note leans on the o1 system card and API docs instead of that blog post. +- Blockers: T2 and T5 remain open before final synthesis; no single unified law for inference-time scaling emerged from public sources. +- Next: Complete T5 implications synthesis, then reconcile T3/T4 with foundational T2 before drafting the cited brief. + +### 2026-03-25 11:20 local — scaling-laws (T6 draft synthesis) + +- Objective: Synthesize the four research notes into a single user-facing draft brief for the scaling-laws workflow. +- Changed: Wrote `outputs/.drafts/scaling-laws-draft.md` with an executive summary, curated reading list, qualitative meta-analysis, core-paper comparison table, explicit training-vs-inference distinction, and numbered inline citations with direct-URL sources. +- Verified: Cross-checked the draft against `notes/scaling-laws-research-foundations.md`, `notes/scaling-laws-research-revisions.md`, `notes/scaling-laws-research-inference.md`, and `notes/scaling-laws-research-implications.md` to ensure the brief explicitly states the literature is too heterogeneous for a pooled effect-size estimate. +- Failed / learned: The requested temp-run `context.md` and `plan.md` were absent, so the synthesis used `outputs/.plans/scaling-laws.md` plus the four note files as the working context. +- Blockers: Citation/claim verification pass still pending; this draft should be treated as pre-verification. +- Next: Run verifier/reviewer passes, then promote the draft into the final cited brief and provenance sidecar. + +### 2026-03-25 11:28 local — scaling-laws (final brief + pdf) + +- Objective: Deliver a paper guide and qualitative meta-analysis on AI scaling laws. +- Changed: Finalized `outputs/scaling-laws.md` and sidecar `outputs/scaling-laws.provenance.md`; rendered preview PDF at `outputs/scaling-laws.pdf`; updated plan ledger and verification log in `outputs/.plans/scaling-laws.md`. +- Verified: Ran a reviewer pass recorded in `notes/scaling-laws-verification.md`; spot-checked key primary papers via alpha-backed reads for Kaplan 2020, Chinchilla 2022, and Snell 2024; confirmed PDF render output exists. +- Failed / learned: A pooled statistical meta-analysis would be misleading because the literature mixes heterogeneous outcomes, scaling axes, and evaluation regimes; final deliverable uses a qualitative meta-analysis instead. +- Blockers: None for this brief. +- Next: If needed, extend into a narrower sub-survey (e.g. only pretraining laws, only inference-time scaling, or only post-Chinchilla data-quality revisions). diff --git a/README.md b/README.md index 8354481..ea4b7f2 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ curl -fsSL https://feynman.is/install | bash ``` +If you install via `pnpm` or `bun` instead of the standalone bundle, Feynman requires Node.js `20.18.1` or newer. + --- ### What you type → what happens @@ -92,7 +94,10 @@ Built on [Pi](https://github.com/badlogic/pi-mono) for the agent runtime, [alpha ```bash git clone https://github.com/getcompanion-ai/feynman.git -cd feynman && pnpm install && pnpm start +cd feynman +nvm use || nvm install +pnpm install +pnpm start ``` [Docs](https://feynman.is/docs) · [MIT License](LICENSE) diff --git a/bin/feynman.js b/bin/feynman.js index 3d857a1..3d77cca 100755 --- a/bin/feynman.js +++ b/bin/feynman.js @@ -1,8 +1,25 @@ #!/usr/bin/env node -const v = process.versions.node.split(".").map(Number); -if (v[0] < 20) { - console.error(`feynman requires Node.js 20 or later (you have ${process.versions.node})`); - console.error("upgrade: https://nodejs.org or nvm install 20"); +const MIN_NODE_VERSION = "20.18.1"; + +function parseNodeVersion(version) { + const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split("."); + return { + major: Number.parseInt(major, 10) || 0, + minor: Number.parseInt(minor, 10) || 0, + patch: Number.parseInt(patch, 10) || 0, + }; +} + +function compareNodeVersions(left, right) { + if (left.major !== right.major) return left.major - right.major; + if (left.minor !== right.minor) return left.minor - right.minor; + return left.patch - right.patch; +} + +if (compareNodeVersions(parseNodeVersion(process.versions.node), parseNodeVersion(MIN_NODE_VERSION)) < 0) { + console.error(`feynman requires Node.js ${MIN_NODE_VERSION} or later (detected ${process.versions.node}).`); + console.error("Switch to Node 20 with `nvm install 20 && nvm use 20`, or use the standalone installer:"); + console.error("curl -fsSL https://feynman.is/install | bash"); process.exit(1); } await import("../scripts/patch-embedded-pi.mjs"); diff --git a/package.json b/package.json index 74a2c29..7157408 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ ".env.example" ], "scripts": { + "preinstall": "node ./scripts/check-node-version.mjs", "build": "tsc -p tsconfig.build.json", "build:native-bundle": "node ./scripts/build-native-bundle.mjs", "dev": "tsx src/index.ts", diff --git a/scripts/check-node-version.mjs b/scripts/check-node-version.mjs new file mode 100644 index 0000000..8c8cf57 --- /dev/null +++ b/scripts/check-node-version.mjs @@ -0,0 +1,35 @@ +const MIN_NODE_VERSION = "20.18.1"; + +function parseNodeVersion(version) { + const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split("."); + return { + major: Number.parseInt(major, 10) || 0, + minor: Number.parseInt(minor, 10) || 0, + patch: Number.parseInt(patch, 10) || 0, + }; +} + +function compareNodeVersions(left, right) { + if (left.major !== right.major) return left.major - right.major; + if (left.minor !== right.minor) return left.minor - right.minor; + return left.patch - right.patch; +} + +function isSupportedNodeVersion(version = process.versions.node) { + return compareNodeVersions(parseNodeVersion(version), parseNodeVersion(MIN_NODE_VERSION)) >= 0; +} + +function getUnsupportedNodeVersionLines(version = process.versions.node) { + return [ + `feynman requires Node.js ${MIN_NODE_VERSION} or later (detected ${version}).`, + "Switch to Node 20 with `nvm install 20 && nvm use 20`, or use the standalone installer:", + "curl -fsSL https://feynman.is/install | bash", + ]; +} + +if (!isSupportedNodeVersion()) { + for (const line of getUnsupportedNodeVersionLines()) { + console.error(line); + } + process.exit(1); +} diff --git a/scripts/install/install.ps1 b/scripts/install/install.ps1 index ea28733..cd06e40 100644 --- a/scripts/install/install.ps1 +++ b/scripts/install/install.ps1 @@ -146,6 +146,16 @@ Workarounds: Write-Host "$installBinDir is already on PATH." } + $resolvedCommand = Get-Command feynman -ErrorAction SilentlyContinue + if ($resolvedCommand -and $resolvedCommand.Source -ne $shimPath) { + Write-Warning "Current shell resolves feynman to $($resolvedCommand.Source)" + Write-Host "Run in a new shell, or run: `$env:Path = '$installBinDir;' + `$env:Path" + Write-Host "Then run: feynman" + if ($resolvedCommand.Source -like "*node_modules*@companion-ai*feynman*") { + Write-Host "If that path is an old global npm install, remove it with: npm uninstall -g @companion-ai/feynman" + } + } + Write-Host "Feynman $resolvedVersion installed successfully." } finally { if (Test-Path $tmpDir) { diff --git a/scripts/install/install.sh b/scripts/install/install.sh index 8b69240..f8d7e9b 100644 --- a/scripts/install/install.sh +++ b/scripts/install/install.sh @@ -160,6 +160,27 @@ require_command() { fi } +warn_command_conflict() { + expected_path="$INSTALL_BIN_DIR/feynman" + resolved_path="$(command -v feynman 2>/dev/null || true)" + + if [ -z "$resolved_path" ]; then + return + fi + + if [ "$resolved_path" != "$expected_path" ]; then + step "Warning: current shell resolves feynman to $resolved_path" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" + step "Or launch directly: $expected_path" + + case "$resolved_path" in + *"/node_modules/@companion-ai/feynman/"* | *"/node_modules/.bin/feynman") + step "If that path is an old global npm install, remove it with: npm uninstall -g @companion-ai/feynman" + ;; + esac + fi +} + resolve_release_metadata() { normalized_version="$(normalize_version "$VERSION")" @@ -290,20 +311,22 @@ add_to_path case "$path_action" in added) step "PATH updated for future shells in $path_profile" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; configured) step "PATH is already configured for future shells in $path_profile" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; skipped) step "PATH update skipped" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; *) step "$INSTALL_BIN_DIR is already on PATH" - step "Run: feynman" + step "Run: hash -r && feynman" ;; esac +warn_command_conflict + printf 'Feynman %s installed successfully.\n' "$resolved_version" diff --git a/skills/alpha-research/SKILL.md b/skills/alpha-research/SKILL.md index 90609c6..9efbef1 100644 --- a/skills/alpha-research/SKILL.md +++ b/skills/alpha-research/SKILL.md @@ -11,7 +11,7 @@ Use the `alpha` CLI via bash for all paper research operations. | Command | Description | |---------|-------------| -| `alpha search ""` | Search papers. Modes: `--mode semantic`, `--mode keyword`, `--mode agentic` | +| `alpha search ""` | Search papers. Prefer `--mode semantic` by default; use `--mode keyword` only for exact-term lookup and `--mode agentic` for broader retrieval. | | `alpha get ` | Fetch paper content and any local annotation | | `alpha get --full-text ` | Get raw full text instead of AI report | | `alpha ask ""` | Ask a question about a paper's PDF | @@ -22,7 +22,7 @@ Use the `alpha` CLI via bash for all paper research operations. ## Auth -Run `alpha login` to authenticate with alphaXiv. Check status with `alpha status`. +Run `alpha login` to authenticate with alphaXiv. Check status with `feynman alpha status`, or `alpha status` once your installed `alpha-hub` version includes it. ## Examples diff --git a/src/index.ts b/src/index.ts index 9139557..cb85caf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,12 @@ -import { main } from "./cli.js"; +import { ensureSupportedNodeVersion } from "./system/node-version.js"; -main().catch((error) => { +async function run(): Promise { + ensureSupportedNodeVersion(); + const { main } = await import("./cli.js"); + await main(); +} + +run().catch((error) => { console.error(error instanceof Error ? error.message : String(error)); process.exitCode = 1; }); diff --git a/src/pi/launch.ts b/src/pi/launch.ts index bcf649e..e2c35cf 100644 --- a/src/pi/launch.ts +++ b/src/pi/launch.ts @@ -2,8 +2,11 @@ import { spawn } from "node:child_process"; import { existsSync } from "node:fs"; import { buildPiArgs, buildPiEnv, type PiRuntimeOptions, resolvePiPaths } from "./runtime.js"; +import { ensureSupportedNodeVersion } from "../system/node-version.js"; export async function launchPiChat(options: PiRuntimeOptions): Promise { + ensureSupportedNodeVersion(); + const { piCliPath, promisePolyfillPath } = resolvePiPaths(options.appRoot); if (!existsSync(piCliPath)) { throw new Error(`Pi CLI not found: ${piCliPath}`); diff --git a/src/pi/package-presets.ts b/src/pi/package-presets.ts index 718962f..e3d821a 100644 --- a/src/pi/package-presets.ts +++ b/src/pi/package-presets.ts @@ -1,6 +1,7 @@ import type { PackageSource } from "@mariozechner/pi-coding-agent"; export const CORE_PACKAGE_SOURCES = [ + "npm:@companion-ai/alpha-hub", "npm:pi-subagents", "npm:pi-btw", "npm:pi-docparser", diff --git a/src/pi/runtime.ts b/src/pi/runtime.ts index d38a20f..fee987d 100644 --- a/src/pi/runtime.ts +++ b/src/pi/runtime.ts @@ -79,7 +79,8 @@ export function buildPiEnv(options: PiRuntimeOptions): NodeJS.ProcessEnv { const paths = resolvePiPaths(options.appRoot); const currentPath = process.env.PATH ?? ""; - const binPath = paths.nodeModulesBinPath; + const binEntries = [paths.nodeModulesBinPath, resolve(paths.piWorkspaceNodeModulesPath, ".bin")]; + const binPath = binEntries.join(":"); return { ...process.env, diff --git a/src/system/node-version.ts b/src/system/node-version.ts new file mode 100644 index 0000000..6842aba --- /dev/null +++ b/src/system/node-version.ts @@ -0,0 +1,40 @@ +export const MIN_NODE_VERSION = "20.18.1"; + +type ParsedNodeVersion = { + major: number; + minor: number; + patch: number; +}; + +function parseNodeVersion(version: string): ParsedNodeVersion { + const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split("."); + return { + major: Number.parseInt(major, 10) || 0, + minor: Number.parseInt(minor, 10) || 0, + patch: Number.parseInt(patch, 10) || 0, + }; +} + +function compareNodeVersions(left: ParsedNodeVersion, right: ParsedNodeVersion): number { + if (left.major !== right.major) return left.major - right.major; + if (left.minor !== right.minor) return left.minor - right.minor; + return left.patch - right.patch; +} + +export function isSupportedNodeVersion(version = process.versions.node): boolean { + return compareNodeVersions(parseNodeVersion(version), parseNodeVersion(MIN_NODE_VERSION)) >= 0; +} + +export function getUnsupportedNodeVersionLines(version = process.versions.node): string[] { + return [ + `feynman requires Node.js ${MIN_NODE_VERSION} or later (detected ${version}).`, + "Switch to Node 20 with `nvm install 20 && nvm use 20`, or use the standalone installer:", + "curl -fsSL https://feynman.is/install | bash", + ]; +} + +export function ensureSupportedNodeVersion(version = process.versions.node): void { + if (!isSupportedNodeVersion(version)) { + throw new Error(getUnsupportedNodeVersionLines(version).join("\n")); + } +} diff --git a/tests/node-version.test.ts b/tests/node-version.test.ts new file mode 100644 index 0000000..178d9bf --- /dev/null +++ b/tests/node-version.test.ts @@ -0,0 +1,35 @@ +import test from "node:test"; +import assert from "node:assert/strict"; + +import { + MIN_NODE_VERSION, + ensureSupportedNodeVersion, + getUnsupportedNodeVersionLines, + isSupportedNodeVersion, +} from "../src/system/node-version.js"; + +test("isSupportedNodeVersion enforces the exact minimum floor", () => { + assert.equal(isSupportedNodeVersion("20.18.1"), true); + assert.equal(isSupportedNodeVersion("20.19.0"), true); + assert.equal(isSupportedNodeVersion("21.0.0"), true); + assert.equal(isSupportedNodeVersion("20.18.0"), false); + assert.equal(isSupportedNodeVersion("18.17.0"), false); +}); + +test("ensureSupportedNodeVersion throws a guided upgrade message", () => { + assert.throws( + () => ensureSupportedNodeVersion("18.17.0"), + (error: unknown) => + error instanceof Error && + error.message.includes(`Node.js ${MIN_NODE_VERSION}`) && + error.message.includes("nvm install 20 && nvm use 20") && + error.message.includes("https://feynman.is/install"), + ); +}); + +test("unsupported version guidance reports the detected version", () => { + const lines = getUnsupportedNodeVersionLines("18.17.0"); + + assert.equal(lines[0], "feynman requires Node.js 20.18.1 or later (detected 18.17.0)."); + assert.ok(lines.some((line) => line.includes("curl -fsSL https://feynman.is/install | bash"))); +}); diff --git a/tests/pi-runtime.test.ts b/tests/pi-runtime.test.ts index e652a3b..204e4d2 100644 --- a/tests/pi-runtime.test.ts +++ b/tests/pi-runtime.test.ts @@ -41,6 +41,7 @@ test("buildPiEnv wires Feynman paths into the Pi environment", () => { assert.equal(env.FEYNMAN_SESSION_DIR, "/sessions"); assert.equal(env.FEYNMAN_BIN_PATH, "/repo/feynman/bin/feynman.js"); assert.equal(env.FEYNMAN_MEMORY_DIR, "/home/.feynman/memory"); + assert.ok(env.PATH?.startsWith("/repo/feynman/node_modules/.bin:/repo/feynman/.feynman/npm/node_modules/.bin:")); }); test("resolvePiPaths includes the Promise.withResolvers polyfill path", () => { diff --git a/website/.astro/data-store.json b/website/.astro/data-store.json index 9c14e15..672ecd2 100644 --- a/website/.astro/data-store.json +++ b/website/.astro/data-store.json @@ -1 +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\":\"vitesse-light\",\"dark\":\"vitesse-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,46,47,71,72,97,98,126,127,159,160,192,193,226,227,258,259,290,291,322,323,352,353,391,392,418,419,447,448,476,477,500,501,525,526,547,548,568,569,592,593,617,618,638,639,662,663],"agents/writer",{"id":11,"data":13,"body":18,"filePath":19,"digest":20,"rendered":21,"legacyId":45},{"title":14,"description":15,"section":16,"order":17},"Writer","The writer agent produces structured academic prose from research findings.","Agents",3,"The writer agent transforms raw research findings into structured, well-organized documents. It specializes in academic prose, producing papers, briefs, surveys, and reports with proper citations, section structure, and narrative flow.\n\n## What it does\n\nThe writer takes source material -- findings from researcher agents, review feedback, comparison matrices -- and synthesizes it into a coherent document. It handles the difficult task of turning a collection of extracted claims and citations into prose that tells a clear story.\n\nThe writer understands academic conventions. Claims are attributed to their sources with inline citations. Methodology sections describe procedures with sufficient detail for reproduction. Results are presented with appropriate qualifiers. Limitations are discussed honestly rather than buried or omitted.\n\n## Writing capabilities\n\nThe writer agent handles several document types:\n\n- **Research Briefs** -- Concise summaries of a topic with key findings and citations, produced by the deep research workflow\n- **Literature Reviews** -- Survey-style documents that map consensus, disagreement, and open questions across the field\n- **Paper Drafts** -- Full academic papers with abstract, introduction, body sections, discussion, and references\n- **Comparison Reports** -- Structured analyses of how multiple sources agree and differ\n- **Summaries** -- Condensed versions of longer documents or multi-source findings\n\n## Citation handling\n\nThe writer maintains citation integrity throughout the document. Every factual claim is linked back to its source. When multiple sources support the same claim, all are cited. When a claim comes from a single source, the writer notes this to help the reader assess confidence. The final reference list includes only works actually cited in the text.\n\n## Iteration\n\nThe writer supports iterative refinement. After producing an initial draft, you can ask Feynman to revise specific sections, add more detail on a subtopic, restructure the argument, or adjust the tone and level of technical detail. Each revision preserves the citation links and document structure.\n\n## Used by\n\nThe writer agent is used by `/deepresearch` (for the final brief), `/lit` (for the review document), `/draft` (as the primary agent), and `/compare` (for the comparison report). It is always the last agent to run in a workflow, producing the final output from the material gathered and evaluated by the researcher and reviewer agents.","src/content/docs/agents/writer.md","4987a7c97b5b9e55",{"html":22,"metadata":23},"\u003Cp>The writer agent transforms raw research findings into structured, well-organized documents. It specializes in academic prose, producing papers, briefs, surveys, and reports with proper citations, section structure, and narrative flow.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The writer takes source material — findings from researcher agents, review feedback, comparison matrices — and synthesizes it into a coherent document. It handles the difficult task of turning a collection of extracted claims and citations into prose that tells a clear story.\u003C/p>\n\u003Cp>The writer understands academic conventions. Claims are attributed to their sources with inline citations. Methodology sections describe procedures with sufficient detail for reproduction. Results are presented with appropriate qualifiers. Limitations are discussed honestly rather than buried or omitted.\u003C/p>\n\u003Ch2 id=\"writing-capabilities\">Writing capabilities\u003C/h2>\n\u003Cp>The writer agent handles several document types:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Research Briefs\u003C/strong> — Concise summaries of a topic with key findings and citations, produced by the deep research workflow\u003C/li>\n\u003Cli>\u003Cstrong>Literature Reviews\u003C/strong> — Survey-style documents that map consensus, disagreement, and open questions across the field\u003C/li>\n\u003Cli>\u003Cstrong>Paper Drafts\u003C/strong> — Full academic papers with abstract, introduction, body sections, discussion, and references\u003C/li>\n\u003Cli>\u003Cstrong>Comparison Reports\u003C/strong> — Structured analyses of how multiple sources agree and differ\u003C/li>\n\u003Cli>\u003Cstrong>Summaries\u003C/strong> — Condensed versions of longer documents or multi-source findings\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"citation-handling\">Citation handling\u003C/h2>\n\u003Cp>The writer maintains citation integrity throughout the document. Every factual claim is linked back to its source. When multiple sources support the same claim, all are cited. When a claim comes from a single source, the writer notes this to help the reader assess confidence. The final reference list includes only works actually cited in the text.\u003C/p>\n\u003Ch2 id=\"iteration\">Iteration\u003C/h2>\n\u003Cp>The writer supports iterative refinement. After producing an initial draft, you can ask Feynman to revise specific sections, add more detail on a subtopic, restructure the argument, or adjust the tone and level of technical detail. Each revision preserves the citation links and document structure.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The writer agent is used by \u003Ccode>/deepresearch\u003C/code> (for the final brief), \u003Ccode>/lit\u003C/code> (for the review document), \u003Ccode>/draft\u003C/code> (as the primary agent), and \u003Ccode>/compare\u003C/code> (for the comparison report). It is always the last agent to run in a workflow, producing the final output from the material gathered and evaluated by the researcher and reviewer agents.\u003C/p>",{"headings":24,"localImagePaths":41,"remoteImagePaths":42,"frontmatter":43,"imagePaths":44},[25,29,32,35,38],{"depth":26,"slug":27,"text":28},2,"what-it-does","What it does",{"depth":26,"slug":30,"text":31},"writing-capabilities","Writing capabilities",{"depth":26,"slug":33,"text":34},"citation-handling","Citation handling",{"depth":26,"slug":36,"text":37},"iteration","Iteration",{"depth":26,"slug":39,"text":40},"used-by","Used by",[],[],{"title":14,"description":15,"section":16,"order":17},[],"agents/writer.md","agents/reviewer",{"id":46,"data":48,"body":51,"filePath":52,"digest":53,"rendered":54,"legacyId":70},{"title":49,"description":50,"section":16,"order":26},"Reviewer","The reviewer agent evaluates documents with severity-graded academic feedback.","The reviewer agent evaluates documents, papers, and research artifacts with the rigor of an academic peer reviewer. It produces severity-graded feedback covering methodology, claims, writing quality, and reproducibility.\n\n## What it does\n\nThe reviewer reads a document end-to-end and evaluates it against standard academic criteria. It checks whether claims are supported by the presented evidence, whether the methodology is sound and described in sufficient detail, whether the experimental design controls for confounds, and whether the writing is clear and complete.\n\nEach piece of feedback is assigned a severity level. **Critical** issues are fundamental problems that undermine the document's validity, such as a statistical test applied incorrectly or a conclusion not supported by the data. **Major** issues are significant problems that should be addressed, like missing baselines or inadequate ablation studies. **Minor** issues are suggestions for improvement, and **nits** are stylistic or formatting comments.\n\n## Evaluation criteria\n\nThe reviewer evaluates documents across several dimensions:\n\n- **Claims vs. Evidence** -- Does the evidence presented actually support the claims made?\n- **Methodology** -- Is the approach sound? Are there confounds or biases?\n- **Experimental Design** -- Are baselines appropriate? Are ablations sufficient?\n- **Reproducibility** -- Could someone replicate this work from the description alone?\n- **Writing Quality** -- Is the paper clear, well-organized, and free of ambiguity?\n- **Completeness** -- Are limitations discussed? Is related work adequately covered?\n\n## Confidence scoring\n\nThe reviewer provides a confidence score for each finding, indicating how certain it is about the assessment. High-confidence findings are clear-cut issues (a statistical error, a missing citation). Lower-confidence findings are judgment calls (whether a baseline is sufficient, whether more ablations are needed) where reasonable reviewers might disagree.\n\n## Used by\n\nThe reviewer agent is the primary agent in the `/review` workflow. It also contributes to `/audit` (evaluating paper claims against code) and `/compare` (assessing the strength of evidence across sources). Like all agents, it is dispatched automatically by the workflow orchestrator.","src/content/docs/agents/reviewer.md","be8db72eb9155c15",{"html":55,"metadata":56},"\u003Cp>The reviewer agent evaluates documents, papers, and research artifacts with the rigor of an academic peer reviewer. It produces severity-graded feedback covering methodology, claims, writing quality, and reproducibility.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The reviewer reads a document end-to-end and evaluates it against standard academic criteria. It checks whether claims are supported by the presented evidence, whether the methodology is sound and described in sufficient detail, whether the experimental design controls for confounds, and whether the writing is clear and complete.\u003C/p>\n\u003Cp>Each piece of feedback is assigned a severity level. \u003Cstrong>Critical\u003C/strong> issues are fundamental problems that undermine the document’s validity, such as a statistical test applied incorrectly or a conclusion not supported by the data. \u003Cstrong>Major\u003C/strong> issues are significant problems that should be addressed, like missing baselines or inadequate ablation studies. \u003Cstrong>Minor\u003C/strong> issues are suggestions for improvement, and \u003Cstrong>nits\u003C/strong> are stylistic or formatting comments.\u003C/p>\n\u003Ch2 id=\"evaluation-criteria\">Evaluation criteria\u003C/h2>\n\u003Cp>The reviewer evaluates documents across several dimensions:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Claims vs. Evidence\u003C/strong> — Does the evidence presented actually support the claims made?\u003C/li>\n\u003Cli>\u003Cstrong>Methodology\u003C/strong> — Is the approach sound? Are there confounds or biases?\u003C/li>\n\u003Cli>\u003Cstrong>Experimental Design\u003C/strong> — Are baselines appropriate? Are ablations sufficient?\u003C/li>\n\u003Cli>\u003Cstrong>Reproducibility\u003C/strong> — Could someone replicate this work from the description alone?\u003C/li>\n\u003Cli>\u003Cstrong>Writing Quality\u003C/strong> — Is the paper clear, well-organized, and free of ambiguity?\u003C/li>\n\u003Cli>\u003Cstrong>Completeness\u003C/strong> — Are limitations discussed? Is related work adequately covered?\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"confidence-scoring\">Confidence scoring\u003C/h2>\n\u003Cp>The reviewer provides a confidence score for each finding, indicating how certain it is about the assessment. High-confidence findings are clear-cut issues (a statistical error, a missing citation). Lower-confidence findings are judgment calls (whether a baseline is sufficient, whether more ablations are needed) where reasonable reviewers might disagree.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The reviewer agent is the primary agent in the \u003Ccode>/review\u003C/code> workflow. It also contributes to \u003Ccode>/audit\u003C/code> (evaluating paper claims against code) and \u003Ccode>/compare\u003C/code> (assessing the strength of evidence across sources). Like all agents, it is dispatched automatically by the workflow orchestrator.\u003C/p>",{"headings":57,"localImagePaths":66,"remoteImagePaths":67,"frontmatter":68,"imagePaths":69},[58,59,62,65],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":60,"text":61},"evaluation-criteria","Evaluation criteria",{"depth":26,"slug":63,"text":64},"confidence-scoring","Confidence scoring",{"depth":26,"slug":39,"text":40},[],[],{"title":49,"description":50,"section":16,"order":26},[],"agents/reviewer.md","agents/verifier",{"id":71,"data":73,"body":77,"filePath":78,"digest":79,"rendered":80,"legacyId":96},{"title":74,"description":75,"section":16,"order":76},"Verifier","The verifier agent cross-checks claims against their cited sources.",4,"The verifier agent is responsible for fact-checking and validation. It cross-references claims against their cited sources, checks code implementations against paper descriptions, and flags unsupported or misattributed assertions.\n\n## What it does\n\nThe verifier performs targeted checks on specific claims rather than reading documents end-to-end like the reviewer. It takes a claim and its cited source, retrieves the source, and determines whether the source actually supports the claim as stated. This catches misattributions (citing a paper that says something different), overstatements (claiming a stronger result than the source reports), and fabrications (claims with no basis in the cited source).\n\nWhen checking code against papers, the verifier examines specific implementation details: hyperparameters, architecture configurations, training procedures, and evaluation metrics. It compares the paper's description to the code's actual behavior, noting discrepancies with exact file paths and line numbers.\n\n## Verification process\n\nThe verifier follows a systematic process for each claim it checks:\n\n1. **Retrieve the source** -- Fetch the cited paper, article, or code file\n2. **Locate the relevant section** -- Find where the source addresses the claim\n3. **Compare** -- Check whether the source supports the claim as stated\n4. **Classify** -- Mark the claim as verified, unsupported, overstated, or contradicted\n5. **Document** -- Record the evidence with exact quotes and locations\n\nThis process is deterministic and traceable. Every verification result includes the specific passage or code that was checked, making it easy to audit the verifier's work.\n\n## Confidence and limitations\n\nThe verifier assigns a confidence level to each verification. Claims that directly quote a source are verified with high confidence. Claims that paraphrase or interpret results are verified with moderate confidence, since reasonable interpretations can differ. Claims about the implications or significance of results are verified with lower confidence, since these involve judgment.\n\nThe verifier is honest about its limitations. When a claim cannot be verified because the source is behind a paywall, the code is not available, or the claim requires domain expertise beyond what the verifier can assess, it says so explicitly rather than guessing.\n\n## Used by\n\nThe verifier agent is used by `/deepresearch` (final fact-checking pass), `/audit` (comparing paper claims to code), and `/replicate` (verifying that the replication plan captures all necessary details). It serves as the quality control step that runs after the researcher and writer have produced their output.","src/content/docs/agents/verifier.md","f9a4b55e40e92190",{"html":81,"metadata":82},"\u003Cp>The verifier agent is responsible for fact-checking and validation. It cross-references claims against their cited sources, checks code implementations against paper descriptions, and flags unsupported or misattributed assertions.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The verifier performs targeted checks on specific claims rather than reading documents end-to-end like the reviewer. It takes a claim and its cited source, retrieves the source, and determines whether the source actually supports the claim as stated. This catches misattributions (citing a paper that says something different), overstatements (claiming a stronger result than the source reports), and fabrications (claims with no basis in the cited source).\u003C/p>\n\u003Cp>When checking code against papers, the verifier examines specific implementation details: hyperparameters, architecture configurations, training procedures, and evaluation metrics. It compares the paper’s description to the code’s actual behavior, noting discrepancies with exact file paths and line numbers.\u003C/p>\n\u003Ch2 id=\"verification-process\">Verification process\u003C/h2>\n\u003Cp>The verifier follows a systematic process for each claim it checks:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Retrieve the source\u003C/strong> — Fetch the cited paper, article, or code file\u003C/li>\n\u003Cli>\u003Cstrong>Locate the relevant section\u003C/strong> — Find where the source addresses the claim\u003C/li>\n\u003Cli>\u003Cstrong>Compare\u003C/strong> — Check whether the source supports the claim as stated\u003C/li>\n\u003Cli>\u003Cstrong>Classify\u003C/strong> — Mark the claim as verified, unsupported, overstated, or contradicted\u003C/li>\n\u003Cli>\u003Cstrong>Document\u003C/strong> — Record the evidence with exact quotes and locations\u003C/li>\n\u003C/ol>\n\u003Cp>This process is deterministic and traceable. Every verification result includes the specific passage or code that was checked, making it easy to audit the verifier’s work.\u003C/p>\n\u003Ch2 id=\"confidence-and-limitations\">Confidence and limitations\u003C/h2>\n\u003Cp>The verifier assigns a confidence level to each verification. Claims that directly quote a source are verified with high confidence. Claims that paraphrase or interpret results are verified with moderate confidence, since reasonable interpretations can differ. Claims about the implications or significance of results are verified with lower confidence, since these involve judgment.\u003C/p>\n\u003Cp>The verifier is honest about its limitations. When a claim cannot be verified because the source is behind a paywall, the code is not available, or the claim requires domain expertise beyond what the verifier can assess, it says so explicitly rather than guessing.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The verifier agent is used by \u003Ccode>/deepresearch\u003C/code> (final fact-checking pass), \u003Ccode>/audit\u003C/code> (comparing paper claims to code), and \u003Ccode>/replicate\u003C/code> (verifying that the replication plan captures all necessary details). It serves as the quality control step that runs after the researcher and writer have produced their output.\u003C/p>",{"headings":83,"localImagePaths":92,"remoteImagePaths":93,"frontmatter":94,"imagePaths":95},[84,85,88,91],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":86,"text":87},"verification-process","Verification process",{"depth":26,"slug":89,"text":90},"confidence-and-limitations","Confidence and limitations",{"depth":26,"slug":39,"text":40},[],[],{"title":74,"description":75,"section":16,"order":76},[],"agents/verifier.md","agents/researcher",{"id":97,"data":99,"body":103,"filePath":104,"digest":105,"rendered":106,"legacyId":125},{"title":100,"description":101,"section":16,"order":102},"Researcher","The researcher agent searches, reads, and extracts findings from papers and web sources.",1,"The researcher is the primary information-gathering agent in Feynman. It searches academic databases and the web, reads papers and articles, extracts key findings, and organizes source material for other agents to synthesize. Most workflows start with the researcher.\n\n## What it does\n\nThe researcher agent handles the entire source discovery and extraction pipeline. It formulates search queries based on your topic, evaluates results for relevance, reads full documents, and extracts structured information including claims, methodology, results, and limitations.\n\nWhen multiple researcher agents are spawned in parallel (which is the default for deep research and literature review), each agent tackles a different angle of the topic. One might search for foundational papers while another looks for recent work that challenges the established view. This parallel approach produces broader coverage than a single sequential search.\n\n## Search strategy\n\nThe researcher uses a multi-source search strategy. For academic topics, it queries AlphaXiv for papers and uses citation chains to discover related work. For applied topics, it searches the web for documentation, blog posts, and code repositories. For most topics, it uses both channels and cross-references findings.\n\nSearch queries are diversified automatically. Rather than running the same query multiple times, the researcher generates 2-4 varied queries that approach the topic from different angles. This catches papers that use different terminology for the same concept and surfaces sources that a single query would miss.\n\n## Source evaluation\n\nNot every search result is worth reading in full. The researcher evaluates results by scanning abstracts and summaries first, then selects the most relevant and authoritative sources for deep reading. It considers publication venue, citation count, recency, and topical relevance when prioritizing sources.\n\n## Extraction\n\nWhen reading a source in depth, the researcher extracts structured data: the main claims and their supporting evidence, methodology details, experimental results, stated limitations, and connections to other work. Each extracted item is tagged with its source location for traceability.\n\n## Used by\n\nThe researcher agent is used by the `/deepresearch`, `/lit`, `/review`, `/audit`, `/replicate`, `/compare`, and `/draft` workflows. It is the most frequently invoked agent in the system. You do not invoke it directly -- it is dispatched automatically by the workflow orchestrator.","src/content/docs/agents/researcher.md","f659d33d6179f4a6",{"html":107,"metadata":108},"\u003Cp>The researcher is the primary information-gathering agent in Feynman. It searches academic databases and the web, reads papers and articles, extracts key findings, and organizes source material for other agents to synthesize. Most workflows start with the researcher.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The researcher agent handles the entire source discovery and extraction pipeline. It formulates search queries based on your topic, evaluates results for relevance, reads full documents, and extracts structured information including claims, methodology, results, and limitations.\u003C/p>\n\u003Cp>When multiple researcher agents are spawned in parallel (which is the default for deep research and literature review), each agent tackles a different angle of the topic. One might search for foundational papers while another looks for recent work that challenges the established view. This parallel approach produces broader coverage than a single sequential search.\u003C/p>\n\u003Ch2 id=\"search-strategy\">Search strategy\u003C/h2>\n\u003Cp>The researcher uses a multi-source search strategy. For academic topics, it queries AlphaXiv for papers and uses citation chains to discover related work. For applied topics, it searches the web for documentation, blog posts, and code repositories. For most topics, it uses both channels and cross-references findings.\u003C/p>\n\u003Cp>Search queries are diversified automatically. Rather than running the same query multiple times, the researcher generates 2-4 varied queries that approach the topic from different angles. This catches papers that use different terminology for the same concept and surfaces sources that a single query would miss.\u003C/p>\n\u003Ch2 id=\"source-evaluation\">Source evaluation\u003C/h2>\n\u003Cp>Not every search result is worth reading in full. The researcher evaluates results by scanning abstracts and summaries first, then selects the most relevant and authoritative sources for deep reading. It considers publication venue, citation count, recency, and topical relevance when prioritizing sources.\u003C/p>\n\u003Ch2 id=\"extraction\">Extraction\u003C/h2>\n\u003Cp>When reading a source in depth, the researcher extracts structured data: the main claims and their supporting evidence, methodology details, experimental results, stated limitations, and connections to other work. Each extracted item is tagged with its source location for traceability.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The researcher agent is used by the \u003Ccode>/deepresearch\u003C/code>, \u003Ccode>/lit\u003C/code>, \u003Ccode>/review\u003C/code>, \u003Ccode>/audit\u003C/code>, \u003Ccode>/replicate\u003C/code>, \u003Ccode>/compare\u003C/code>, and \u003Ccode>/draft\u003C/code> workflows. It is the most frequently invoked agent in the system. You do not invoke it directly — it is dispatched automatically by the workflow orchestrator.\u003C/p>",{"headings":109,"localImagePaths":121,"remoteImagePaths":122,"frontmatter":123,"imagePaths":124},[110,111,114,117,120],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":112,"text":113},"search-strategy","Search strategy",{"depth":26,"slug":115,"text":116},"source-evaluation","Source evaluation",{"depth":26,"slug":118,"text":119},"extraction","Extraction",{"depth":26,"slug":39,"text":40},[],[],{"title":100,"description":101,"section":16,"order":102},[],"agents/researcher.md","tools/alphaxiv",{"id":126,"data":128,"body":132,"filePath":133,"digest":134,"rendered":135,"legacyId":158},{"title":129,"description":130,"section":131,"order":102},"AlphaXiv","Search and retrieve academic papers through the AlphaXiv integration.","Tools","AlphaXiv is the primary academic paper search and retrieval tool in Feynman. It provides access to a vast corpus of research papers, discussion threads, citation metadata, and full-text PDFs. The researcher agent uses AlphaXiv as its primary source for academic content.\n\n## Authentication\n\nAlphaXiv requires authentication. Set it up during initial setup or at any time:\n\n```bash\nfeynman alpha login\n```\n\nCheck your authentication status:\n\n```bash\nfeynman alpha status\n```\n\nYou can also manage AlphaXiv auth from inside the REPL with `/alpha-login`, `/alpha-status`, and `/alpha-logout`.\n\n## What it provides\n\nAlphaXiv gives Feynman access to several capabilities that power the research workflows:\n\n- **Paper search** -- Find papers by topic, author, keyword, or arXiv ID\n- **Full-text retrieval** -- Download and parse complete PDFs for in-depth reading\n- **Citation metadata** -- Access citation counts, references, and citation chains\n- **Discussion threads** -- Read community discussions and annotations on papers\n- **Related papers** -- Discover connected work through citation graphs and recommendations\n\n## How it is used\n\nYou do not invoke AlphaXiv directly in most cases. The researcher agent uses it automatically during workflows like deep research, literature review, and peer review. When you provide an arXiv ID (like `arxiv:2401.12345`), Feynman fetches the paper through AlphaXiv.\n\nAlphaXiv search is especially powerful when combined with citation chaining. The researcher agent can follow references from a relevant paper to discover foundational work, then follow forward citations to find papers that built on it. This produces a much more complete picture than keyword search alone.\n\n## Configuration\n\nAlphaXiv configuration is managed through the CLI commands listed above. Authentication tokens are stored in `~/.feynman/auth/` and persist across sessions. No additional configuration is needed beyond logging in.\n\n## Without AlphaXiv\n\nIf you choose not to authenticate with AlphaXiv, Feynman still functions but with reduced academic search capabilities. It falls back to web search for finding papers, which works for well-known work but misses the citation metadata, discussion threads, and full-text access that AlphaXiv provides. For serious research workflows, AlphaXiv authentication is strongly recommended.","src/content/docs/tools/alphaxiv.md","be316ef53d85512d",{"html":136,"metadata":137},"\u003Cp>AlphaXiv is the primary academic paper search and retrieval tool in Feynman. It provides access to a vast corpus of research papers, discussion threads, citation metadata, and full-text PDFs. The researcher agent uses AlphaXiv as its primary source for academic content.\u003C/p>\n\u003Ch2 id=\"authentication\">Authentication\u003C/h2>\n\u003Cp>AlphaXiv requires authentication. Set it up during initial setup or at any time:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> login\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Check your authentication status:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also manage AlphaXiv auth from inside the REPL with \u003Ccode>/alpha-login\u003C/code>, \u003Ccode>/alpha-status\u003C/code>, and \u003Ccode>/alpha-logout\u003C/code>.\u003C/p>\n\u003Ch2 id=\"what-it-provides\">What it provides\u003C/h2>\n\u003Cp>AlphaXiv gives Feynman access to several capabilities that power the research workflows:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Paper search\u003C/strong> — Find papers by topic, author, keyword, or arXiv ID\u003C/li>\n\u003Cli>\u003Cstrong>Full-text retrieval\u003C/strong> — Download and parse complete PDFs for in-depth reading\u003C/li>\n\u003Cli>\u003Cstrong>Citation metadata\u003C/strong> — Access citation counts, references, and citation chains\u003C/li>\n\u003Cli>\u003Cstrong>Discussion threads\u003C/strong> — Read community discussions and annotations on papers\u003C/li>\n\u003Cli>\u003Cstrong>Related papers\u003C/strong> — Discover connected work through citation graphs and recommendations\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"how-it-is-used\">How it is used\u003C/h2>\n\u003Cp>You do not invoke AlphaXiv directly in most cases. The researcher agent uses it automatically during workflows like deep research, literature review, and peer review. When you provide an arXiv ID (like \u003Ccode>arxiv:2401.12345\u003C/code>), Feynman fetches the paper through AlphaXiv.\u003C/p>\n\u003Cp>AlphaXiv search is especially powerful when combined with citation chaining. The researcher agent can follow references from a relevant paper to discover foundational work, then follow forward citations to find papers that built on it. This produces a much more complete picture than keyword search alone.\u003C/p>\n\u003Ch2 id=\"configuration\">Configuration\u003C/h2>\n\u003Cp>AlphaXiv configuration is managed through the CLI commands listed above. Authentication tokens are stored in \u003Ccode>~/.feynman/auth/\u003C/code> and persist across sessions. No additional configuration is needed beyond logging in.\u003C/p>\n\u003Ch2 id=\"without-alphaxiv\">Without AlphaXiv\u003C/h2>\n\u003Cp>If you choose not to authenticate with AlphaXiv, Feynman still functions but with reduced academic search capabilities. It falls back to web search for finding papers, which works for well-known work but misses the citation metadata, discussion threads, and full-text access that AlphaXiv provides. For serious research workflows, AlphaXiv authentication is strongly recommended.\u003C/p>",{"headings":138,"localImagePaths":154,"remoteImagePaths":155,"frontmatter":156,"imagePaths":157},[139,142,145,148,151],{"depth":26,"slug":140,"text":141},"authentication","Authentication",{"depth":26,"slug":143,"text":144},"what-it-provides","What it provides",{"depth":26,"slug":146,"text":147},"how-it-is-used","How it is used",{"depth":26,"slug":149,"text":150},"configuration","Configuration",{"depth":26,"slug":152,"text":153},"without-alphaxiv","Without AlphaXiv",[],[],{"title":129,"description":130,"section":131,"order":102},[],"tools/alphaxiv.md","getting-started/installation",{"id":159,"data":161,"body":165,"filePath":166,"digest":167,"rendered":168,"legacyId":191},{"title":162,"description":163,"section":164,"order":102},"Installation","Install Feynman on macOS, Linux, or Windows using the one-line installer or npm.","Getting Started","Feynman ships as a standalone binary for macOS and Linux, and as an npm package for all platforms including Windows. The recommended approach is the one-line installer, which downloads a prebuilt native binary with zero dependencies.\n\n## One-line installer (recommended)\n\nOn **macOS or Linux**, open a terminal and run:\n\n```bash\ncurl -fsSL https://feynman.is/install | bash\n```\n\nThe installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The binary is installed to `~/.feynman/bin` and added to your `PATH`.\n\nOn **Windows**, open PowerShell as Administrator and run:\n\n```powershell\nirm https://feynman.is/install.ps1 | iex\n```\n\nThis installs the native Windows binary and adds Feynman to your user `PATH`. You can re-run either installer at any time to update to the latest version.\n\n## npm / npx\n\nIf you already have Node.js 18+ installed, you can install Feynman globally via npm:\n\n```bash\nnpm install -g @companion-ai/feynman\n```\n\nOr run it directly without installing:\n\n```bash\nnpx @companion-ai/feynman\n```\n\nThe npm distribution bundles the same core runtime as the native installer but depends on Node.js being present on your system. The native installer is preferred because it ships a self-contained binary with faster startup.\n\n## Post-install setup\n\nAfter installation, run the guided setup wizard to configure your model provider and API keys:\n\n```bash\nfeynman setup\n```\n\nThis walks you through selecting a default model, authenticating with your provider, and optionally installing extra packages for features like web search and document preview. See the [Setup guide](/docs/getting-started/setup) for a detailed walkthrough.\n\n## Verifying the installation\n\nConfirm Feynman is installed and accessible:\n\n```bash\nfeynman --version\n```\n\nIf you see a version number, you are ready to go. Run `feynman doctor` at any time to diagnose configuration issues, missing dependencies, or authentication problems.\n\n## Local development\n\nFor contributing or running Feynman from source:\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","2d312017c55a3277",{"html":169,"metadata":170},"\u003Cp>Feynman ships as a standalone binary for macOS and Linux, and as an npm package for all platforms including Windows. The recommended approach is the one-line installer, which downloads a prebuilt native binary with zero dependencies.\u003C/p>\n\u003Ch2 id=\"one-line-installer-recommended\">One-line installer (recommended)\u003C/h2>\n\u003Cp>On \u003Cstrong>macOS or Linux\u003C/strong>, open a terminal and run:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">curl\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -fsSL\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://feynman.is/install\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\"> |\u003C/span>\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\"> bash\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The binary is installed to \u003Ccode>~/.feynman/bin\u003C/code> and added to your \u003Ccode>PATH\u003C/code>.\u003C/p>\n\u003Cp>On \u003Cstrong>Windows\u003C/strong>, open PowerShell as Administrator and run:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">irm https:\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">//\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">feynman.is\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">/\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">install.ps1 \u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">|\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> iex\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This installs the native Windows binary and adds Feynman to your user \u003Ccode>PATH\u003C/code>. You can re-run either installer at any time to update to the latest version.\u003C/p>\n\u003Ch2 id=\"npm--npx\">npm / npx\u003C/h2>\n\u003Cp>If you already have Node.js 18+ installed, you can install Feynman globally via npm:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">npm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -g\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Or run it directly without installing:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">npx\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The npm distribution bundles the same core runtime as the native installer but depends on Node.js being present on your system. The native installer is preferred because it ships a self-contained binary with faster startup.\u003C/p>\n\u003Ch2 id=\"post-install-setup\">Post-install setup\u003C/h2>\n\u003Cp>After installation, run the guided setup wizard to configure your model provider and API keys:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> setup\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This walks you through selecting a default model, authenticating with your provider, and optionally installing extra packages for features like web search and document preview. See the \u003Ca href=\"/docs/getting-started/setup\">Setup guide\u003C/a> for a detailed walkthrough.\u003C/p>\n\u003Ch2 id=\"verifying-the-installation\">Verifying the installation\u003C/h2>\n\u003Cp>Confirm Feynman is installed and accessible:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --version\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>If you see a version number, you are ready to go. Run \u003Ccode>feynman doctor\u003C/code> at any time to diagnose configuration issues, missing dependencies, or authentication problems.\u003C/p>\n\u003Ch2 id=\"local-development\">Local development\u003C/h2>\n\u003Cp>For contributing or running Feynman from source:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">git\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> clone\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://github.com/getcompanion-ai/feynman.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">cd\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> feynman\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">npm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">npm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> run\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> start\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":171,"localImagePaths":187,"remoteImagePaths":188,"frontmatter":189,"imagePaths":190},[172,175,178,181,184],{"depth":26,"slug":173,"text":174},"one-line-installer-recommended","One-line installer (recommended)",{"depth":26,"slug":176,"text":177},"npm--npx","npm / npx",{"depth":26,"slug":179,"text":180},"post-install-setup","Post-install setup",{"depth":26,"slug":182,"text":183},"verifying-the-installation","Verifying the installation",{"depth":26,"slug":185,"text":186},"local-development","Local development",[],[],{"title":162,"description":163,"section":164,"order":102},[],"getting-started/installation.md","getting-started/configuration",{"id":192,"data":194,"body":196,"filePath":197,"digest":198,"rendered":199,"legacyId":225},{"title":150,"description":195,"section":164,"order":76},"Understand Feynman's configuration files and environment variables.","Feynman stores all configuration and state under `~/.feynman/`. This directory is created on first run and contains settings, authentication tokens, session history, and installed packages.\n\n## Directory structure\n\n```\n~/.feynman/\n├── settings.json # Core configuration\n├── web-search.json # Web search routing config\n├── auth/ # OAuth tokens and API keys\n├── sessions/ # Persisted conversation history\n├── packages/ # Installed optional packages\n└── bin/ # Binary (when installed via the native installer)\n```\n\nThe `settings.json` file is the primary configuration file. It is created by `feynman setup` and can be edited manually. A typical configuration looks like:\n\n```json\n{\n \"defaultModel\": \"anthropic:claude-sonnet-4-20250514\",\n \"thinkingLevel\": \"medium\"\n}\n```\n\n## Model configuration\n\nThe `defaultModel` field sets which model is used when you launch Feynman without the `--model` flag. The format is `provider:model-name`. You can change it via the CLI:\n\n```bash\nfeynman model set anthropic:claude-opus-4-20250514\n```\n\nTo see all models you have configured:\n\n```bash\nfeynman model list\n```\n\n## Thinking levels\n\nThe `thinkingLevel` field controls how much reasoning the model does before responding. Available levels are `off`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Higher levels produce more thorough analysis at the cost of latency and token usage. You can override per-session:\n\n```bash\nfeynman --thinking high\n```\n\n## Environment variables\n\nFeynman respects the following environment variables, which take precedence over `settings.json`:\n\n| Variable | Description |\n| --- | --- |\n| `FEYNMAN_MODEL` | Override the default model |\n| `FEYNMAN_HOME` | Override the config directory (default: `~/.feynman`) |\n| `FEYNMAN_THINKING` | Override the thinking level |\n| `ANTHROPIC_API_KEY` | Anthropic API key |\n| `OPENAI_API_KEY` | OpenAI API key |\n| `GOOGLE_API_KEY` | Google AI API key |\n| `TAVILY_API_KEY` | Tavily web search API key |\n| `SERPER_API_KEY` | Serper web search API key |\n\n## Session storage\n\nEach conversation is persisted as a JSON file in `~/.feynman/sessions/`. To start a fresh session:\n\n```bash\nfeynman --new-session\n```\n\nTo point sessions at a different directory (useful for per-project session isolation):\n\n```bash\nfeynman --session-dir ~/myproject/.feynman/sessions\n```\n\n## Diagnostics\n\nRun `feynman doctor` to verify your configuration is valid, check authentication status for all configured providers, and detect missing optional dependencies. The doctor command outputs a checklist showing what is working and what needs attention.","src/content/docs/getting-started/configuration.md","372ab6fd2480315d",{"html":200,"metadata":201},"\u003Cp>Feynman stores all configuration and state under \u003Ccode>~/.feynman/\u003C/code>. This directory is created on first run and contains settings, authentication tokens, session history, and installed packages.\u003C/p>\n\u003Ch2 id=\"directory-structure\">Directory structure\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>~/.feynman/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── settings.json # Core configuration\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── web-search.json # Web search routing config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── auth/ # OAuth tokens and API keys\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── sessions/ # Persisted conversation history\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── packages/ # Installed optional packages\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>└── bin/ # Binary (when installed via the native installer)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The \u003Ccode>settings.json\u003C/code> file is the primary configuration file. It is created by \u003Ccode>feynman setup\u003C/code> and can be edited manually. A typical configuration looks like:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">defaultModel\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">anthropic:claude-sonnet-4-20250514\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">thinkingLevel\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">medium\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"model-configuration\">Model configuration\u003C/h2>\n\u003Cp>The \u003Ccode>defaultModel\u003C/code> field sets which model is used when you launch Feynman without the \u003Ccode>--model\u003C/code> flag. The format is \u003Ccode>provider:model-name\u003C/code>. You can change it via the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> model\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> set\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> anthropic:claude-opus-4-20250514\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>To see all models you have configured:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> model\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> list\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"thinking-levels\">Thinking levels\u003C/h2>\n\u003Cp>The \u003Ccode>thinkingLevel\u003C/code> field controls how much reasoning the model does before responding. Available levels are \u003Ccode>off\u003C/code>, \u003Ccode>minimal\u003C/code>, \u003Ccode>low\u003C/code>, \u003Ccode>medium\u003C/code>, \u003Ccode>high\u003C/code>, and \u003Ccode>xhigh\u003C/code>. Higher levels produce more thorough analysis at the cost of latency and token usage. You can override per-session:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --thinking\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> high\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"environment-variables\">Environment variables\u003C/h2>\n\u003Cp>Feynman respects the following environment variables, which take precedence over \u003Ccode>settings.json\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Variable\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_MODEL\u003C/code>\u003C/td>\u003Ctd>Override the default model\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_HOME\u003C/code>\u003C/td>\u003Ctd>Override the config directory (default: \u003Ccode>~/.feynman\u003C/code>)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_THINKING\u003C/code>\u003C/td>\u003Ctd>Override the thinking level\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>ANTHROPIC_API_KEY\u003C/code>\u003C/td>\u003Ctd>Anthropic API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>OPENAI_API_KEY\u003C/code>\u003C/td>\u003Ctd>OpenAI API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>GOOGLE_API_KEY\u003C/code>\u003C/td>\u003Ctd>Google AI API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>TAVILY_API_KEY\u003C/code>\u003C/td>\u003Ctd>Tavily web search API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>SERPER_API_KEY\u003C/code>\u003C/td>\u003Ctd>Serper web search API key\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"session-storage\">Session storage\u003C/h2>\n\u003Cp>Each conversation is persisted as a JSON file in \u003Ccode>~/.feynman/sessions/\u003C/code>. To start a fresh session:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --new-session\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>To point sessions at a different directory (useful for per-project session isolation):\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --session-dir\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> ~/myproject/.feynman/sessions\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"diagnostics\">Diagnostics\u003C/h2>\n\u003Cp>Run \u003Ccode>feynman doctor\u003C/code> to verify your configuration is valid, check authentication status for all configured providers, and detect missing optional dependencies. The doctor command outputs a checklist showing what is working and what needs attention.\u003C/p>",{"headings":202,"localImagePaths":221,"remoteImagePaths":222,"frontmatter":223,"imagePaths":224},[203,206,209,212,215,218],{"depth":26,"slug":204,"text":205},"directory-structure","Directory structure",{"depth":26,"slug":207,"text":208},"model-configuration","Model configuration",{"depth":26,"slug":210,"text":211},"thinking-levels","Thinking levels",{"depth":26,"slug":213,"text":214},"environment-variables","Environment variables",{"depth":26,"slug":216,"text":217},"session-storage","Session storage",{"depth":26,"slug":219,"text":220},"diagnostics","Diagnostics",[],[],{"title":150,"description":195,"section":164,"order":76},[],"getting-started/configuration.md","getting-started/quickstart",{"id":226,"data":228,"body":231,"filePath":232,"digest":233,"rendered":234,"legacyId":257},{"title":229,"description":230,"section":164,"order":26},"Quick Start","Get up and running with Feynman in under five minutes.","This guide assumes you have already [installed Feynman](/docs/getting-started/installation) and run `feynman setup`. If not, start there first.\n\n## Launch the REPL\n\nStart an interactive session by running:\n\n```bash\nfeynman\n```\n\nYou are dropped into a conversational REPL where you can ask research questions, run workflows, and interact with agents in natural language. Type your question and press Enter.\n\n## Run a one-shot prompt\n\nIf you want a quick answer without entering the REPL, use the `--prompt` flag:\n\n```bash\nfeynman --prompt \"Summarize the key findings of Attention Is All You Need\"\n```\n\nFeynman processes the prompt, prints the response, and exits. This is useful for scripting or piping output into other tools.\n\n## Start a deep research session\n\nDeep research is the flagship workflow. It dispatches multiple agents to search, read, cross-reference, and synthesize information from academic papers and the web:\n\n```bash\nfeynman\n> /deepresearch What are the current approaches to mechanistic interpretability in LLMs?\n```\n\nThe agents collaborate to produce a structured research report with citations, key findings, and open questions. The full report is saved to your session directory for later reference.\n\n## Work with files\n\nFeynman can read and write files in your working directory. Point it at a paper or codebase for targeted analysis:\n\n```bash\nfeynman --cwd ~/papers\n> /review arxiv:2301.07041\n```\n\nYou can also ask Feynman to draft documents, audit code, or compare multiple sources by referencing local files directly in your prompts.\n\n## Explore slash commands\n\nType `/help` inside the REPL to see all available slash commands. Each command maps to a workflow or utility, such as `/deepresearch`, `/review`, `/draft`, `/watch`, and more. You can also run any workflow directly from the CLI:\n\n```bash\nfeynman deepresearch \"transformer architectures for protein folding\"\n```\n\nSee the [Slash Commands reference](/docs/reference/slash-commands) for the complete list.","src/content/docs/getting-started/quickstart.md","1b6feb1130945a05",{"html":235,"metadata":236},"\u003Cp>This guide assumes you have already \u003Ca href=\"/docs/getting-started/installation\">installed Feynman\u003C/a> and run \u003Ccode>feynman setup\u003C/code>. If not, start there first.\u003C/p>\n\u003Ch2 id=\"launch-the-repl\">Launch the REPL\u003C/h2>\n\u003Cp>Start an interactive session by running:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You are dropped into a conversational REPL where you can ask research questions, run workflows, and interact with agents in natural language. Type your question and press Enter.\u003C/p>\n\u003Ch2 id=\"run-a-one-shot-prompt\">Run a one-shot prompt\u003C/h2>\n\u003Cp>If you want a quick answer without entering the REPL, use the \u003Ccode>--prompt\u003C/code> flag:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --prompt\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Summarize the key findings of Attention Is All You Need\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Feynman processes the prompt, prints the response, and exits. This is useful for scripting or piping output into other tools.\u003C/p>\n\u003Ch2 id=\"start-a-deep-research-session\">Start a deep research session\u003C/h2>\n\u003Cp>Deep research is the flagship workflow. It dispatches multiple agents to search, read, cross-reference, and synthesize information from academic papers and the web:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">>\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> /deepresearch What are the current approaches to mechanistic interpretability in LLMs\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">?\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The agents collaborate to produce a structured research report with citations, key findings, and open questions. The full report is saved to your session directory for later reference.\u003C/p>\n\u003Ch2 id=\"work-with-files\">Work with files\u003C/h2>\n\u003Cp>Feynman can read and write files in your working directory. Point it at a paper or codebase for targeted analysis:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --cwd\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> ~/papers\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">>\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> /review arxiv:2301.07041\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also ask Feynman to draft documents, audit code, or compare multiple sources by referencing local files directly in your prompts.\u003C/p>\n\u003Ch2 id=\"explore-slash-commands\">Explore slash commands\u003C/h2>\n\u003Cp>Type \u003Ccode>/help\u003C/code> inside the REPL to see all available slash commands. Each command maps to a workflow or utility, such as \u003Ccode>/deepresearch\u003C/code>, \u003Ccode>/review\u003C/code>, \u003Ccode>/draft\u003C/code>, \u003Ccode>/watch\u003C/code>, and more. You can also run any workflow directly from the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">transformer architectures for protein folding\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>See the \u003Ca href=\"/docs/reference/slash-commands\">Slash Commands reference\u003C/a> for the complete list.\u003C/p>",{"headings":237,"localImagePaths":253,"remoteImagePaths":254,"frontmatter":255,"imagePaths":256},[238,241,244,247,250],{"depth":26,"slug":239,"text":240},"launch-the-repl","Launch the REPL",{"depth":26,"slug":242,"text":243},"run-a-one-shot-prompt","Run a one-shot prompt",{"depth":26,"slug":245,"text":246},"start-a-deep-research-session","Start a deep research session",{"depth":26,"slug":248,"text":249},"work-with-files","Work with files",{"depth":26,"slug":251,"text":252},"explore-slash-commands","Explore slash commands",[],[],{"title":229,"description":230,"section":164,"order":26},[],"getting-started/quickstart.md","tools/preview",{"id":258,"data":260,"body":263,"filePath":264,"digest":265,"rendered":266,"legacyId":289},{"title":261,"description":262,"section":131,"order":76},"Preview","Preview generated research artifacts as rendered HTML or PDF.","The preview tool renders generated artifacts as polished HTML or PDF documents and opens them in your browser or PDF viewer. This is particularly useful for research briefs, paper drafts, and any document that contains LaTeX math, tables, or complex formatting that does not render well in a terminal.\n\n## Usage\n\nInside the REPL, preview the most recent artifact:\n\n```\n/preview\n```\n\nFeynman suggests previewing automatically when you generate artifacts that benefit from rendered output. You can also preview a specific file:\n\n```\n/preview outputs/scaling-laws-brief.md\n```\n\n## Requirements\n\nPreview requires `pandoc` for Markdown-to-HTML and Markdown-to-PDF rendering. Install the preview dependencies with:\n\n```bash\nfeynman --setup-preview\n```\n\nOn macOS with Homebrew, the setup command attempts to install pandoc automatically. On Linux, it checks for pandoc in your package manager. If the automatic install does not work, install pandoc manually from [pandoc.org](https://pandoc.org/installing.html) and rerun `feynman --setup-preview` to verify.\n\n## Supported formats\n\nThe preview tool handles three output formats:\n\n- **Markdown** -- Rendered as HTML with full LaTeX math support via KaTeX, syntax-highlighted code blocks, and clean typography\n- **HTML** -- Opened directly in your default browser with no conversion step\n- **PDF** -- Generated via pandoc with LaTeX rendering, suitable for sharing or printing\n\n## How it works\n\nThe `pi-markdown-preview` package handles the rendering pipeline. For Markdown files, it converts to HTML with a clean stylesheet, proper code highlighting, and rendered math equations. The preview opens in your default browser as a local file.\n\nFor documents with heavy math notation (common in research drafts), the preview ensures all LaTeX expressions render correctly. Inline math (`$...$`) and display math (`$$...$$`) are both supported. Tables, citation lists, and nested blockquotes all render with proper formatting.\n\n## Customization\n\nThe preview stylesheet is designed for research documents and includes styles for proper heading hierarchy, code blocks with syntax highlighting, tables with clean borders, math equations (inline and display), citation formatting, and blockquotes. The stylesheet is bundled with the package and does not require any configuration.","src/content/docs/tools/preview.md","aebd652dc47e334e",{"html":267,"metadata":268},"\u003Cp>The preview tool renders generated artifacts as polished HTML or PDF documents and opens them in your browser or PDF viewer. This is particularly useful for research briefs, paper drafts, and any document that contains LaTeX math, tables, or complex formatting that does not render well in a terminal.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL, preview the most recent artifact:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Feynman suggests previewing automatically when you generate artifacts that benefit from rendered output. You can also preview a specific file:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/preview outputs/scaling-laws-brief.md\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"requirements\">Requirements\u003C/h2>\n\u003Cp>Preview requires \u003Ccode>pandoc\u003C/code> for Markdown-to-HTML and Markdown-to-PDF rendering. Install the preview dependencies with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --setup-preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>On macOS with Homebrew, the setup command attempts to install pandoc automatically. On Linux, it checks for pandoc in your package manager. If the automatic install does not work, install pandoc manually from \u003Ca href=\"https://pandoc.org/installing.html\">pandoc.org\u003C/a> and rerun \u003Ccode>feynman --setup-preview\u003C/code> to verify.\u003C/p>\n\u003Ch2 id=\"supported-formats\">Supported formats\u003C/h2>\n\u003Cp>The preview tool handles three output formats:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Markdown\u003C/strong> — Rendered as HTML with full LaTeX math support via KaTeX, syntax-highlighted code blocks, and clean typography\u003C/li>\n\u003Cli>\u003Cstrong>HTML\u003C/strong> — Opened directly in your default browser with no conversion step\u003C/li>\n\u003Cli>\u003Cstrong>PDF\u003C/strong> — Generated via pandoc with LaTeX rendering, suitable for sharing or printing\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The \u003Ccode>pi-markdown-preview\u003C/code> package handles the rendering pipeline. For Markdown files, it converts to HTML with a clean stylesheet, proper code highlighting, and rendered math equations. The preview opens in your default browser as a local file.\u003C/p>\n\u003Cp>For documents with heavy math notation (common in research drafts), the preview ensures all LaTeX expressions render correctly. Inline math (\u003Ccode>$...$\u003C/code>) and display math (\u003Ccode>$$...$$\u003C/code>) are both supported. Tables, citation lists, and nested blockquotes all render with proper formatting.\u003C/p>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>The preview stylesheet is designed for research documents and includes styles for proper heading hierarchy, code blocks with syntax highlighting, tables with clean borders, math equations (inline and display), citation formatting, and blockquotes. The stylesheet is bundled with the package and does not require any configuration.\u003C/p>",{"headings":269,"localImagePaths":285,"remoteImagePaths":286,"frontmatter":287,"imagePaths":288},[270,273,276,279,282],{"depth":26,"slug":271,"text":272},"usage","Usage",{"depth":26,"slug":274,"text":275},"requirements","Requirements",{"depth":26,"slug":277,"text":278},"supported-formats","Supported formats",{"depth":26,"slug":280,"text":281},"how-it-works","How it works",{"depth":26,"slug":283,"text":284},"customization","Customization",[],[],{"title":261,"description":262,"section":131,"order":76},[],"tools/preview.md","getting-started/setup",{"id":290,"data":292,"body":295,"filePath":296,"digest":297,"rendered":298,"legacyId":321},{"title":293,"description":294,"section":164,"order":17},"Setup","Walk through the guided setup wizard to configure Feynman.","The `feynman setup` wizard configures your model provider, API keys, and optional packages. It runs automatically on first launch, but you can re-run it at any time to change your configuration.\n\n## Running setup\n\n```bash\nfeynman setup\n```\n\nThe wizard walks you through three stages: model configuration, authentication, and optional package installation.\n\n## Stage 1: Model selection\n\nFeynman supports multiple model providers. The setup wizard presents a list of available providers and models. Select your preferred default model using the arrow keys:\n\n```\n? Select your default model:\n anthropic:claude-sonnet-4-20250514\n> anthropic:claude-opus-4-20250514\n openai:gpt-4o\n openai:o3\n google:gemini-2.5-pro\n```\n\nThe model you choose here becomes the default for all sessions. You can override it per-session with the `--model` flag or change it later via `feynman model set \u003Cprovider:model>`.\n\n## Stage 2: Authentication\n\nDepending on your chosen provider, setup prompts you for an API key or walks you through OAuth login. For providers that support Pi OAuth (like Anthropic and OpenAI), Feynman opens a browser window to complete the sign-in flow. Your credentials are stored securely in the Pi auth storage at `~/.feynman/`.\n\nFor API key providers, you are prompted to paste your key directly:\n\n```\n? Enter your API key: sk-ant-...\n```\n\nKeys are encrypted at rest and never sent anywhere except the provider's API endpoint.\n\n## Stage 3: Optional packages\n\nFeynman's core ships with the essentials, but some features require additional packages. The wizard asks if you want to install optional presets:\n\n- **session-search** -- Enables searching prior session transcripts for past research\n- **memory** -- Automatic preference and correction memory across sessions\n- **generative-ui** -- Interactive HTML-style widgets for rich output\n\nYou can skip this step and install packages later with `feynman packages install \u003Cpreset>`.\n\n## Re-running setup\n\nConfiguration is stored in `~/.feynman/settings.json`. Running `feynman setup` again overwrites previous settings. If you only need to change a specific value, edit the config file directly or use the targeted commands like `feynman model set` or `feynman alpha login`.","src/content/docs/getting-started/setup.md","7a38dcb8196712db",{"html":299,"metadata":300},"\u003Cp>The \u003Ccode>feynman setup\u003C/code> wizard configures your model provider, API keys, and optional packages. It runs automatically on first launch, but you can re-run it at any time to change your configuration.\u003C/p>\n\u003Ch2 id=\"running-setup\">Running setup\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> setup\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The wizard walks you through three stages: model configuration, authentication, and optional package installation.\u003C/p>\n\u003Ch2 id=\"stage-1-model-selection\">Stage 1: Model selection\u003C/h2>\n\u003Cp>Feynman supports multiple model providers. The setup wizard presents a list of available providers and models. Select your preferred default model using the arrow keys:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>? Select your default model:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> anthropic:claude-sonnet-4-20250514\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>> anthropic:claude-opus-4-20250514\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> openai:gpt-4o\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> openai:o3\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> google:gemini-2.5-pro\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The model you choose here becomes the default for all sessions. You can override it per-session with the \u003Ccode>--model\u003C/code> flag or change it later via \u003Ccode>feynman model set <provider:model>\u003C/code>.\u003C/p>\n\u003Ch2 id=\"stage-2-authentication\">Stage 2: Authentication\u003C/h2>\n\u003Cp>Depending on your chosen provider, setup prompts you for an API key or walks you through OAuth login. For providers that support Pi OAuth (like Anthropic and OpenAI), Feynman opens a browser window to complete the sign-in flow. Your credentials are stored securely in the Pi auth storage at \u003Ccode>~/.feynman/\u003C/code>.\u003C/p>\n\u003Cp>For API key providers, you are prompted to paste your key directly:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>? Enter your API key: sk-ant-...\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Keys are encrypted at rest and never sent anywhere except the provider’s API endpoint.\u003C/p>\n\u003Ch2 id=\"stage-3-optional-packages\">Stage 3: Optional packages\u003C/h2>\n\u003Cp>Feynman’s core ships with the essentials, but some features require additional packages. The wizard asks if you want to install optional presets:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>session-search\u003C/strong> — Enables searching prior session transcripts for past research\u003C/li>\n\u003Cli>\u003Cstrong>memory\u003C/strong> — Automatic preference and correction memory across sessions\u003C/li>\n\u003Cli>\u003Cstrong>generative-ui\u003C/strong> — Interactive HTML-style widgets for rich output\u003C/li>\n\u003C/ul>\n\u003Cp>You can skip this step and install packages later with \u003Ccode>feynman packages install <preset>\u003C/code>.\u003C/p>\n\u003Ch2 id=\"re-running-setup\">Re-running setup\u003C/h2>\n\u003Cp>Configuration is stored in \u003Ccode>~/.feynman/settings.json\u003C/code>. Running \u003Ccode>feynman setup\u003C/code> again overwrites previous settings. If you only need to change a specific value, edit the config file directly or use the targeted commands like \u003Ccode>feynman model set\u003C/code> or \u003Ccode>feynman alpha login\u003C/code>.\u003C/p>",{"headings":301,"localImagePaths":317,"remoteImagePaths":318,"frontmatter":319,"imagePaths":320},[302,305,308,311,314],{"depth":26,"slug":303,"text":304},"running-setup","Running setup",{"depth":26,"slug":306,"text":307},"stage-1-model-selection","Stage 1: Model selection",{"depth":26,"slug":309,"text":310},"stage-2-authentication","Stage 2: Authentication",{"depth":26,"slug":312,"text":313},"stage-3-optional-packages","Stage 3: Optional packages",{"depth":26,"slug":315,"text":316},"re-running-setup","Re-running setup",[],[],{"title":293,"description":294,"section":164,"order":17},[],"getting-started/setup.md","tools/web-search",{"id":322,"data":324,"body":327,"filePath":328,"digest":329,"rendered":330,"legacyId":351},{"title":325,"description":326,"section":131,"order":26},"Web Search","Web search routing, configuration, and usage within Feynman.","Feynman's web search tool retrieves current information from the web during research workflows. It supports multiple simultaneous queries, domain filtering, recency filtering, and optional full-page content retrieval. The researcher agent uses web search alongside AlphaXiv to gather evidence from non-academic sources like blog posts, documentation, news, and code repositories.\n\n## Routing modes\n\nFeynman supports three web search backends. You can configure which one to use or let Feynman choose automatically:\n\n| Mode | Description |\n| --- | --- |\n| `auto` | Prefer Perplexity when configured, fall back to Gemini |\n| `perplexity` | Force Perplexity Sonar for all web searches |\n| `gemini` | Force Gemini grounding (default, zero-config) |\n\n## Default behavior\n\nThe default path is zero-config Gemini grounding via a signed-in Chromium profile. No API keys are required. This works on macOS and Linux where a Chromium-based browser is installed and signed in to a Google account.\n\nFor headless environments, CI pipelines, or servers without a browser, configure an explicit API key for either Perplexity or Gemini in `~/.feynman/web-search.json`.\n\n## Configuration\n\nCheck the current search configuration:\n\n```bash\nfeynman search status\n```\n\nEdit `~/.feynman/web-search.json` to configure the backend:\n\n```json\n{\n \"route\": \"auto\",\n \"perplexityApiKey\": \"pplx-...\",\n \"geminiApiKey\": \"AIza...\"\n}\n```\n\nSet `route` to `auto`, `perplexity`, or `gemini`. When using `auto`, Feynman prefers Perplexity if a key is present, then falls back to Gemini.\n\n## Search features\n\nThe web search tool supports several capabilities that the researcher agent leverages automatically:\n\n- **Multiple queries** -- Send 2-4 varied-angle queries simultaneously for broader coverage of a topic\n- **Domain filtering** -- Restrict results to specific domains like `arxiv.org`, `github.com`, or `nature.com`\n- **Recency filtering** -- Filter results by date, useful for fast-moving topics where only recent work matters\n- **Full content retrieval** -- Fetch complete page content for the most important results rather than relying on snippets\n\n## When it runs\n\nWeb search is used automatically by researcher agents during workflows. You do not need to invoke it directly. The researcher decides when to use web search versus paper search based on the topic and source availability. Academic topics lean toward AlphaXiv; engineering and applied topics lean toward web search.","src/content/docs/tools/web-search.md","98f96bb230fcf6c9",{"html":331,"metadata":332},"\u003Cp>Feynman’s web search tool retrieves current information from the web during research workflows. It supports multiple simultaneous queries, domain filtering, recency filtering, and optional full-page content retrieval. The researcher agent uses web search alongside AlphaXiv to gather evidence from non-academic sources like blog posts, documentation, news, and code repositories.\u003C/p>\n\u003Ch2 id=\"routing-modes\">Routing modes\u003C/h2>\n\u003Cp>Feynman supports three web search backends. You can configure which one to use or let Feynman choose automatically:\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 for all web searches\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>gemini\u003C/code>\u003C/td>\u003Ctd>Force Gemini grounding (default, zero-config)\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 grounding via a signed-in Chromium profile. No API keys are required. This works on macOS and Linux where a Chromium-based browser is installed and signed in to a Google account.\u003C/p>\n\u003Cp>For headless environments, CI pipelines, or servers without a browser, configure an explicit API key for either Perplexity or Gemini in \u003Ccode>~/.feynman/web-search.json\u003C/code>.\u003C/p>\n\u003Ch2 id=\"configuration\">Configuration\u003C/h2>\n\u003Cp>Check the current search configuration:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> search\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Edit \u003Ccode>~/.feynman/web-search.json\u003C/code> to configure the backend:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">route\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">auto\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">perplexityApiKey\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">pplx-...\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">geminiApiKey\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">AIza...\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Set \u003Ccode>route\u003C/code> to \u003Ccode>auto\u003C/code>, \u003Ccode>perplexity\u003C/code>, or \u003Ccode>gemini\u003C/code>. When using \u003Ccode>auto\u003C/code>, Feynman prefers Perplexity if a key is present, then falls back to Gemini.\u003C/p>\n\u003Ch2 id=\"search-features\">Search features\u003C/h2>\n\u003Cp>The web search tool supports several capabilities that the researcher agent leverages automatically:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple queries\u003C/strong> — Send 2-4 varied-angle queries simultaneously for broader coverage of a topic\u003C/li>\n\u003Cli>\u003Cstrong>Domain filtering\u003C/strong> — Restrict results to specific domains like \u003Ccode>arxiv.org\u003C/code>, \u003Ccode>github.com\u003C/code>, or \u003Ccode>nature.com\u003C/code>\u003C/li>\n\u003Cli>\u003Cstrong>Recency filtering\u003C/strong> — Filter results by date, useful for fast-moving topics where only recent work matters\u003C/li>\n\u003Cli>\u003Cstrong>Full content retrieval\u003C/strong> — Fetch complete page content for the most important results rather than relying on snippets\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-it-runs\">When it runs\u003C/h2>\n\u003Cp>Web search is used automatically by researcher agents during workflows. You do not need to invoke it directly. The researcher decides when to use web search versus paper search based on the topic and source availability. Academic topics lean toward AlphaXiv; engineering and applied topics lean toward web search.\u003C/p>",{"headings":333,"localImagePaths":347,"remoteImagePaths":348,"frontmatter":349,"imagePaths":350},[334,337,340,341,344],{"depth":26,"slug":335,"text":336},"routing-modes","Routing modes",{"depth":26,"slug":338,"text":339},"default-behavior","Default behavior",{"depth":26,"slug":149,"text":150},{"depth":26,"slug":342,"text":343},"search-features","Search features",{"depth":26,"slug":345,"text":346},"when-it-runs","When it runs",[],[],{"title":325,"description":326,"section":131,"order":26},[],"tools/web-search.md","reference/cli-commands",{"id":352,"data":354,"body":358,"filePath":359,"digest":360,"rendered":361,"legacyId":390},{"title":355,"description":356,"section":357,"order":102},"CLI Commands","Complete reference for all Feynman CLI commands and flags.","Reference","This page covers the dedicated Feynman CLI commands and flags. Workflow commands like `feynman deepresearch` are also documented in the [Slash Commands](/docs/reference/slash-commands) reference since they map directly to REPL slash commands.\n\n## Core commands\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 (model, auth, packages) |\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 for all sessions |\n\nThese commands manage your model provider configuration. The `model set` command updates `~/.feynman/settings.json` with the new default. The format is `provider:model-name`, for example `anthropic:claude-sonnet-4-20250514`.\n\n## AlphaXiv commands\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\nAlphaXiv authentication enables Feynman to search and retrieve papers, access discussion threads, and pull citation metadata. You can also manage AlphaXiv auth from inside the REPL with `/alpha-login`, `/alpha-status`, and `/alpha-logout`.\n\n## Package management\n\n| Command | Description |\n| --- | --- |\n| `feynman packages list` | List all available packages and their install status |\n| `feynman packages install \u003Cpreset>` | Install an optional package preset |\n| `feynman update [package]` | Update installed packages, or a specific package by name |\n\nUse `feynman packages list` to see which optional packages are available and which are already installed. The `all-extras` preset installs every optional package at once.\n\n## Utility commands\n\n| Command | Description |\n| --- | --- |\n| `feynman search status` | Show Pi web-access status and config path |\n\n## Workflow commands\n\nAll research workflow slash commands can also be invoked directly from the CLI:\n\n```bash\nfeynman deepresearch \"topic\"\nfeynman lit \"topic\"\nfeynman review artifact.md\nfeynman audit 2401.12345\nfeynman replicate \"claim\"\nfeynman compare \"topic\"\nfeynman draft \"topic\"\n```\n\nThese are equivalent to launching the REPL and typing the corresponding slash command.\n\n## Flags\n\n| Flag | Description |\n| --- | --- |\n| `--prompt \"\u003Ctext>\"` | Run one prompt and exit (one-shot mode) |\n| `--model \u003Cprovider:model>` | Force a specific model for this session |\n| `--thinking \u003Clevel>` | Set thinking level: `off`, `minimal`, `low`, `medium`, `high`, `xhigh` |\n| `--cwd \u003Cpath>` | Set the working directory for all file operations |\n| `--session-dir \u003Cpath>` | Set the session storage directory |\n| `--new-session` | Start a new persisted session |\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| `--doctor` | Alias for `feynman doctor` |\n| `--setup-preview` | Install preview dependencies (pandoc) |","src/content/docs/reference/cli-commands.md","8db9721dd1709c9c",{"html":362,"metadata":363},"\u003Cp>This page covers the dedicated Feynman CLI commands and flags. Workflow commands like \u003Ccode>feynman deepresearch\u003C/code> are also documented in the \u003Ca href=\"/docs/reference/slash-commands\">Slash Commands\u003C/a> reference since they map directly to REPL slash commands.\u003C/p>\n\u003Ch2 id=\"core-commands\">Core commands\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 (model, auth, packages)\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 for all sessions\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These commands manage your model provider configuration. The \u003Ccode>model set\u003C/code> command updates \u003Ccode>~/.feynman/settings.json\u003C/code> with the new default. The format is \u003Ccode>provider:model-name\u003C/code>, for example \u003Ccode>anthropic:claude-sonnet-4-20250514\u003C/code>.\u003C/p>\n\u003Ch2 id=\"alphaxiv-commands\">AlphaXiv commands\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\u003Cp>AlphaXiv authentication enables Feynman to search and retrieve papers, access discussion threads, and pull citation metadata. You can also manage AlphaXiv auth from inside the REPL with \u003Ccode>/alpha-login\u003C/code>, \u003Ccode>/alpha-status\u003C/code>, and \u003Ccode>/alpha-logout\u003C/code>.\u003C/p>\n\u003Ch2 id=\"package-management\">Package 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\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman packages list\u003C/code>\u003C/td>\u003Ctd>List all available packages and their install status\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman packages install <preset>\u003C/code>\u003C/td>\u003Ctd>Install an optional package preset\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman update [package]\u003C/code>\u003C/td>\u003Ctd>Update installed packages, or a specific package by name\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>Use \u003Ccode>feynman packages list\u003C/code> to see which optional packages are available and which are already installed. The \u003Ccode>all-extras\u003C/code> preset installs every optional package at once.\u003C/p>\n\u003Ch2 id=\"utility-commands\">Utility commands\u003C/h2>\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>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"workflow-commands\">Workflow commands\u003C/h2>\n\u003Cp>All research workflow slash commands can also be invoked directly from the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> artifact.md\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>These are equivalent to launching the REPL and typing the corresponding slash command.\u003C/p>\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 (one-shot mode)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--model <provider:model>\u003C/code>\u003C/td>\u003Ctd>Force a specific model for this session\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--thinking <level>\u003C/code>\u003C/td>\u003Ctd>Set thinking level: \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/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--cwd <path>\u003C/code>\u003C/td>\u003Ctd>Set the working directory for all file operations\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>--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>--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>Install preview dependencies (pandoc)\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":364,"localImagePaths":386,"remoteImagePaths":387,"frontmatter":388,"imagePaths":389},[365,368,371,374,377,380,383],{"depth":26,"slug":366,"text":367},"core-commands","Core commands",{"depth":26,"slug":369,"text":370},"model-management","Model management",{"depth":26,"slug":372,"text":373},"alphaxiv-commands","AlphaXiv commands",{"depth":26,"slug":375,"text":376},"package-management","Package management",{"depth":26,"slug":378,"text":379},"utility-commands","Utility commands",{"depth":26,"slug":381,"text":382},"workflow-commands","Workflow commands",{"depth":26,"slug":384,"text":385},"flags","Flags",[],[],{"title":355,"description":356,"section":357,"order":102},[],"reference/cli-commands.md","tools/session-search",{"id":391,"data":393,"body":396,"filePath":397,"digest":398,"rendered":399,"legacyId":417},{"title":394,"description":395,"section":131,"order":17},"Session Search","Search prior Feynman session transcripts to recall past research.","The session search tool recovers prior Feynman work from stored session transcripts. Every Feynman session is persisted to disk, and session search lets you find and reference past research, findings, and generated artifacts without starting over.\n\n## Installation\n\nSession search is an optional package. Install it with:\n\n```bash\nfeynman packages install session-search\n```\n\nOnce installed, the `/search` slash command and automatic session recall become available in all future sessions.\n\n## Usage\n\nInside the REPL, invoke session search directly:\n\n```\n/search transformer scaling laws\n```\n\nYou can also reference prior work naturally in conversation. Feynman invokes session search automatically when you mention previous research or ask to continue earlier work. For example, saying \"pick up where I left off on protein folding\" triggers a session search behind the scenes.\n\n## What it searches\n\nSession search indexes the full contents of your session history:\n\n- Full session transcripts including your prompts and Feynman's responses\n- Tool outputs and agent results from workflows like deep research and literature review\n- Generated artifacts such as drafts, reports, and comparison matrices\n- Metadata like timestamps, topics, and workflow types\n\nThe search uses both keyword matching and semantic similarity to find relevant past work. Results include the session ID, timestamp, and relevant excerpts so you can quickly identify which session contains the information you need.\n\n## When to use it\n\nSession search is valuable when you want to pick up a previous research thread without rerunning an expensive workflow, find specific findings or citations from a past deep research session, reference prior analysis in a new research context, or check what you have already investigated on a topic before launching a new round.\n\n## How it works\n\nThe `@kaiserlich-dev/pi-session-search` package provides the underlying search and indexing. Sessions are stored in `~/.feynman/sessions/` by default (configurable with `--session-dir`). The index is built incrementally as new sessions complete, so search stays fast even with hundreds of past sessions.","src/content/docs/tools/session-search.md","ffa683a7c4259fb3",{"html":400,"metadata":401},"\u003Cp>The session search tool recovers prior Feynman work from stored session transcripts. Every Feynman session is persisted to disk, and session search lets you find and reference past research, findings, and generated artifacts without starting over.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Cp>Session search is an optional package. Install it with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> session-search\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Once installed, the \u003Ccode>/search\u003C/code> slash command and automatic session recall become available in all future sessions.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL, invoke session search directly:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/search transformer scaling laws\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also reference prior work naturally in conversation. Feynman invokes session search automatically when you mention previous research or ask to continue earlier work. For example, saying “pick up where I left off on protein folding” triggers a session search behind the scenes.\u003C/p>\n\u003Ch2 id=\"what-it-searches\">What it searches\u003C/h2>\n\u003Cp>Session search indexes the full contents of your session history:\u003C/p>\n\u003Cul>\n\u003Cli>Full session transcripts including your prompts and Feynman’s responses\u003C/li>\n\u003Cli>Tool outputs and agent results from workflows like deep research and literature review\u003C/li>\n\u003Cli>Generated artifacts such as drafts, reports, and comparison matrices\u003C/li>\n\u003Cli>Metadata like timestamps, topics, and workflow types\u003C/li>\n\u003C/ul>\n\u003Cp>The search uses both keyword matching and semantic similarity to find relevant past work. Results include the session ID, timestamp, and relevant excerpts so you can quickly identify which session contains the information you need.\u003C/p>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Session search is valuable when you want to pick up a previous research thread without rerunning an expensive workflow, find specific findings or citations from a past deep research session, reference prior analysis in a new research context, or check what you have already investigated on a topic before launching a new round.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The \u003Ccode>@kaiserlich-dev/pi-session-search\u003C/code> package provides the underlying search and indexing. Sessions are stored in \u003Ccode>~/.feynman/sessions/\u003C/code> by default (configurable with \u003Ccode>--session-dir\u003C/code>). The index is built incrementally as new sessions complete, so search stays fast even with hundreds of past sessions.\u003C/p>",{"headings":402,"localImagePaths":413,"remoteImagePaths":414,"frontmatter":415,"imagePaths":416},[403,405,406,409,412],{"depth":26,"slug":404,"text":162},"installation",{"depth":26,"slug":271,"text":272},{"depth":26,"slug":407,"text":408},"what-it-searches","What it searches",{"depth":26,"slug":410,"text":411},"when-to-use-it","When to use it",{"depth":26,"slug":280,"text":281},[],[],{"title":394,"description":395,"section":131,"order":17},[],"tools/session-search.md","reference/package-stack",{"id":418,"data":420,"body":423,"filePath":424,"digest":425,"rendered":426,"legacyId":446},{"title":421,"description":422,"section":357,"order":17},"Package Stack","Core and optional Pi packages bundled with Feynman.","Feynman is built on the Pi runtime and uses curated Pi packages for its capabilities. Packages are managed through `feynman packages` commands and configured in `~/.feynman/settings.json`.\n\n## Core packages\n\nThese are installed by default with every Feynman installation. They provide the foundation for all research workflows.\n\n| Package | Purpose |\n| --- | --- |\n| `pi-subagents` | Parallel agent spawning for literature gathering and task decomposition. Powers the multi-agent workflows |\n| `pi-btw` | Fast side-thread `/btw` conversations without interrupting the main research run |\n| `pi-docparser` | Parse PDFs, Office documents, spreadsheets, and images for content extraction |\n| `pi-web-access` | Web browsing, GitHub access, PDF fetching, and media retrieval |\n| `pi-markdown-preview` | Render Markdown and LaTeX-heavy research documents as polished HTML/PDF |\n| `@walterra/pi-charts` | Generate charts and quantitative visualizations from data |\n| `pi-mermaid` | Render Mermaid diagrams in the terminal UI |\n| `@aliou/pi-processes` | Manage long-running experiments, background tasks, and log tailing |\n| `pi-zotero` | Integration with Zotero for citation library management |\n| `pi-schedule-prompt` | Schedule recurring and deferred research jobs. Powers the `/watch` workflow |\n| `@tmustier/pi-ralph-wiggum` | Long-running agent loops for iterative development. Powers `/autoresearch` |\n\nThese packages are updated together when you run `feynman update`. You do not need to install them individually.\n\n## Optional packages\n\nInstall on demand with `feynman packages install \u003Cpreset>`. These extend Feynman with capabilities that not every user needs.\n\n| Package | Preset | Purpose |\n| --- | --- | --- |\n| `pi-generative-ui` | `generative-ui` | Interactive HTML-style widgets for rich output |\n| `@kaiserlich-dev/pi-session-search` | `session-search` | Indexed session recall with summarize and resume UI. Powers `/search` |\n| `@samfp/pi-memory` | `memory` | Automatic preference and correction memory across sessions |\n\n## Installing and managing packages\n\nList all available packages and their install status:\n\n```bash\nfeynman packages list\n```\n\nInstall a specific optional preset:\n\n```bash\nfeynman packages install session-search\nfeynman packages install memory\nfeynman packages install generative-ui\n```\n\nInstall all optional packages at once:\n\n```bash\nfeynman packages install all-extras\n```\n\n## Updating packages\n\nUpdate all installed packages to their latest versions:\n\n```bash\nfeynman update\n```\n\nUpdate a specific package:\n\n```bash\nfeynman update pi-subagents\n```\n\nRunning `feynman update` without arguments updates everything. Pass a specific package name to update just that one. Updates are safe and preserve your configuration.","src/content/docs/reference/package-stack.md","44b57303b320cb13",{"html":427,"metadata":428},"\u003Cp>Feynman is built on the Pi runtime and uses curated Pi packages for its capabilities. Packages are managed through \u003Ccode>feynman packages\u003C/code> commands and configured in \u003Ccode>~/.feynman/settings.json\u003C/code>.\u003C/p>\n\u003Ch2 id=\"core-packages\">Core packages\u003C/h2>\n\u003Cp>These are installed by default with every Feynman installation. They provide the foundation for all research workflows.\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 agent spawning for literature gathering and task decomposition. Powers the multi-agent workflows\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 research run\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-docparser\u003C/code>\u003C/td>\u003Ctd>Parse PDFs, Office documents, spreadsheets, and images for content extraction\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-web-access\u003C/code>\u003C/td>\u003Ctd>Web browsing, GitHub access, PDF fetching, and media retrieval\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-markdown-preview\u003C/code>\u003C/td>\u003Ctd>Render Markdown and LaTeX-heavy research documents as polished HTML/PDF\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@walterra/pi-charts\u003C/code>\u003C/td>\u003Ctd>Generate charts and quantitative visualizations from data\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-mermaid\u003C/code>\u003C/td>\u003Ctd>Render Mermaid diagrams in the terminal UI\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@aliou/pi-processes\u003C/code>\u003C/td>\u003Ctd>Manage long-running experiments, background tasks, and log tailing\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-zotero\u003C/code>\u003C/td>\u003Ctd>Integration with Zotero for citation library management\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-schedule-prompt\u003C/code>\u003C/td>\u003Ctd>Schedule recurring and deferred research jobs. Powers the \u003Ccode>/watch\u003C/code> workflow\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@tmustier/pi-ralph-wiggum\u003C/code>\u003C/td>\u003Ctd>Long-running agent loops for iterative development. Powers \u003Ccode>/autoresearch\u003C/code>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These packages are updated together when you run \u003Ccode>feynman update\u003C/code>. You do not need to install them individually.\u003C/p>\n\u003Ch2 id=\"optional-packages\">Optional packages\u003C/h2>\n\u003Cp>Install on demand with \u003Ccode>feynman packages install <preset>\u003C/code>. These extend Feynman with capabilities that not every user needs.\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\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Package\u003C/th>\u003Cth>Preset\u003C/th>\u003Cth>Purpose\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>pi-generative-ui\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>generative-ui\u003C/code>\u003C/td>\u003Ctd>Interactive HTML-style widgets for rich output\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@kaiserlich-dev/pi-session-search\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>session-search\u003C/code>\u003C/td>\u003Ctd>Indexed session recall with summarize and resume UI. Powers \u003Ccode>/search\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@samfp/pi-memory\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>memory\u003C/code>\u003C/td>\u003Ctd>Automatic preference and correction memory across sessions\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"installing-and-managing-packages\">Installing and managing packages\u003C/h2>\n\u003Cp>List all available packages and their install status:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> list\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Install a specific optional preset:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> session-search\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> memory\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> generative-ui\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Install all optional packages at once:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> all-extras\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"updating-packages\">Updating packages\u003C/h2>\n\u003Cp>Update all installed packages to their latest versions:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> update\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Update a specific package:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> update\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> pi-subagents\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Running \u003Ccode>feynman update\u003C/code> without arguments updates everything. Pass a specific package name to update just that one. Updates are safe and preserve your configuration.\u003C/p>",{"headings":429,"localImagePaths":442,"remoteImagePaths":443,"frontmatter":444,"imagePaths":445},[430,433,436,439],{"depth":26,"slug":431,"text":432},"core-packages","Core packages",{"depth":26,"slug":434,"text":435},"optional-packages","Optional packages",{"depth":26,"slug":437,"text":438},"installing-and-managing-packages","Installing and managing packages",{"depth":26,"slug":440,"text":441},"updating-packages","Updating packages",[],[],{"title":421,"description":422,"section":357,"order":17},[],"reference/package-stack.md","reference/slash-commands",{"id":447,"data":449,"body":452,"filePath":453,"digest":454,"rendered":455,"legacyId":475},{"title":450,"description":451,"section":357,"order":26},"Slash Commands","Complete reference for REPL slash commands.","Slash commands are available inside the Feynman REPL. They map to research workflows, project management tools, and setup utilities. Type `/help` inside the REPL for the live command list, which may include additional commands from installed Pi packages.\n\n## Research workflows\n\n| Command | Description |\n| --- | --- |\n| `/deepresearch \u003Ctopic>` | Run a thorough, source-heavy investigation and produce a research brief with inline citations |\n| `/lit \u003Ctopic>` | Run a structured literature review with consensus, disagreements, and open questions |\n| `/review \u003Cartifact>` | Simulate a peer review with severity-graded feedback and inline annotations |\n| `/audit \u003Citem>` | Compare a paper's claims against its public codebase for mismatches and reproducibility risks |\n| `/replicate \u003Cpaper>` | Plan or execute a replication workflow for a paper, claim, or benchmark |\n| `/compare \u003Ctopic>` | Compare multiple sources and produce an agreement/disagreement matrix |\n| `/draft \u003Ctopic>` | Generate a paper-style draft from research findings |\n| `/autoresearch \u003Cidea>` | Start an autonomous experiment loop that iteratively optimizes toward a goal |\n| `/watch \u003Ctopic>` | Set up recurring research monitoring on a topic |\n\nThese are the primary commands you will use day-to-day. Each workflow dispatches one or more specialized agents (researcher, reviewer, writer, verifier) depending on the task.\n\n## Project and 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 work: running processes, scheduled follow-ups, and active watches |\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 new research project |\n| `/search` | Search prior session transcripts for past research and findings |\n| `/preview` | Preview the current artifact as rendered HTML or PDF |\n\nSession management commands help you organize ongoing work. The `/log` command is particularly useful at the end of a research session to capture what was accomplished and what remains.\n\n## Setup commands\n\n| Command | Description |\n| --- | --- |\n| `/alpha-login` | Sign in to alphaXiv from inside the REPL |\n| `/alpha-status` | Show alphaXiv authentication status |\n| `/alpha-logout` | Clear alphaXiv auth from inside the REPL |\n\nThese provide a convenient way to manage alphaXiv authentication without leaving the REPL.\n\n## Running workflows from the CLI\n\nAll research workflow slash commands can also be run directly from the command line:\n\n```bash\nfeynman deepresearch \"topic\"\nfeynman lit \"topic\"\nfeynman review artifact.md\nfeynman audit 2401.12345\nfeynman replicate \"claim\"\nfeynman compare \"topic\"\nfeynman draft \"topic\"\n```\n\nThis is equivalent to launching the REPL and typing the slash command. The CLI form is useful for scripting and automation.","src/content/docs/reference/slash-commands.md","a3165c1c42fb3f71",{"html":456,"metadata":457},"\u003Cp>Slash commands are available inside the Feynman REPL. They map to research workflows, project management tools, and setup utilities. Type \u003Ccode>/help\u003C/code> inside the REPL for the live command list, which may include additional commands from installed Pi packages.\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 and produce a research brief with inline citations\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/lit <topic>\u003C/code>\u003C/td>\u003Ctd>Run a structured literature review with consensus, disagreements, and open questions\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/review <artifact>\u003C/code>\u003C/td>\u003Ctd>Simulate a peer review with severity-graded feedback and inline annotations\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/audit <item>\u003C/code>\u003C/td>\u003Ctd>Compare a paper’s claims against its public codebase for mismatches 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 and produce an agreement/disagreement matrix\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/draft <topic>\u003C/code>\u003C/td>\u003Ctd>Generate a paper-style draft from research findings\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/autoresearch <idea>\u003C/code>\u003C/td>\u003Ctd>Start an autonomous experiment loop that iteratively optimizes toward a goal\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/watch <topic>\u003C/code>\u003C/td>\u003Ctd>Set up recurring research monitoring on a topic\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These are the primary commands you will use day-to-day. Each workflow dispatches one or more specialized agents (researcher, reviewer, writer, verifier) depending on the task.\u003C/p>\n\u003Ch2 id=\"project-and-session\">Project and 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\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 work: running processes, scheduled follow-ups, and active watches\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 \u003Ccode>AGENTS.md\u003C/code> and session-log folders for a new research project\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/search\u003C/code>\u003C/td>\u003Ctd>Search prior session transcripts for past research and findings\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/preview\u003C/code>\u003C/td>\u003Ctd>Preview the current artifact as rendered HTML or PDF\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>Session management commands help you organize ongoing work. The \u003Ccode>/log\u003C/code> command is particularly useful at the end of a research session to capture what was accomplished and what remains.\u003C/p>\n\u003Ch2 id=\"setup-commands\">Setup commands\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 the REPL\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 the REPL\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These provide a convenient way to manage alphaXiv authentication without leaving the REPL.\u003C/p>\n\u003Ch2 id=\"running-workflows-from-the-cli\">Running workflows from the CLI\u003C/h2>\n\u003Cp>All research workflow slash commands can also be run directly from the command line:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> artifact.md\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This is equivalent to launching the REPL and typing the slash command. The CLI form is useful for scripting and automation.\u003C/p>",{"headings":458,"localImagePaths":471,"remoteImagePaths":472,"frontmatter":473,"imagePaths":474},[459,462,465,468],{"depth":26,"slug":460,"text":461},"research-workflows","Research workflows",{"depth":26,"slug":463,"text":464},"project-and-session","Project and session",{"depth":26,"slug":466,"text":467},"setup-commands","Setup commands",{"depth":26,"slug":469,"text":470},"running-workflows-from-the-cli","Running workflows from the CLI",[],[],{"title":450,"description":451,"section":357,"order":26},[],"reference/slash-commands.md","workflows/audit",{"id":476,"data":478,"body":482,"filePath":483,"digest":484,"rendered":485,"legacyId":499},{"title":479,"description":480,"section":481,"order":76},"Code Audit","Compare a paper's claims against its public codebase for reproducibility.","Workflows","The code audit workflow compares a paper's claims against its public codebase to identify mismatches, undocumented deviations, and reproducibility risks. It bridges the gap between what a paper says and what the code actually does.\n\n## Usage\n\nFrom the REPL:\n\n```\n/audit arxiv:2401.12345\n```\n\n```\n/audit https://github.com/org/repo --paper arxiv:2401.12345\n```\n\nFrom the CLI:\n\n```bash\nfeynman audit 2401.12345\n```\n\nWhen given an arXiv ID, Feynman locates the associated code repository from the paper's links, Papers With Code, or GitHub search. You can also provide the repository URL directly.\n\n## How it works\n\nThe audit workflow operates in two passes. First, the researcher agent reads the paper and extracts all concrete claims: hyperparameters, architecture details, training procedures, dataset splits, evaluation metrics, and reported results. Each claim is tagged with its location in the paper for traceability.\n\nSecond, the verifier agent examines the codebase to find the corresponding implementation for each claim. It checks configuration files, training scripts, model definitions, and evaluation code to verify that the code matches the paper's description. When it finds a discrepancy -- a hyperparameter that differs, a training step that was described but not implemented, or an evaluation procedure that deviates from the paper -- it documents the mismatch with exact file paths and line numbers.\n\nThe audit also checks for common reproducibility issues like missing random seeds, non-deterministic operations without pinned versions, hardcoded paths, and absent environment specifications.\n\n## Output format\n\nThe audit report contains:\n\n- **Match Summary** -- Percentage of claims that match the code\n- **Confirmed Claims** -- Claims that are accurately reflected in the codebase\n- **Mismatches** -- Discrepancies between paper and code with evidence from both\n- **Missing Implementations** -- Claims in the paper with no corresponding code\n- **Reproducibility Risks** -- Issues like missing seeds, unpinned dependencies, or hardcoded paths\n\n## When to use it\n\nUse `/audit` when you are deciding whether to build on a paper's results, when replicating an experiment, or when reviewing a paper for a venue and want to verify its claims against the code. It is also useful for auditing your own papers before submission to catch inconsistencies between your writeup and implementation.","src/content/docs/workflows/audit.md","7d60cea54461fffa",{"html":486,"metadata":487},"\u003Cp>The code audit workflow compares a paper’s claims against its public codebase to identify mismatches, undocumented deviations, and reproducibility risks. It bridges the gap between what a paper says and what the code actually does.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit https://github.com/org/repo --paper arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>When given an arXiv ID, Feynman locates the associated code repository from the paper’s links, Papers With Code, or GitHub search. You can also provide the repository URL directly.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The audit workflow operates in two passes. First, the researcher agent reads the paper and extracts all concrete claims: hyperparameters, architecture details, training procedures, dataset splits, evaluation metrics, and reported results. Each claim is tagged with its location in the paper for traceability.\u003C/p>\n\u003Cp>Second, the verifier agent examines the codebase to find the corresponding implementation for each claim. It checks configuration files, training scripts, model definitions, and evaluation code to verify that the code matches the paper’s description. When it finds a discrepancy — a hyperparameter that differs, a training step that was described but not implemented, or an evaluation procedure that deviates from the paper — it documents the mismatch with exact file paths and line numbers.\u003C/p>\n\u003Cp>The audit also checks for common reproducibility issues like missing random seeds, non-deterministic operations without pinned versions, hardcoded paths, and absent environment specifications.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The audit report contains:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Match Summary\u003C/strong> — Percentage of claims that match the code\u003C/li>\n\u003Cli>\u003Cstrong>Confirmed Claims\u003C/strong> — Claims that are accurately reflected in the codebase\u003C/li>\n\u003Cli>\u003Cstrong>Mismatches\u003C/strong> — Discrepancies between paper and code with evidence from both\u003C/li>\n\u003Cli>\u003Cstrong>Missing Implementations\u003C/strong> — Claims in the paper with no corresponding code\u003C/li>\n\u003Cli>\u003Cstrong>Reproducibility Risks\u003C/strong> — Issues like missing seeds, unpinned dependencies, or hardcoded paths\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/audit\u003C/code> when you are deciding whether to build on a paper’s results, when replicating an experiment, or when reviewing a paper for a venue and want to verify its claims against the code. It is also useful for auditing your own papers before submission to catch inconsistencies between your writeup and implementation.\u003C/p>",{"headings":488,"localImagePaths":495,"remoteImagePaths":496,"frontmatter":497,"imagePaths":498},[489,490,491,494],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},"output-format","Output format",{"depth":26,"slug":410,"text":411},[],[],{"title":479,"description":480,"section":481,"order":76},[],"workflows/audit.md","workflows/autoresearch",{"id":500,"data":502,"body":506,"filePath":507,"digest":508,"rendered":509,"legacyId":524},{"title":503,"description":504,"section":481,"order":505},"Autoresearch","Start an autonomous experiment loop that iteratively optimizes toward a goal.",8,"The autoresearch workflow launches an autonomous research loop that iteratively designs experiments, runs them, analyzes results, and proposes next steps. It is designed for open-ended exploration where the goal is optimization or discovery rather than a specific answer.\n\n## Usage\n\nFrom the REPL:\n\n```\n/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8K\n```\n\nFrom the CLI:\n\n```bash\nfeynman autoresearch \"Optimize prompt engineering strategies for math reasoning on GSM8K\"\n```\n\nAutoresearch runs as a long-lived background process. You can monitor its progress, pause it, or redirect its focus at any time.\n\n## How it works\n\nThe autoresearch workflow is powered by `@tmustier/pi-ralph-wiggum`, which provides long-running agent loops. The workflow begins by analyzing the research goal and designing an initial experiment plan. It then enters an iterative loop:\n\n1. **Hypothesis** -- The agent proposes a hypothesis or modification based on current results\n2. **Experiment** -- It designs and executes an experiment to test the hypothesis\n3. **Analysis** -- Results are analyzed and compared against prior iterations\n4. **Decision** -- The agent decides whether to continue the current direction, try a variation, or pivot to a new approach\n\nEach iteration builds on the previous ones. The agent maintains a running log of what has been tried, what worked, what failed, and what the current best result is. This prevents repeating failed approaches and ensures the search progresses efficiently.\n\n## Monitoring and control\n\nCheck active autoresearch jobs:\n\n```\n/jobs\n```\n\nAutoresearch runs in the background, so you can continue using Feynman for other tasks while it works. The `/jobs` command shows the current status, iteration count, and best result so far. You can interrupt the loop at any time to provide guidance or redirect the search.\n\n## Output format\n\nAutoresearch produces a running experiment log that includes:\n\n- **Experiment History** -- What was tried in each iteration with parameters and results\n- **Best Configuration** -- The best-performing setup found so far\n- **Ablation Results** -- Which factors mattered most based on the experiments run\n- **Recommendations** -- Suggested next steps based on observed trends\n\n## When to use it\n\nUse `/autoresearch` for tasks that benefit from iterative exploration: hyperparameter optimization, prompt engineering, architecture search, or any problem where the search space is large and the feedback signal is clear. It is not the right tool for answering a specific question (use `/deepresearch` for that) but excels at finding what works best through systematic experimentation.","src/content/docs/workflows/autoresearch.md","c7a88b0036aea407",{"html":510,"metadata":511},"\u003Cp>The autoresearch workflow launches an autonomous research loop that iteratively designs experiments, runs them, analyzes results, and proposes next steps. It is designed for open-ended exploration where the goal is optimization or discovery rather than a specific answer.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8K\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> autoresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Optimize prompt engineering strategies for math reasoning on GSM8K\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Autoresearch runs as a long-lived background process. You can monitor its progress, pause it, or redirect its focus at any time.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The autoresearch workflow is powered by \u003Ccode>@tmustier/pi-ralph-wiggum\u003C/code>, which provides long-running agent loops. The workflow begins by analyzing the research goal and designing an initial experiment plan. It then enters an iterative loop:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Hypothesis\u003C/strong> — The agent proposes a hypothesis or modification based on current results\u003C/li>\n\u003Cli>\u003Cstrong>Experiment\u003C/strong> — It designs and executes an experiment to test the hypothesis\u003C/li>\n\u003Cli>\u003Cstrong>Analysis\u003C/strong> — Results are analyzed and compared against prior iterations\u003C/li>\n\u003Cli>\u003Cstrong>Decision\u003C/strong> — The agent decides whether to continue the current direction, try a variation, or pivot to a new approach\u003C/li>\n\u003C/ol>\n\u003Cp>Each iteration builds on the previous ones. The agent maintains a running log of what has been tried, what worked, what failed, and what the current best result is. This prevents repeating failed approaches and ensures the search progresses efficiently.\u003C/p>\n\u003Ch2 id=\"monitoring-and-control\">Monitoring and control\u003C/h2>\n\u003Cp>Check active autoresearch jobs:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/jobs\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Autoresearch runs in the background, so you can continue using Feynman for other tasks while it works. The \u003Ccode>/jobs\u003C/code> command shows the current status, iteration count, and best result so far. You can interrupt the loop at any time to provide guidance or redirect the search.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Autoresearch produces a running experiment log that includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Experiment History\u003C/strong> — What was tried in each iteration with parameters and results\u003C/li>\n\u003Cli>\u003Cstrong>Best Configuration\u003C/strong> — The best-performing setup found so far\u003C/li>\n\u003Cli>\u003Cstrong>Ablation Results\u003C/strong> — Which factors mattered most based on the experiments run\u003C/li>\n\u003Cli>\u003Cstrong>Recommendations\u003C/strong> — Suggested next steps based on observed trends\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/autoresearch\u003C/code> for tasks that benefit from iterative exploration: hyperparameter optimization, prompt engineering, architecture search, or any problem where the search space is large and the feedback signal is clear. It is not the right tool for answering a specific question (use \u003Ccode>/deepresearch\u003C/code> for that) but excels at finding what works best through systematic experimentation.\u003C/p>",{"headings":512,"localImagePaths":520,"remoteImagePaths":521,"frontmatter":522,"imagePaths":523},[513,514,515,518,519],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":516,"text":517},"monitoring-and-control","Monitoring and control",{"depth":26,"slug":492,"text":493},{"depth":26,"slug":410,"text":411},[],[],{"title":503,"description":504,"section":481,"order":505},[],"workflows/autoresearch.md","workflows/compare",{"id":525,"data":527,"body":531,"filePath":532,"digest":533,"rendered":534,"legacyId":546},{"title":528,"description":529,"section":481,"order":530},"Source Comparison","Compare multiple sources and produce an agreement/disagreement matrix.",6,"The source comparison workflow analyzes multiple papers, articles, or documents side by side and produces a structured matrix showing where they agree, disagree, and differ in methodology. It is useful for understanding conflicting results, evaluating competing approaches, and identifying which claims have broad support versus limited evidence.\n\n## Usage\n\nFrom the REPL:\n\n```\n/compare \"GPT-4 vs Claude vs Gemini on reasoning benchmarks\"\n```\n\n```\n/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111\n```\n\nFrom the CLI:\n\n```bash\nfeynman compare \"topic or list of sources\"\n```\n\nYou can provide a topic and let Feynman find the sources, or list specific papers and documents for a targeted comparison.\n\n## How it works\n\nThe comparison workflow begins by identifying or retrieving the sources to compare. If you provide a topic, the researcher agents find the most relevant and contrasting papers. If you provide specific IDs or files, they are used directly.\n\nEach source is analyzed independently first: the researcher agents extract claims, results, methodology, and limitations from each document. Then the comparison engine aligns claims across sources -- identifying where two papers make the same claim (agreement), where they report contradictory results (disagreement), and where they measure different things entirely (non-overlapping scope).\n\nThe alignment step handles the nuance that papers often measure slightly different quantities or use different evaluation protocols. The comparison explicitly notes when an apparent disagreement might be explained by methodological differences rather than genuine conflicting results.\n\n## Output format\n\nThe comparison produces:\n\n- **Source Summaries** -- One-paragraph summary of each source's key contributions\n- **Agreement Matrix** -- Claims supported by multiple sources with citation evidence\n- **Disagreement Matrix** -- Conflicting claims with analysis of why sources diverge\n- **Methodology Differences** -- How the sources differ in approach, data, and evaluation\n- **Synthesis** -- An overall assessment of which claims are well-supported and which remain contested\n\n## When to use it\n\nUse `/compare` when you encounter contradictory results in the literature, when evaluating competing approaches to the same problem, or when you need to understand how different research groups frame the same topic. It is also useful for writing related work sections where you need to accurately characterize the state of debate.","src/content/docs/workflows/compare.md","2ce03f852c0bb425",{"html":535,"metadata":536},"\u003Cp>The source comparison workflow analyzes multiple papers, articles, or documents side by side and produces a structured matrix showing where they agree, disagree, and differ in methodology. It is useful for understanding conflicting results, evaluating competing approaches, and identifying which claims have broad support versus limited evidence.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare \"GPT-4 vs Claude vs Gemini on reasoning benchmarks\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic or list of sources\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can provide a topic and let Feynman find the sources, or list specific papers and documents for a targeted comparison.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The comparison workflow begins by identifying or retrieving the sources to compare. If you provide a topic, the researcher agents find the most relevant and contrasting papers. If you provide specific IDs or files, they are used directly.\u003C/p>\n\u003Cp>Each source is analyzed independently first: the researcher agents extract claims, results, methodology, and limitations from each document. Then the comparison engine aligns claims across sources — identifying where two papers make the same claim (agreement), where they report contradictory results (disagreement), and where they measure different things entirely (non-overlapping scope).\u003C/p>\n\u003Cp>The alignment step handles the nuance that papers often measure slightly different quantities or use different evaluation protocols. The comparison explicitly notes when an apparent disagreement might be explained by methodological differences rather than genuine conflicting results.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The comparison produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Source Summaries\u003C/strong> — One-paragraph summary of each source’s key contributions\u003C/li>\n\u003Cli>\u003Cstrong>Agreement Matrix\u003C/strong> — Claims supported by multiple sources with citation evidence\u003C/li>\n\u003Cli>\u003Cstrong>Disagreement Matrix\u003C/strong> — Conflicting claims with analysis of why sources diverge\u003C/li>\n\u003Cli>\u003Cstrong>Methodology Differences\u003C/strong> — How the sources differ in approach, data, and evaluation\u003C/li>\n\u003Cli>\u003Cstrong>Synthesis\u003C/strong> — An overall assessment of which claims are well-supported and which remain contested\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/compare\u003C/code> when you encounter contradictory results in the literature, when evaluating competing approaches to the same problem, or when you need to understand how different research groups frame the same topic. It is also useful for writing related work sections where you need to accurately characterize the state of debate.\u003C/p>",{"headings":537,"localImagePaths":542,"remoteImagePaths":543,"frontmatter":544,"imagePaths":545},[538,539,540,541],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":410,"text":411},[],[],{"title":528,"description":529,"section":481,"order":530},[],"workflows/compare.md","workflows/deep-research",{"id":547,"data":549,"body":552,"filePath":553,"digest":554,"rendered":555,"legacyId":567},{"title":550,"description":551,"section":481,"order":102},"Deep Research","Run a thorough, multi-agent investigation that produces a cited research brief.","Deep research is the flagship Feynman workflow. It dispatches multiple researcher agents in parallel to search academic papers, web sources, and code repositories, then synthesizes everything into a structured research brief with inline citations.\n\n## Usage\n\nFrom the REPL:\n\n```\n/deepresearch What are the current approaches to mechanistic interpretability in LLMs?\n```\n\nFrom the CLI:\n\n```bash\nfeynman deepresearch \"What are the current approaches to mechanistic interpretability in LLMs?\"\n```\n\nBoth forms are equivalent. The workflow begins immediately and streams progress as agents discover and analyze sources.\n\n## How it works\n\nThe deep research workflow proceeds through four phases. First, the researcher agents fan out to search AlphaXiv for relevant papers and the web for non-academic sources like blog posts, documentation, and code repositories. Each agent tackles a different angle of the topic to maximize coverage.\n\nSecond, the agents read and extract key findings from the most relevant sources. They pull claims, methodology details, results, and limitations from each paper or article. For academic papers, they access the full PDF through AlphaXiv when available.\n\nThird, a synthesis step cross-references findings across sources, identifies areas of consensus and disagreement, and organizes the material into a coherent narrative. The writer agent structures the output as a research brief with sections for background, key findings, open questions, and references.\n\nFinally, the verifier agent spot-checks claims against their cited sources to flag any misattributions or unsupported assertions. The finished report is saved to your session directory and can be previewed as rendered HTML with `/preview`.\n\n## Output format\n\nThe research brief follows a consistent structure:\n\n- **Summary** -- A concise overview of the topic and key takeaways\n- **Background** -- Context and motivation for the research area\n- **Key Findings** -- The main results organized by theme, with inline citations\n- **Open Questions** -- Unresolved issues and promising research directions\n- **References** -- Full citation list with links to source papers and articles\n\n## Customization\n\nYou can steer the research by being specific in your prompt. Narrow topics produce more focused briefs. Broad topics produce survey-style overviews. You can also specify constraints like \"focus on papers from 2024\" or \"only consider empirical results\" to guide the agents.","src/content/docs/workflows/deep-research.md","1bbb4db9ca6450a2",{"html":556,"metadata":557},"\u003Cp>Deep research is the flagship Feynman workflow. It dispatches multiple researcher agents in parallel to search academic papers, web sources, and code repositories, then synthesizes everything into a structured research brief with inline citations.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/deepresearch What are the current approaches to mechanistic interpretability in LLMs?\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">What are the current approaches to mechanistic interpretability in LLMs?\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Both forms are equivalent. The workflow begins immediately and streams progress as agents discover and analyze sources.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The deep research workflow proceeds through four phases. First, the researcher agents fan out to search AlphaXiv for relevant papers and the web for non-academic sources like blog posts, documentation, and code repositories. Each agent tackles a different angle of the topic to maximize coverage.\u003C/p>\n\u003Cp>Second, the agents read and extract key findings from the most relevant sources. They pull claims, methodology details, results, and limitations from each paper or article. For academic papers, they access the full PDF through AlphaXiv when available.\u003C/p>\n\u003Cp>Third, a synthesis step cross-references findings across sources, identifies areas of consensus and disagreement, and organizes the material into a coherent narrative. The writer agent structures the output as a research brief with sections for background, key findings, open questions, and references.\u003C/p>\n\u003Cp>Finally, the verifier agent spot-checks claims against their cited sources to flag any misattributions or unsupported assertions. The finished report is saved to your session directory and can be previewed as rendered HTML with \u003Ccode>/preview\u003C/code>.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The research brief follows a consistent structure:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Summary\u003C/strong> — A concise overview of the topic and key takeaways\u003C/li>\n\u003Cli>\u003Cstrong>Background\u003C/strong> — Context and motivation for the research area\u003C/li>\n\u003Cli>\u003Cstrong>Key Findings\u003C/strong> — The main results organized by theme, with inline citations\u003C/li>\n\u003Cli>\u003Cstrong>Open Questions\u003C/strong> — Unresolved issues and promising research directions\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Full citation list with links to source papers and articles\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>You can steer the research by being specific in your prompt. Narrow topics produce more focused briefs. Broad topics produce survey-style overviews. You can also specify constraints like “focus on papers from 2024” or “only consider empirical results” to guide the agents.\u003C/p>",{"headings":558,"localImagePaths":563,"remoteImagePaths":564,"frontmatter":565,"imagePaths":566},[559,560,561,562],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":283,"text":284},[],[],{"title":550,"description":551,"section":481,"order":102},[],"workflows/deep-research.md","workflows/draft",{"id":568,"data":570,"body":574,"filePath":575,"digest":576,"rendered":577,"legacyId":591},{"title":571,"description":572,"section":481,"order":573},"Draft Writing","Generate a paper-style draft from research findings and session context.",7,"The draft writing workflow generates structured academic-style documents from your research findings. It uses the writer agent to produce well-organized prose with proper citations, sections, and formatting suitable for papers, reports, or blog posts.\n\n## Usage\n\nFrom the REPL:\n\n```\n/draft A survey of retrieval-augmented generation techniques\n```\n\n```\n/draft --from-session\n```\n\nFrom the CLI:\n\n```bash\nfeynman draft \"A survey of retrieval-augmented generation techniques\"\n```\n\nWhen used with `--from-session`, the writer draws from the current session's research findings, making it a natural follow-up to a deep research or literature review workflow.\n\n## How it works\n\nThe draft workflow leverages the writer agent, which specializes in producing structured academic prose. When given a topic, it first consults the researcher agents to gather source material, then organizes the findings into a coherent document with proper narrative flow.\n\nWhen working from existing session context (after a deep research or literature review), the writer skips the research phase and works directly with the findings already gathered. This produces a more focused draft because the source material has already been vetted and organized.\n\nThe writer pays attention to academic conventions: claims are attributed to their sources with inline citations, methodology sections describe procedures precisely, and limitations are discussed honestly. The draft includes placeholder sections for any content the writer cannot generate from available sources, clearly marking what needs human input.\n\n## Output format\n\nThe draft follows standard academic structure:\n\n- **Abstract** -- Concise summary of the document's scope and findings\n- **Introduction** -- Motivation, context, and contribution statement\n- **Body Sections** -- Organized by topic with subsections as needed\n- **Discussion** -- Interpretation of findings and implications\n- **Limitations** -- Honest assessment of scope and gaps\n- **References** -- Complete bibliography in a consistent citation format\n\n## Preview and iteration\n\nAfter generating the draft, use `/preview` to render it as HTML or PDF with proper formatting, math rendering, and typography. You can iterate on the draft by asking Feynman to revise specific sections, add more detail, or restructure the argument.","src/content/docs/workflows/draft.md","483acd4ea76d7663",{"html":578,"metadata":579},"\u003Cp>The draft writing workflow generates structured academic-style documents from your research findings. It uses the writer agent to produce well-organized prose with proper citations, sections, and formatting suitable for papers, reports, or blog posts.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft A survey of retrieval-augmented generation techniques\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft --from-session\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">A survey of retrieval-augmented generation techniques\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>When used with \u003Ccode>--from-session\u003C/code>, the writer draws from the current session’s research findings, making it a natural follow-up to a deep research or literature review workflow.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The draft workflow leverages the writer agent, which specializes in producing structured academic prose. When given a topic, it first consults the researcher agents to gather source material, then organizes the findings into a coherent document with proper narrative flow.\u003C/p>\n\u003Cp>When working from existing session context (after a deep research or literature review), the writer skips the research phase and works directly with the findings already gathered. This produces a more focused draft because the source material has already been vetted and organized.\u003C/p>\n\u003Cp>The writer pays attention to academic conventions: claims are attributed to their sources with inline citations, methodology sections describe procedures precisely, and limitations are discussed honestly. The draft includes placeholder sections for any content the writer cannot generate from available sources, clearly marking what needs human input.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The draft follows standard academic structure:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Abstract\u003C/strong> — Concise summary of the document’s scope and findings\u003C/li>\n\u003Cli>\u003Cstrong>Introduction\u003C/strong> — Motivation, context, and contribution statement\u003C/li>\n\u003Cli>\u003Cstrong>Body Sections\u003C/strong> — Organized by topic with subsections as needed\u003C/li>\n\u003Cli>\u003Cstrong>Discussion\u003C/strong> — Interpretation of findings and implications\u003C/li>\n\u003Cli>\u003Cstrong>Limitations\u003C/strong> — Honest assessment of scope and gaps\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Complete bibliography in a consistent citation format\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"preview-and-iteration\">Preview and iteration\u003C/h2>\n\u003Cp>After generating the draft, use \u003Ccode>/preview\u003C/code> to render it as HTML or PDF with proper formatting, math rendering, and typography. You can iterate on the draft by asking Feynman to revise specific sections, add more detail, or restructure the argument.\u003C/p>",{"headings":580,"localImagePaths":587,"remoteImagePaths":588,"frontmatter":589,"imagePaths":590},[581,582,583,584],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":585,"text":586},"preview-and-iteration","Preview and iteration",[],[],{"title":571,"description":572,"section":481,"order":573},[],"workflows/draft.md","workflows/watch",{"id":592,"data":594,"body":598,"filePath":599,"digest":600,"rendered":601,"legacyId":616},{"title":595,"description":596,"section":481,"order":597},"Watch","Set up recurring research monitoring on a topic.",9,"The watch workflow sets up recurring research monitoring that periodically checks for new papers, articles, and developments on a topic you care about. It notifies you when something relevant appears and can automatically summarize new findings.\n\n## Usage\n\nFrom the REPL:\n\n```\n/watch New developments in state space models for sequence modeling\n```\n\nFrom the CLI:\n\n```bash\nfeynman watch \"New developments in state space models for sequence modeling\"\n```\n\nAfter setting up a watch, Feynman periodically runs searches on the topic and alerts you when it finds new relevant material.\n\n## How it works\n\nThe watch workflow is built on `pi-schedule-prompt`, which manages scheduled and recurring tasks. When you create a watch, Feynman stores the topic and search parameters, then runs a lightweight search at regular intervals (default: daily).\n\nEach check searches AlphaXiv for new papers and the web for new articles matching your topic. Results are compared against what was found in previous checks to surface only genuinely new material. When new items are found, Feynman produces a brief summary of each and stores it in your session history.\n\nThe watch is smart about relevance. It does not just keyword-match -- it uses the same researcher agent that powers deep research to evaluate whether new papers are genuinely relevant to your topic or just superficially related. This keeps the signal-to-noise ratio high even for broad topics.\n\n## Managing watches\n\nList active watches:\n\n```\n/jobs\n```\n\nThe `/jobs` command shows all active watches along with their schedule, last check time, and number of new items found. You can pause, resume, or delete watches from within the REPL.\n\n## Output format\n\nEach watch check produces:\n\n- **New Papers** -- Titles, authors, and one-paragraph summaries of newly discovered papers\n- **New Articles** -- Relevant blog posts, documentation updates, or news articles\n- **Relevance Notes** -- Why each item was flagged as relevant to your watch topic\n\n## When to use it\n\nUse `/watch` to stay current on a research area without manually searching every day. It is particularly useful for fast-moving fields where new papers appear frequently, for tracking specific research groups or topics related to your own work, and for monitoring the literature while you focus on other tasks.","src/content/docs/workflows/watch.md","8881197eaf4231b9",{"html":602,"metadata":603},"\u003Cp>The watch workflow sets up recurring research monitoring that periodically checks for new papers, articles, and developments on a topic you care about. It notifies you when something relevant appears and can automatically summarize new findings.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/watch New developments in state space models for sequence modeling\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> watch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">New developments in state space models for sequence modeling\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>After setting up a watch, Feynman periodically runs searches on the topic and alerts you when it finds new relevant material.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The watch workflow is built on \u003Ccode>pi-schedule-prompt\u003C/code>, which manages scheduled and recurring tasks. When you create a watch, Feynman stores the topic and search parameters, then runs a lightweight search at regular intervals (default: daily).\u003C/p>\n\u003Cp>Each check searches AlphaXiv for new papers and the web for new articles matching your topic. Results are compared against what was found in previous checks to surface only genuinely new material. When new items are found, Feynman produces a brief summary of each and stores it in your session history.\u003C/p>\n\u003Cp>The watch is smart about relevance. It does not just keyword-match — it uses the same researcher agent that powers deep research to evaluate whether new papers are genuinely relevant to your topic or just superficially related. This keeps the signal-to-noise ratio high even for broad topics.\u003C/p>\n\u003Ch2 id=\"managing-watches\">Managing watches\u003C/h2>\n\u003Cp>List active watches:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/jobs\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The \u003Ccode>/jobs\u003C/code> command shows all active watches along with their schedule, last check time, and number of new items found. You can pause, resume, or delete watches from within the REPL.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Each watch check produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>New Papers\u003C/strong> — Titles, authors, and one-paragraph summaries of newly discovered papers\u003C/li>\n\u003Cli>\u003Cstrong>New Articles\u003C/strong> — Relevant blog posts, documentation updates, or news articles\u003C/li>\n\u003Cli>\u003Cstrong>Relevance Notes\u003C/strong> — Why each item was flagged as relevant to your watch topic\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/watch\u003C/code> to stay current on a research area without manually searching every day. It is particularly useful for fast-moving fields where new papers appear frequently, for tracking specific research groups or topics related to your own work, and for monitoring the literature while you focus on other tasks.\u003C/p>",{"headings":604,"localImagePaths":612,"remoteImagePaths":613,"frontmatter":614,"imagePaths":615},[605,606,607,610,611],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":608,"text":609},"managing-watches","Managing watches",{"depth":26,"slug":492,"text":493},{"depth":26,"slug":410,"text":411},[],[],{"title":595,"description":596,"section":481,"order":597},[],"workflows/watch.md","workflows/literature-review",{"id":617,"data":619,"body":622,"filePath":623,"digest":624,"rendered":625,"legacyId":637},{"title":620,"description":621,"section":481,"order":26},"Literature Review","Run a structured literature review with consensus mapping and gap analysis.","The literature review workflow produces a structured survey of the academic landscape on a given topic. Unlike deep research which aims for a comprehensive brief, the literature review focuses specifically on mapping the state of the field -- what researchers agree on, where they disagree, and what remains unexplored.\n\n## Usage\n\nFrom the REPL:\n\n```\n/lit Scaling laws for language model performance\n```\n\nFrom the CLI:\n\n```bash\nfeynman lit \"Scaling laws for language model performance\"\n```\n\n## How it works\n\nThe literature review workflow begins by having researcher agents search for papers on the topic across AlphaXiv and the web. The agents prioritize survey papers, highly-cited foundational work, and recent publications to capture both established knowledge and the current frontier.\n\nAfter gathering sources, the agents extract claims, results, and methodology from each paper. The synthesis step then organizes findings into a structured review that maps out where the community has reached consensus, where active debate exists, and where gaps in the literature remain.\n\nThe output is organized chronologically and thematically, showing how ideas evolved over time and how different research groups approach the problem differently. Citation counts and publication venues are used as signals for weighting claims, though the review explicitly notes when influential work contradicts the mainstream view.\n\n## Output format\n\nThe literature review produces:\n\n- **Scope and Methodology** -- What was searched and how papers were selected\n- **Consensus** -- Claims that most papers agree on, with supporting citations\n- **Disagreements** -- Active debates where papers present conflicting evidence or interpretations\n- **Open Questions** -- Topics that the literature has not adequately addressed\n- **Timeline** -- Key milestones and how the field evolved\n- **References** -- Complete bibliography organized by relevance\n\n## When to use it\n\nUse `/lit` when you need a map of the research landscape rather than a deep dive into a specific question. It is particularly useful at the start of a new research project when you need to understand what has already been done, or when preparing a related work section for a paper.","src/content/docs/workflows/literature-review.md","3028bede4cee6cf0",{"html":626,"metadata":627},"\u003Cp>The literature review workflow produces a structured survey of the academic landscape on a given topic. Unlike deep research which aims for a comprehensive brief, the literature review focuses specifically on mapping the state of the field — what researchers agree on, where they disagree, and what remains unexplored.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/lit Scaling laws for language model performance\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Scaling laws for language model performance\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The literature review workflow begins by having researcher agents search for papers on the topic across AlphaXiv and the web. The agents prioritize survey papers, highly-cited foundational work, and recent publications to capture both established knowledge and the current frontier.\u003C/p>\n\u003Cp>After gathering sources, the agents extract claims, results, and methodology from each paper. The synthesis step then organizes findings into a structured review that maps out where the community has reached consensus, where active debate exists, and where gaps in the literature remain.\u003C/p>\n\u003Cp>The output is organized chronologically and thematically, showing how ideas evolved over time and how different research groups approach the problem differently. Citation counts and publication venues are used as signals for weighting claims, though the review explicitly notes when influential work contradicts the mainstream view.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The literature review produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Scope and Methodology\u003C/strong> — What was searched and how papers were selected\u003C/li>\n\u003Cli>\u003Cstrong>Consensus\u003C/strong> — Claims that most papers agree on, with supporting citations\u003C/li>\n\u003Cli>\u003Cstrong>Disagreements\u003C/strong> — Active debates where papers present conflicting evidence or interpretations\u003C/li>\n\u003Cli>\u003Cstrong>Open Questions\u003C/strong> — Topics that the literature has not adequately addressed\u003C/li>\n\u003Cli>\u003Cstrong>Timeline\u003C/strong> — Key milestones and how the field evolved\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Complete bibliography organized by relevance\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/lit\u003C/code> when you need a map of the research landscape rather than a deep dive into a specific question. It is particularly useful at the start of a new research project when you need to understand what has already been done, or when preparing a related work section for a paper.\u003C/p>",{"headings":628,"localImagePaths":633,"remoteImagePaths":634,"frontmatter":635,"imagePaths":636},[629,630,631,632],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":410,"text":411},[],[],{"title":620,"description":621,"section":481,"order":26},[],"workflows/literature-review.md","workflows/replication",{"id":638,"data":640,"body":644,"filePath":645,"digest":646,"rendered":647,"legacyId":661},{"title":641,"description":642,"section":481,"order":643},"Replication","Plan or execute a replication of a paper's experiments and claims.",5,"The replication workflow helps you plan and execute reproductions of published experiments, benchmark results, or specific claims. It generates a detailed replication plan, identifies potential pitfalls, and can guide you through the execution step by step.\n\n## Usage\n\nFrom the REPL:\n\n```\n/replicate arxiv:2401.12345\n```\n\n```\n/replicate \"The claim that sparse attention achieves 95% of dense attention quality at 60% compute\"\n```\n\nFrom the CLI:\n\n```bash\nfeynman replicate \"paper or claim\"\n```\n\nYou can point the workflow at a full paper for a comprehensive replication plan, or at a specific claim for a focused reproduction.\n\n## How it works\n\nThe replication workflow starts with the researcher agent reading the target paper and extracting every detail needed for reproduction: model architecture, hyperparameters, training schedule, dataset preparation, evaluation protocol, and hardware requirements. It cross-references these details against the codebase (if available) using the same machinery as the code audit workflow.\n\nNext, the workflow generates a structured replication plan that breaks the experiment into discrete steps, estimates compute and time requirements, and identifies where the paper is underspecified. For each underspecified detail, it suggests reasonable defaults based on common practices in the field and flags the assumption as a potential source of divergence.\n\nThe plan also includes a risk assessment: which parts of the experiment are most likely to cause replication failure, what tolerance to expect for numerical results, and which claims are most sensitive to implementation details.\n\n## Output format\n\nThe replication plan includes:\n\n- **Requirements** -- Hardware, software, data, and estimated compute cost\n- **Step-by-step Plan** -- Ordered steps from environment setup through final evaluation\n- **Underspecified Details** -- Where the paper leaves out information needed for replication\n- **Risk Assessment** -- Which steps are most likely to cause divergence from reported results\n- **Success Criteria** -- What results would constitute a successful replication\n\n## Iterative execution\n\nAfter generating the plan, you can execute the replication interactively. Feynman walks you through each step, helps you write the code, monitors training runs, and compares intermediate results against the paper's reported values. When results diverge, it helps diagnose whether the cause is an implementation difference, a hyperparameter mismatch, or a genuine replication failure.","src/content/docs/workflows/replication.md","d477e6df15163fff",{"html":648,"metadata":649},"\u003Cp>The replication workflow helps you plan and execute reproductions of published experiments, benchmark results, or specific claims. It generates a detailed replication plan, identifies potential pitfalls, and can guide you through the execution step by step.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate \"The claim that sparse attention achieves 95% of dense attention quality at 60% compute\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">paper or claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can point the workflow at a full paper for a comprehensive replication plan, or at a specific claim for a focused reproduction.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The replication workflow starts with the researcher agent reading the target paper and extracting every detail needed for reproduction: model architecture, hyperparameters, training schedule, dataset preparation, evaluation protocol, and hardware requirements. It cross-references these details against the codebase (if available) using the same machinery as the code audit workflow.\u003C/p>\n\u003Cp>Next, the workflow generates a structured replication plan that breaks the experiment into discrete steps, estimates compute and time requirements, and identifies where the paper is underspecified. For each underspecified detail, it suggests reasonable defaults based on common practices in the field and flags the assumption as a potential source of divergence.\u003C/p>\n\u003Cp>The plan also includes a risk assessment: which parts of the experiment are most likely to cause replication failure, what tolerance to expect for numerical results, and which claims are most sensitive to implementation details.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The replication plan includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Requirements\u003C/strong> — Hardware, software, data, and estimated compute cost\u003C/li>\n\u003Cli>\u003Cstrong>Step-by-step Plan\u003C/strong> — Ordered steps from environment setup through final evaluation\u003C/li>\n\u003Cli>\u003Cstrong>Underspecified Details\u003C/strong> — Where the paper leaves out information needed for replication\u003C/li>\n\u003Cli>\u003Cstrong>Risk Assessment\u003C/strong> — Which steps are most likely to cause divergence from reported results\u003C/li>\n\u003Cli>\u003Cstrong>Success Criteria\u003C/strong> — What results would constitute a successful replication\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"iterative-execution\">Iterative execution\u003C/h2>\n\u003Cp>After generating the plan, you can execute the replication interactively. Feynman walks you through each step, helps you write the code, monitors training runs, and compares intermediate results against the paper’s reported values. When results diverge, it helps diagnose whether the cause is an implementation difference, a hyperparameter mismatch, or a genuine replication failure.\u003C/p>",{"headings":650,"localImagePaths":657,"remoteImagePaths":658,"frontmatter":659,"imagePaths":660},[651,652,653,654],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":655,"text":656},"iterative-execution","Iterative execution",[],[],{"title":641,"description":642,"section":481,"order":643},[],"workflows/replication.md","workflows/review",{"id":662,"data":664,"body":667,"filePath":668,"digest":669,"rendered":670,"legacyId":682},{"title":665,"description":666,"section":481,"order":17},"Peer Review","Simulate a rigorous peer review with severity-graded feedback.","The peer review workflow simulates a thorough academic peer review of a paper, draft, or research artifact. It produces severity-graded feedback with inline annotations, covering methodology, claims, writing quality, and reproducibility.\n\n## Usage\n\nFrom the REPL:\n\n```\n/review arxiv:2401.12345\n```\n\n```\n/review ~/papers/my-draft.pdf\n```\n\nFrom the CLI:\n\n```bash\nfeynman review arxiv:2401.12345\nfeynman review my-draft.md\n```\n\nYou can pass an arXiv ID, a URL, or a local file path. For arXiv papers, Feynman fetches the full PDF through AlphaXiv.\n\n## How it works\n\nThe review workflow assigns the reviewer agent to read the document end-to-end and evaluate it against standard academic criteria. The reviewer examines the paper's claims, checks whether the methodology supports the conclusions, evaluates the experimental design for potential confounds, and assesses the clarity and completeness of the writing.\n\nEach piece of feedback is assigned a severity level: **critical** (fundamental issues that undermine the paper's validity), **major** (significant problems that should be addressed), **minor** (suggestions for improvement), or **nit** (stylistic or formatting issues). This grading helps you triage feedback and focus on what matters most.\n\nThe reviewer also produces a summary assessment with an overall recommendation and a confidence score indicating how certain it is about each finding. When the reviewer identifies a claim that cannot be verified from the paper alone, it flags it as needing additional evidence.\n\n## Output format\n\nThe review output includes:\n\n- **Summary Assessment** -- Overall evaluation and recommendation\n- **Strengths** -- What the paper does well\n- **Critical Issues** -- Fundamental problems that need to be addressed\n- **Major Issues** -- Significant concerns with suggested fixes\n- **Minor Issues** -- Smaller improvements and suggestions\n- **Inline Annotations** -- Specific comments tied to sections of the document\n\n## Customization\n\nYou can focus the review by specifying what to examine: \"focus on the statistical methodology\" or \"check the claims in Section 4 against the experimental results.\" The reviewer adapts its analysis to your priorities while still performing a baseline check of the full document.","src/content/docs/workflows/review.md","0f84fd2135001da2",{"html":671,"metadata":672},"\u003Cp>The peer review workflow simulates a thorough academic peer review of a paper, draft, or research artifact. It produces severity-graded feedback with inline annotations, covering methodology, claims, writing quality, and reproducibility.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review ~/papers/my-draft.pdf\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> arxiv:2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> my-draft.md\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can pass an arXiv ID, a URL, or a local file path. For arXiv papers, Feynman fetches the full PDF through AlphaXiv.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The review workflow assigns the reviewer agent to read the document end-to-end and evaluate it against standard academic criteria. The reviewer examines the paper’s claims, checks whether the methodology supports the conclusions, evaluates the experimental design for potential confounds, and assesses the clarity and completeness of the writing.\u003C/p>\n\u003Cp>Each piece of feedback is assigned a severity level: \u003Cstrong>critical\u003C/strong> (fundamental issues that undermine the paper’s validity), \u003Cstrong>major\u003C/strong> (significant problems that should be addressed), \u003Cstrong>minor\u003C/strong> (suggestions for improvement), or \u003Cstrong>nit\u003C/strong> (stylistic or formatting issues). This grading helps you triage feedback and focus on what matters most.\u003C/p>\n\u003Cp>The reviewer also produces a summary assessment with an overall recommendation and a confidence score indicating how certain it is about each finding. When the reviewer identifies a claim that cannot be verified from the paper alone, it flags it as needing additional evidence.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The review output includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Summary Assessment\u003C/strong> — Overall evaluation and recommendation\u003C/li>\n\u003Cli>\u003Cstrong>Strengths\u003C/strong> — What the paper does well\u003C/li>\n\u003Cli>\u003Cstrong>Critical Issues\u003C/strong> — Fundamental problems that need to be addressed\u003C/li>\n\u003Cli>\u003Cstrong>Major Issues\u003C/strong> — Significant concerns with suggested fixes\u003C/li>\n\u003Cli>\u003Cstrong>Minor Issues\u003C/strong> — Smaller improvements and suggestions\u003C/li>\n\u003Cli>\u003Cstrong>Inline Annotations\u003C/strong> — Specific comments tied to sections of the document\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>You can focus the review by specifying what to examine: “focus on the statistical methodology” or “check the claims in Section 4 against the experimental results.” The reviewer adapts its analysis to your priorities while still performing a baseline check of the full document.\u003C/p>",{"headings":673,"localImagePaths":678,"remoteImagePaths":679,"frontmatter":680,"imagePaths":681},[674,675,676,677],{"depth":26,"slug":271,"text":272},{"depth":26,"slug":280,"text":281},{"depth":26,"slug":492,"text":493},{"depth":26,"slug":283,"text":284},[],[],{"title":665,"description":666,"section":481,"order":17},[],"workflows/review.md"] \ No newline at end of file +[["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\":4321,\"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\":\"vitesse-light\",\"dark\":\"vitesse-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,46,47,75,76,100,101,126,127,162,163,192,193,218,219,250,251,288,289,324,325,355,356,380,381,412,413,433,434,457,458,478,479,501,502,525,526,546,547,571,572,603,604,633,634,658,659],"agents/researcher",{"id":11,"data":13,"body":18,"filePath":19,"digest":20,"rendered":21,"legacyId":45},{"title":14,"description":15,"section":16,"order":17},"Researcher","The researcher agent searches, reads, and extracts findings from papers and web sources.","Agents",1,"The researcher is the primary information-gathering agent in Feynman. It searches academic databases and the web, reads papers and articles, extracts key findings, and organizes source material for other agents to synthesize. Most workflows start with the researcher.\n\n## What it does\n\nThe researcher agent handles the entire source discovery and extraction pipeline. It formulates search queries based on your topic, evaluates results for relevance, reads full documents, and extracts structured information including claims, methodology, results, and limitations.\n\nWhen multiple researcher agents are spawned in parallel (which is the default for deep research and literature review), each agent tackles a different angle of the topic. One might search for foundational papers while another looks for recent work that challenges the established view. This parallel approach produces broader coverage than a single sequential search.\n\n## Search strategy\n\nThe researcher uses a multi-source search strategy. For academic topics, it queries AlphaXiv for papers and uses citation chains to discover related work. For applied topics, it searches the web for documentation, blog posts, and code repositories. For most topics, it uses both channels and cross-references findings.\n\nSearch queries are diversified automatically. Rather than running the same query multiple times, the researcher generates 2-4 varied queries that approach the topic from different angles. This catches papers that use different terminology for the same concept and surfaces sources that a single query would miss.\n\n## Source evaluation\n\nNot every search result is worth reading in full. The researcher evaluates results by scanning abstracts and summaries first, then selects the most relevant and authoritative sources for deep reading. It considers publication venue, citation count, recency, and topical relevance when prioritizing sources.\n\n## Extraction\n\nWhen reading a source in depth, the researcher extracts structured data: the main claims and their supporting evidence, methodology details, experimental results, stated limitations, and connections to other work. Each extracted item is tagged with its source location for traceability.\n\n## Used by\n\nThe researcher agent is used by the `/deepresearch`, `/lit`, `/review`, `/audit`, `/replicate`, `/compare`, and `/draft` workflows. It is the most frequently invoked agent in the system. You do not invoke it directly -- it is dispatched automatically by the workflow orchestrator.","src/content/docs/agents/researcher.md","f659d33d6179f4a6",{"html":22,"metadata":23},"\u003Cp>The researcher is the primary information-gathering agent in Feynman. It searches academic databases and the web, reads papers and articles, extracts key findings, and organizes source material for other agents to synthesize. Most workflows start with the researcher.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The researcher agent handles the entire source discovery and extraction pipeline. It formulates search queries based on your topic, evaluates results for relevance, reads full documents, and extracts structured information including claims, methodology, results, and limitations.\u003C/p>\n\u003Cp>When multiple researcher agents are spawned in parallel (which is the default for deep research and literature review), each agent tackles a different angle of the topic. One might search for foundational papers while another looks for recent work that challenges the established view. This parallel approach produces broader coverage than a single sequential search.\u003C/p>\n\u003Ch2 id=\"search-strategy\">Search strategy\u003C/h2>\n\u003Cp>The researcher uses a multi-source search strategy. For academic topics, it queries AlphaXiv for papers and uses citation chains to discover related work. For applied topics, it searches the web for documentation, blog posts, and code repositories. For most topics, it uses both channels and cross-references findings.\u003C/p>\n\u003Cp>Search queries are diversified automatically. Rather than running the same query multiple times, the researcher generates 2-4 varied queries that approach the topic from different angles. This catches papers that use different terminology for the same concept and surfaces sources that a single query would miss.\u003C/p>\n\u003Ch2 id=\"source-evaluation\">Source evaluation\u003C/h2>\n\u003Cp>Not every search result is worth reading in full. The researcher evaluates results by scanning abstracts and summaries first, then selects the most relevant and authoritative sources for deep reading. It considers publication venue, citation count, recency, and topical relevance when prioritizing sources.\u003C/p>\n\u003Ch2 id=\"extraction\">Extraction\u003C/h2>\n\u003Cp>When reading a source in depth, the researcher extracts structured data: the main claims and their supporting evidence, methodology details, experimental results, stated limitations, and connections to other work. Each extracted item is tagged with its source location for traceability.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The researcher agent is used by the \u003Ccode>/deepresearch\u003C/code>, \u003Ccode>/lit\u003C/code>, \u003Ccode>/review\u003C/code>, \u003Ccode>/audit\u003C/code>, \u003Ccode>/replicate\u003C/code>, \u003Ccode>/compare\u003C/code>, and \u003Ccode>/draft\u003C/code> workflows. It is the most frequently invoked agent in the system. You do not invoke it directly — it is dispatched automatically by the workflow orchestrator.\u003C/p>",{"headings":24,"localImagePaths":41,"remoteImagePaths":42,"frontmatter":43,"imagePaths":44},[25,29,32,35,38],{"depth":26,"slug":27,"text":28},2,"what-it-does","What it does",{"depth":26,"slug":30,"text":31},"search-strategy","Search strategy",{"depth":26,"slug":33,"text":34},"source-evaluation","Source evaluation",{"depth":26,"slug":36,"text":37},"extraction","Extraction",{"depth":26,"slug":39,"text":40},"used-by","Used by",[],[],{"title":14,"description":15,"section":16,"order":17},[],"agents/researcher.md","agents/writer",{"id":46,"data":48,"body":52,"filePath":53,"digest":54,"rendered":55,"legacyId":74},{"title":49,"description":50,"section":16,"order":51},"Writer","The writer agent produces structured academic prose from research findings.",3,"The writer agent transforms raw research findings into structured, well-organized documents. It specializes in academic prose, producing papers, briefs, surveys, and reports with proper citations, section structure, and narrative flow.\n\n## What it does\n\nThe writer takes source material -- findings from researcher agents, review feedback, comparison matrices -- and synthesizes it into a coherent document. It handles the difficult task of turning a collection of extracted claims and citations into prose that tells a clear story.\n\nThe writer understands academic conventions. Claims are attributed to their sources with inline citations. Methodology sections describe procedures with sufficient detail for reproduction. Results are presented with appropriate qualifiers. Limitations are discussed honestly rather than buried or omitted.\n\n## Writing capabilities\n\nThe writer agent handles several document types:\n\n- **Research Briefs** -- Concise summaries of a topic with key findings and citations, produced by the deep research workflow\n- **Literature Reviews** -- Survey-style documents that map consensus, disagreement, and open questions across the field\n- **Paper Drafts** -- Full academic papers with abstract, introduction, body sections, discussion, and references\n- **Comparison Reports** -- Structured analyses of how multiple sources agree and differ\n- **Summaries** -- Condensed versions of longer documents or multi-source findings\n\n## Citation handling\n\nThe writer maintains citation integrity throughout the document. Every factual claim is linked back to its source. When multiple sources support the same claim, all are cited. When a claim comes from a single source, the writer notes this to help the reader assess confidence. The final reference list includes only works actually cited in the text.\n\n## Iteration\n\nThe writer supports iterative refinement. After producing an initial draft, you can ask Feynman to revise specific sections, add more detail on a subtopic, restructure the argument, or adjust the tone and level of technical detail. Each revision preserves the citation links and document structure.\n\n## Used by\n\nThe writer agent is used by `/deepresearch` (for the final brief), `/lit` (for the review document), `/draft` (as the primary agent), and `/compare` (for the comparison report). It is always the last agent to run in a workflow, producing the final output from the material gathered and evaluated by the researcher and reviewer agents.","src/content/docs/agents/writer.md","4987a7c97b5b9e55",{"html":56,"metadata":57},"\u003Cp>The writer agent transforms raw research findings into structured, well-organized documents. It specializes in academic prose, producing papers, briefs, surveys, and reports with proper citations, section structure, and narrative flow.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The writer takes source material — findings from researcher agents, review feedback, comparison matrices — and synthesizes it into a coherent document. It handles the difficult task of turning a collection of extracted claims and citations into prose that tells a clear story.\u003C/p>\n\u003Cp>The writer understands academic conventions. Claims are attributed to their sources with inline citations. Methodology sections describe procedures with sufficient detail for reproduction. Results are presented with appropriate qualifiers. Limitations are discussed honestly rather than buried or omitted.\u003C/p>\n\u003Ch2 id=\"writing-capabilities\">Writing capabilities\u003C/h2>\n\u003Cp>The writer agent handles several document types:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Research Briefs\u003C/strong> — Concise summaries of a topic with key findings and citations, produced by the deep research workflow\u003C/li>\n\u003Cli>\u003Cstrong>Literature Reviews\u003C/strong> — Survey-style documents that map consensus, disagreement, and open questions across the field\u003C/li>\n\u003Cli>\u003Cstrong>Paper Drafts\u003C/strong> — Full academic papers with abstract, introduction, body sections, discussion, and references\u003C/li>\n\u003Cli>\u003Cstrong>Comparison Reports\u003C/strong> — Structured analyses of how multiple sources agree and differ\u003C/li>\n\u003Cli>\u003Cstrong>Summaries\u003C/strong> — Condensed versions of longer documents or multi-source findings\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"citation-handling\">Citation handling\u003C/h2>\n\u003Cp>The writer maintains citation integrity throughout the document. Every factual claim is linked back to its source. When multiple sources support the same claim, all are cited. When a claim comes from a single source, the writer notes this to help the reader assess confidence. The final reference list includes only works actually cited in the text.\u003C/p>\n\u003Ch2 id=\"iteration\">Iteration\u003C/h2>\n\u003Cp>The writer supports iterative refinement. After producing an initial draft, you can ask Feynman to revise specific sections, add more detail on a subtopic, restructure the argument, or adjust the tone and level of technical detail. Each revision preserves the citation links and document structure.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The writer agent is used by \u003Ccode>/deepresearch\u003C/code> (for the final brief), \u003Ccode>/lit\u003C/code> (for the review document), \u003Ccode>/draft\u003C/code> (as the primary agent), and \u003Ccode>/compare\u003C/code> (for the comparison report). It is always the last agent to run in a workflow, producing the final output from the material gathered and evaluated by the researcher and reviewer agents.\u003C/p>",{"headings":58,"localImagePaths":70,"remoteImagePaths":71,"frontmatter":72,"imagePaths":73},[59,60,63,66,69],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":61,"text":62},"writing-capabilities","Writing capabilities",{"depth":26,"slug":64,"text":65},"citation-handling","Citation handling",{"depth":26,"slug":67,"text":68},"iteration","Iteration",{"depth":26,"slug":39,"text":40},[],[],{"title":49,"description":50,"section":16,"order":51},[],"agents/writer.md","agents/reviewer",{"id":75,"data":77,"body":80,"filePath":81,"digest":82,"rendered":83,"legacyId":99},{"title":78,"description":79,"section":16,"order":26},"Reviewer","The reviewer agent evaluates documents with severity-graded academic feedback.","The reviewer agent evaluates documents, papers, and research artifacts with the rigor of an academic peer reviewer. It produces severity-graded feedback covering methodology, claims, writing quality, and reproducibility.\n\n## What it does\n\nThe reviewer reads a document end-to-end and evaluates it against standard academic criteria. It checks whether claims are supported by the presented evidence, whether the methodology is sound and described in sufficient detail, whether the experimental design controls for confounds, and whether the writing is clear and complete.\n\nEach piece of feedback is assigned a severity level. **Critical** issues are fundamental problems that undermine the document's validity, such as a statistical test applied incorrectly or a conclusion not supported by the data. **Major** issues are significant problems that should be addressed, like missing baselines or inadequate ablation studies. **Minor** issues are suggestions for improvement, and **nits** are stylistic or formatting comments.\n\n## Evaluation criteria\n\nThe reviewer evaluates documents across several dimensions:\n\n- **Claims vs. Evidence** -- Does the evidence presented actually support the claims made?\n- **Methodology** -- Is the approach sound? Are there confounds or biases?\n- **Experimental Design** -- Are baselines appropriate? Are ablations sufficient?\n- **Reproducibility** -- Could someone replicate this work from the description alone?\n- **Writing Quality** -- Is the paper clear, well-organized, and free of ambiguity?\n- **Completeness** -- Are limitations discussed? Is related work adequately covered?\n\n## Confidence scoring\n\nThe reviewer provides a confidence score for each finding, indicating how certain it is about the assessment. High-confidence findings are clear-cut issues (a statistical error, a missing citation). Lower-confidence findings are judgment calls (whether a baseline is sufficient, whether more ablations are needed) where reasonable reviewers might disagree.\n\n## Used by\n\nThe reviewer agent is the primary agent in the `/review` workflow. It also contributes to `/audit` (evaluating paper claims against code) and `/compare` (assessing the strength of evidence across sources). Like all agents, it is dispatched automatically by the workflow orchestrator.","src/content/docs/agents/reviewer.md","be8db72eb9155c15",{"html":84,"metadata":85},"\u003Cp>The reviewer agent evaluates documents, papers, and research artifacts with the rigor of an academic peer reviewer. It produces severity-graded feedback covering methodology, claims, writing quality, and reproducibility.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The reviewer reads a document end-to-end and evaluates it against standard academic criteria. It checks whether claims are supported by the presented evidence, whether the methodology is sound and described in sufficient detail, whether the experimental design controls for confounds, and whether the writing is clear and complete.\u003C/p>\n\u003Cp>Each piece of feedback is assigned a severity level. \u003Cstrong>Critical\u003C/strong> issues are fundamental problems that undermine the document’s validity, such as a statistical test applied incorrectly or a conclusion not supported by the data. \u003Cstrong>Major\u003C/strong> issues are significant problems that should be addressed, like missing baselines or inadequate ablation studies. \u003Cstrong>Minor\u003C/strong> issues are suggestions for improvement, and \u003Cstrong>nits\u003C/strong> are stylistic or formatting comments.\u003C/p>\n\u003Ch2 id=\"evaluation-criteria\">Evaluation criteria\u003C/h2>\n\u003Cp>The reviewer evaluates documents across several dimensions:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Claims vs. Evidence\u003C/strong> — Does the evidence presented actually support the claims made?\u003C/li>\n\u003Cli>\u003Cstrong>Methodology\u003C/strong> — Is the approach sound? Are there confounds or biases?\u003C/li>\n\u003Cli>\u003Cstrong>Experimental Design\u003C/strong> — Are baselines appropriate? Are ablations sufficient?\u003C/li>\n\u003Cli>\u003Cstrong>Reproducibility\u003C/strong> — Could someone replicate this work from the description alone?\u003C/li>\n\u003Cli>\u003Cstrong>Writing Quality\u003C/strong> — Is the paper clear, well-organized, and free of ambiguity?\u003C/li>\n\u003Cli>\u003Cstrong>Completeness\u003C/strong> — Are limitations discussed? Is related work adequately covered?\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"confidence-scoring\">Confidence scoring\u003C/h2>\n\u003Cp>The reviewer provides a confidence score for each finding, indicating how certain it is about the assessment. High-confidence findings are clear-cut issues (a statistical error, a missing citation). Lower-confidence findings are judgment calls (whether a baseline is sufficient, whether more ablations are needed) where reasonable reviewers might disagree.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The reviewer agent is the primary agent in the \u003Ccode>/review\u003C/code> workflow. It also contributes to \u003Ccode>/audit\u003C/code> (evaluating paper claims against code) and \u003Ccode>/compare\u003C/code> (assessing the strength of evidence across sources). Like all agents, it is dispatched automatically by the workflow orchestrator.\u003C/p>",{"headings":86,"localImagePaths":95,"remoteImagePaths":96,"frontmatter":97,"imagePaths":98},[87,88,91,94],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":89,"text":90},"evaluation-criteria","Evaluation criteria",{"depth":26,"slug":92,"text":93},"confidence-scoring","Confidence scoring",{"depth":26,"slug":39,"text":40},[],[],{"title":78,"description":79,"section":16,"order":26},[],"agents/reviewer.md","agents/verifier",{"id":100,"data":102,"body":106,"filePath":107,"digest":108,"rendered":109,"legacyId":125},{"title":103,"description":104,"section":16,"order":105},"Verifier","The verifier agent cross-checks claims against their cited sources.",4,"The verifier agent is responsible for fact-checking and validation. It cross-references claims against their cited sources, checks code implementations against paper descriptions, and flags unsupported or misattributed assertions.\n\n## What it does\n\nThe verifier performs targeted checks on specific claims rather than reading documents end-to-end like the reviewer. It takes a claim and its cited source, retrieves the source, and determines whether the source actually supports the claim as stated. This catches misattributions (citing a paper that says something different), overstatements (claiming a stronger result than the source reports), and fabrications (claims with no basis in the cited source).\n\nWhen checking code against papers, the verifier examines specific implementation details: hyperparameters, architecture configurations, training procedures, and evaluation metrics. It compares the paper's description to the code's actual behavior, noting discrepancies with exact file paths and line numbers.\n\n## Verification process\n\nThe verifier follows a systematic process for each claim it checks:\n\n1. **Retrieve the source** -- Fetch the cited paper, article, or code file\n2. **Locate the relevant section** -- Find where the source addresses the claim\n3. **Compare** -- Check whether the source supports the claim as stated\n4. **Classify** -- Mark the claim as verified, unsupported, overstated, or contradicted\n5. **Document** -- Record the evidence with exact quotes and locations\n\nThis process is deterministic and traceable. Every verification result includes the specific passage or code that was checked, making it easy to audit the verifier's work.\n\n## Confidence and limitations\n\nThe verifier assigns a confidence level to each verification. Claims that directly quote a source are verified with high confidence. Claims that paraphrase or interpret results are verified with moderate confidence, since reasonable interpretations can differ. Claims about the implications or significance of results are verified with lower confidence, since these involve judgment.\n\nThe verifier is honest about its limitations. When a claim cannot be verified because the source is behind a paywall, the code is not available, or the claim requires domain expertise beyond what the verifier can assess, it says so explicitly rather than guessing.\n\n## Used by\n\nThe verifier agent is used by `/deepresearch` (final fact-checking pass), `/audit` (comparing paper claims to code), and `/replicate` (verifying that the replication plan captures all necessary details). It serves as the quality control step that runs after the researcher and writer have produced their output.","src/content/docs/agents/verifier.md","f9a4b55e40e92190",{"html":110,"metadata":111},"\u003Cp>The verifier agent is responsible for fact-checking and validation. It cross-references claims against their cited sources, checks code implementations against paper descriptions, and flags unsupported or misattributed assertions.\u003C/p>\n\u003Ch2 id=\"what-it-does\">What it does\u003C/h2>\n\u003Cp>The verifier performs targeted checks on specific claims rather than reading documents end-to-end like the reviewer. It takes a claim and its cited source, retrieves the source, and determines whether the source actually supports the claim as stated. This catches misattributions (citing a paper that says something different), overstatements (claiming a stronger result than the source reports), and fabrications (claims with no basis in the cited source).\u003C/p>\n\u003Cp>When checking code against papers, the verifier examines specific implementation details: hyperparameters, architecture configurations, training procedures, and evaluation metrics. It compares the paper’s description to the code’s actual behavior, noting discrepancies with exact file paths and line numbers.\u003C/p>\n\u003Ch2 id=\"verification-process\">Verification process\u003C/h2>\n\u003Cp>The verifier follows a systematic process for each claim it checks:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Retrieve the source\u003C/strong> — Fetch the cited paper, article, or code file\u003C/li>\n\u003Cli>\u003Cstrong>Locate the relevant section\u003C/strong> — Find where the source addresses the claim\u003C/li>\n\u003Cli>\u003Cstrong>Compare\u003C/strong> — Check whether the source supports the claim as stated\u003C/li>\n\u003Cli>\u003Cstrong>Classify\u003C/strong> — Mark the claim as verified, unsupported, overstated, or contradicted\u003C/li>\n\u003Cli>\u003Cstrong>Document\u003C/strong> — Record the evidence with exact quotes and locations\u003C/li>\n\u003C/ol>\n\u003Cp>This process is deterministic and traceable. Every verification result includes the specific passage or code that was checked, making it easy to audit the verifier’s work.\u003C/p>\n\u003Ch2 id=\"confidence-and-limitations\">Confidence and limitations\u003C/h2>\n\u003Cp>The verifier assigns a confidence level to each verification. Claims that directly quote a source are verified with high confidence. Claims that paraphrase or interpret results are verified with moderate confidence, since reasonable interpretations can differ. Claims about the implications or significance of results are verified with lower confidence, since these involve judgment.\u003C/p>\n\u003Cp>The verifier is honest about its limitations. When a claim cannot be verified because the source is behind a paywall, the code is not available, or the claim requires domain expertise beyond what the verifier can assess, it says so explicitly rather than guessing.\u003C/p>\n\u003Ch2 id=\"used-by\">Used by\u003C/h2>\n\u003Cp>The verifier agent is used by \u003Ccode>/deepresearch\u003C/code> (final fact-checking pass), \u003Ccode>/audit\u003C/code> (comparing paper claims to code), and \u003Ccode>/replicate\u003C/code> (verifying that the replication plan captures all necessary details). It serves as the quality control step that runs after the researcher and writer have produced their output.\u003C/p>",{"headings":112,"localImagePaths":121,"remoteImagePaths":122,"frontmatter":123,"imagePaths":124},[113,114,117,120],{"depth":26,"slug":27,"text":28},{"depth":26,"slug":115,"text":116},"verification-process","Verification process",{"depth":26,"slug":118,"text":119},"confidence-and-limitations","Confidence and limitations",{"depth":26,"slug":39,"text":40},[],[],{"title":103,"description":104,"section":16,"order":105},[],"agents/verifier.md","getting-started/configuration",{"id":126,"data":128,"body":132,"filePath":133,"digest":134,"rendered":135,"legacyId":161},{"title":129,"description":130,"section":131,"order":105},"Configuration","Understand Feynman's configuration files and environment variables.","Getting Started","Feynman stores all configuration and state under `~/.feynman/`. This directory is created on first run and contains settings, authentication tokens, session history, and installed packages.\n\n## Directory structure\n\n```\n~/.feynman/\n├── settings.json # Core configuration\n├── web-search.json # Web search routing config\n├── auth/ # OAuth tokens and API keys\n├── sessions/ # Persisted conversation history\n└── packages/ # Installed optional packages\n```\n\nThe `settings.json` file is the primary configuration file. It is created by `feynman setup` and can be edited manually. A typical configuration looks like:\n\n```json\n{\n \"defaultModel\": \"anthropic:claude-sonnet-4-20250514\",\n \"thinkingLevel\": \"medium\"\n}\n```\n\n## Model configuration\n\nThe `defaultModel` field sets which model is used when you launch Feynman without the `--model` flag. The format is `provider:model-name`. You can change it via the CLI:\n\n```bash\nfeynman model set anthropic:claude-opus-4-20250514\n```\n\nTo see all models you have configured:\n\n```bash\nfeynman model list\n```\n\n## Thinking levels\n\nThe `thinkingLevel` field controls how much reasoning the model does before responding. Available levels are `off`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Higher levels produce more thorough analysis at the cost of latency and token usage. You can override per-session:\n\n```bash\nfeynman --thinking high\n```\n\n## Environment variables\n\nFeynman respects the following environment variables, which take precedence over `settings.json`:\n\n| Variable | Description |\n| --- | --- |\n| `FEYNMAN_MODEL` | Override the default model |\n| `FEYNMAN_HOME` | Override the config directory (default: `~/.feynman`) |\n| `FEYNMAN_THINKING` | Override the thinking level |\n| `ANTHROPIC_API_KEY` | Anthropic API key |\n| `OPENAI_API_KEY` | OpenAI API key |\n| `GOOGLE_API_KEY` | Google AI API key |\n| `TAVILY_API_KEY` | Tavily web search API key |\n| `SERPER_API_KEY` | Serper web search API key |\n\n## Session storage\n\nEach conversation is persisted as a JSON file in `~/.feynman/sessions/`. To start a fresh session:\n\n```bash\nfeynman --new-session\n```\n\nTo point sessions at a different directory (useful for per-project session isolation):\n\n```bash\nfeynman --session-dir ~/myproject/.feynman/sessions\n```\n\n## Diagnostics\n\nRun `feynman doctor` to verify your configuration is valid, check authentication status for all configured providers, and detect missing optional dependencies. The doctor command outputs a checklist showing what is working and what needs attention.","src/content/docs/getting-started/configuration.md","f056a61d9f7b7dd8",{"html":136,"metadata":137},"\u003Cp>Feynman stores all configuration and state under \u003Ccode>~/.feynman/\u003C/code>. This directory is created on first run and contains settings, authentication tokens, session history, and installed packages.\u003C/p>\n\u003Ch2 id=\"directory-structure\">Directory structure\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>~/.feynman/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── settings.json # Core configuration\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── web-search.json # Web search routing config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── auth/ # OAuth tokens and API keys\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── sessions/ # Persisted conversation history\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>└── packages/ # Installed optional packages\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The \u003Ccode>settings.json\u003C/code> file is the primary configuration file. It is created by \u003Ccode>feynman setup\u003C/code> and can be edited manually. A typical configuration looks like:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">defaultModel\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">anthropic:claude-sonnet-4-20250514\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">thinkingLevel\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">medium\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"model-configuration\">Model configuration\u003C/h2>\n\u003Cp>The \u003Ccode>defaultModel\u003C/code> field sets which model is used when you launch Feynman without the \u003Ccode>--model\u003C/code> flag. The format is \u003Ccode>provider:model-name\u003C/code>. You can change it via the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> model\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> set\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> anthropic:claude-opus-4-20250514\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>To see all models you have configured:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> model\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> list\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"thinking-levels\">Thinking levels\u003C/h2>\n\u003Cp>The \u003Ccode>thinkingLevel\u003C/code> field controls how much reasoning the model does before responding. Available levels are \u003Ccode>off\u003C/code>, \u003Ccode>minimal\u003C/code>, \u003Ccode>low\u003C/code>, \u003Ccode>medium\u003C/code>, \u003Ccode>high\u003C/code>, and \u003Ccode>xhigh\u003C/code>. Higher levels produce more thorough analysis at the cost of latency and token usage. You can override per-session:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --thinking\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> high\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"environment-variables\">Environment variables\u003C/h2>\n\u003Cp>Feynman respects the following environment variables, which take precedence over \u003Ccode>settings.json\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Variable\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_MODEL\u003C/code>\u003C/td>\u003Ctd>Override the default model\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_HOME\u003C/code>\u003C/td>\u003Ctd>Override the config directory (default: \u003Ccode>~/.feynman\u003C/code>)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>FEYNMAN_THINKING\u003C/code>\u003C/td>\u003Ctd>Override the thinking level\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>ANTHROPIC_API_KEY\u003C/code>\u003C/td>\u003Ctd>Anthropic API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>OPENAI_API_KEY\u003C/code>\u003C/td>\u003Ctd>OpenAI API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>GOOGLE_API_KEY\u003C/code>\u003C/td>\u003Ctd>Google AI API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>TAVILY_API_KEY\u003C/code>\u003C/td>\u003Ctd>Tavily web search API key\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>SERPER_API_KEY\u003C/code>\u003C/td>\u003Ctd>Serper web search API key\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"session-storage\">Session storage\u003C/h2>\n\u003Cp>Each conversation is persisted as a JSON file in \u003Ccode>~/.feynman/sessions/\u003C/code>. To start a fresh session:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --new-session\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>To point sessions at a different directory (useful for per-project session isolation):\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --session-dir\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> ~/myproject/.feynman/sessions\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"diagnostics\">Diagnostics\u003C/h2>\n\u003Cp>Run \u003Ccode>feynman doctor\u003C/code> to verify your configuration is valid, check authentication status for all configured providers, and detect missing optional dependencies. The doctor command outputs a checklist showing what is working and what needs attention.\u003C/p>",{"headings":138,"localImagePaths":157,"remoteImagePaths":158,"frontmatter":159,"imagePaths":160},[139,142,145,148,151,154],{"depth":26,"slug":140,"text":141},"directory-structure","Directory structure",{"depth":26,"slug":143,"text":144},"model-configuration","Model configuration",{"depth":26,"slug":146,"text":147},"thinking-levels","Thinking levels",{"depth":26,"slug":149,"text":150},"environment-variables","Environment variables",{"depth":26,"slug":152,"text":153},"session-storage","Session storage",{"depth":26,"slug":155,"text":156},"diagnostics","Diagnostics",[],[],{"title":129,"description":130,"section":131,"order":105},[],"getting-started/configuration.md","reference/package-stack",{"id":162,"data":164,"body":168,"filePath":169,"digest":170,"rendered":171,"legacyId":191},{"title":165,"description":166,"section":167,"order":51},"Package Stack","Core and optional Pi packages bundled with Feynman.","Reference","Feynman is built on the Pi runtime and uses curated Pi packages for its capabilities. Packages are managed through `feynman packages` commands and configured in `~/.feynman/settings.json`.\n\n## Core packages\n\nThese are installed by default with every Feynman installation. They provide the foundation for all research workflows.\n\n| Package | Purpose |\n| --- | --- |\n| `pi-subagents` | Parallel agent spawning for literature gathering and task decomposition. Powers the multi-agent workflows |\n| `pi-btw` | Fast side-thread `/btw` conversations without interrupting the main research run |\n| `pi-docparser` | Parse PDFs, Office documents, spreadsheets, and images for content extraction |\n| `pi-web-access` | Web browsing, GitHub access, PDF fetching, and media retrieval |\n| `pi-markdown-preview` | Render Markdown and LaTeX-heavy research documents as polished HTML/PDF |\n| `@walterra/pi-charts` | Generate charts and quantitative visualizations from data |\n| `pi-mermaid` | Render Mermaid diagrams in the terminal UI |\n| `@aliou/pi-processes` | Manage long-running experiments, background tasks, and log tailing |\n| `pi-zotero` | Integration with Zotero for citation library management |\n| `pi-schedule-prompt` | Schedule recurring and deferred research jobs. Powers the `/watch` workflow |\n| `@tmustier/pi-ralph-wiggum` | Long-running agent loops for iterative development. Powers `/autoresearch` |\n\nThese packages are updated together when you run `feynman update`. You do not need to install them individually.\n\n## Optional packages\n\nInstall on demand with `feynman packages install \u003Cpreset>`. These extend Feynman with capabilities that not every user needs.\n\n| Package | Preset | Purpose |\n| --- | --- | --- |\n| `pi-generative-ui` | `generative-ui` | Interactive HTML-style widgets for rich output |\n| `@kaiserlich-dev/pi-session-search` | `session-search` | Indexed session recall with summarize and resume UI. Powers `/search` |\n| `@samfp/pi-memory` | `memory` | Automatic preference and correction memory across sessions |\n\n## Installing and managing packages\n\nList all available packages and their install status:\n\n```bash\nfeynman packages list\n```\n\nInstall a specific optional preset:\n\n```bash\nfeynman packages install session-search\nfeynman packages install memory\nfeynman packages install generative-ui\n```\n\nInstall all optional packages at once:\n\n```bash\nfeynman packages install all-extras\n```\n\n## Updating packages\n\nUpdate all installed packages to their latest versions:\n\n```bash\nfeynman update\n```\n\nUpdate a specific package:\n\n```bash\nfeynman update pi-subagents\n```\n\nRunning `feynman update` without arguments updates everything. Pass a specific package name to update just that one. Updates are safe and preserve your configuration.","src/content/docs/reference/package-stack.md","44b57303b320cb13",{"html":172,"metadata":173},"\u003Cp>Feynman is built on the Pi runtime and uses curated Pi packages for its capabilities. Packages are managed through \u003Ccode>feynman packages\u003C/code> commands and configured in \u003Ccode>~/.feynman/settings.json\u003C/code>.\u003C/p>\n\u003Ch2 id=\"core-packages\">Core packages\u003C/h2>\n\u003Cp>These are installed by default with every Feynman installation. They provide the foundation for all research workflows.\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 agent spawning for literature gathering and task decomposition. Powers the multi-agent workflows\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 research run\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-docparser\u003C/code>\u003C/td>\u003Ctd>Parse PDFs, Office documents, spreadsheets, and images for content extraction\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-web-access\u003C/code>\u003C/td>\u003Ctd>Web browsing, GitHub access, PDF fetching, and media retrieval\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-markdown-preview\u003C/code>\u003C/td>\u003Ctd>Render Markdown and LaTeX-heavy research documents as polished HTML/PDF\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@walterra/pi-charts\u003C/code>\u003C/td>\u003Ctd>Generate charts and quantitative visualizations from data\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-mermaid\u003C/code>\u003C/td>\u003Ctd>Render Mermaid diagrams in the terminal UI\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@aliou/pi-processes\u003C/code>\u003C/td>\u003Ctd>Manage long-running experiments, background tasks, and log tailing\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-zotero\u003C/code>\u003C/td>\u003Ctd>Integration with Zotero for citation library management\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>pi-schedule-prompt\u003C/code>\u003C/td>\u003Ctd>Schedule recurring and deferred research jobs. Powers the \u003Ccode>/watch\u003C/code> workflow\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@tmustier/pi-ralph-wiggum\u003C/code>\u003C/td>\u003Ctd>Long-running agent loops for iterative development. Powers \u003Ccode>/autoresearch\u003C/code>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These packages are updated together when you run \u003Ccode>feynman update\u003C/code>. You do not need to install them individually.\u003C/p>\n\u003Ch2 id=\"optional-packages\">Optional packages\u003C/h2>\n\u003Cp>Install on demand with \u003Ccode>feynman packages install <preset>\u003C/code>. These extend Feynman with capabilities that not every user needs.\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\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Package\u003C/th>\u003Cth>Preset\u003C/th>\u003Cth>Purpose\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>pi-generative-ui\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>generative-ui\u003C/code>\u003C/td>\u003Ctd>Interactive HTML-style widgets for rich output\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@kaiserlich-dev/pi-session-search\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>session-search\u003C/code>\u003C/td>\u003Ctd>Indexed session recall with summarize and resume UI. Powers \u003Ccode>/search\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>@samfp/pi-memory\u003C/code>\u003C/td>\u003Ctd>\u003Ccode>memory\u003C/code>\u003C/td>\u003Ctd>Automatic preference and correction memory across sessions\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"installing-and-managing-packages\">Installing and managing packages\u003C/h2>\n\u003Cp>List all available packages and their install status:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> list\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Install a specific optional preset:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> session-search\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> memory\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> generative-ui\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Install all optional packages at once:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> all-extras\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"updating-packages\">Updating packages\u003C/h2>\n\u003Cp>Update all installed packages to their latest versions:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> update\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Update a specific package:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> update\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> pi-subagents\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Running \u003Ccode>feynman update\u003C/code> without arguments updates everything. Pass a specific package name to update just that one. Updates are safe and preserve your configuration.\u003C/p>",{"headings":174,"localImagePaths":187,"remoteImagePaths":188,"frontmatter":189,"imagePaths":190},[175,178,181,184],{"depth":26,"slug":176,"text":177},"core-packages","Core packages",{"depth":26,"slug":179,"text":180},"optional-packages","Optional packages",{"depth":26,"slug":182,"text":183},"installing-and-managing-packages","Installing and managing packages",{"depth":26,"slug":185,"text":186},"updating-packages","Updating packages",[],[],{"title":165,"description":166,"section":167,"order":51},[],"reference/package-stack.md","reference/slash-commands",{"id":192,"data":194,"body":197,"filePath":198,"digest":199,"rendered":200,"legacyId":217},{"title":195,"description":196,"section":167,"order":26},"Slash Commands","Complete reference for REPL slash commands.","Slash commands are available inside the Feynman REPL. They map to research workflows, project management tools, and setup utilities. Type `/help` inside the REPL for the live command list, which may include additional commands from installed Pi packages.\n\n## Research workflows\n\n| Command | Description |\n| --- | --- |\n| `/deepresearch \u003Ctopic>` | Run a thorough, source-heavy investigation and produce a research brief with inline citations |\n| `/lit \u003Ctopic>` | Run a structured literature review with consensus, disagreements, and open questions |\n| `/review \u003Cartifact>` | Simulate a peer review with severity-graded feedback and inline annotations |\n| `/audit \u003Citem>` | Compare a paper's claims against its public codebase for mismatches and reproducibility risks |\n| `/replicate \u003Cpaper>` | Plan or execute a replication workflow for a paper, claim, or benchmark |\n| `/compare \u003Ctopic>` | Compare multiple sources and produce an agreement/disagreement matrix |\n| `/draft \u003Ctopic>` | Generate a paper-style draft from research findings |\n| `/autoresearch \u003Cidea>` | Start an autonomous experiment loop that iteratively optimizes toward a goal |\n| `/watch \u003Ctopic>` | Set up recurring research monitoring on a topic |\n\nThese are the primary commands you will use day-to-day. Each workflow dispatches one or more specialized agents (researcher, reviewer, writer, verifier) depending on the task.\n\n## Project and 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 work: running processes, scheduled follow-ups, and active watches |\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 new research project |\n| `/outputs` | Browse all research artifacts (papers, outputs, experiments, notes) |\n| `/search` | Search prior session transcripts for past research and findings |\n| `/preview` | Preview the current artifact as rendered HTML or PDF |\n\nSession management commands help you organize ongoing work. The `/log` command is particularly useful at the end of a research session to capture what was accomplished and what remains.\n\n## Running workflows from the CLI\n\nAll research workflow slash commands can also be run directly from the command line:\n\n```bash\nfeynman deepresearch \"topic\"\nfeynman lit \"topic\"\nfeynman review artifact.md\nfeynman audit 2401.12345\nfeynman replicate \"claim\"\nfeynman compare \"topic\"\nfeynman draft \"topic\"\n```\n\nThis is equivalent to launching the REPL and typing the slash command. The CLI form is useful for scripting and automation.","src/content/docs/reference/slash-commands.md","9ebea515c6a955a8",{"html":201,"metadata":202},"\u003Cp>Slash commands are available inside the Feynman REPL. They map to research workflows, project management tools, and setup utilities. Type \u003Ccode>/help\u003C/code> inside the REPL for the live command list, which may include additional commands from installed Pi packages.\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 and produce a research brief with inline citations\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/lit <topic>\u003C/code>\u003C/td>\u003Ctd>Run a structured literature review with consensus, disagreements, and open questions\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/review <artifact>\u003C/code>\u003C/td>\u003Ctd>Simulate a peer review with severity-graded feedback and inline annotations\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/audit <item>\u003C/code>\u003C/td>\u003Ctd>Compare a paper’s claims against its public codebase for mismatches 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 and produce an agreement/disagreement matrix\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/draft <topic>\u003C/code>\u003C/td>\u003Ctd>Generate a paper-style draft from research findings\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/autoresearch <idea>\u003C/code>\u003C/td>\u003Ctd>Start an autonomous experiment loop that iteratively optimizes toward a goal\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/watch <topic>\u003C/code>\u003C/td>\u003Ctd>Set up recurring research monitoring on a topic\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These are the primary commands you will use day-to-day. Each workflow dispatches one or more specialized agents (researcher, reviewer, writer, verifier) depending on the task.\u003C/p>\n\u003Ch2 id=\"project-and-session\">Project and 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\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 work: running processes, scheduled follow-ups, and active watches\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 \u003Ccode>AGENTS.md\u003C/code> and session-log folders for a new research project\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/outputs\u003C/code>\u003C/td>\u003Ctd>Browse all research artifacts (papers, outputs, experiments, notes)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/search\u003C/code>\u003C/td>\u003Ctd>Search prior session transcripts for past research and findings\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>/preview\u003C/code>\u003C/td>\u003Ctd>Preview the current artifact as rendered HTML or PDF\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>Session management commands help you organize ongoing work. The \u003Ccode>/log\u003C/code> command is particularly useful at the end of a research session to capture what was accomplished and what remains.\u003C/p>\n\u003Ch2 id=\"running-workflows-from-the-cli\">Running workflows from the CLI\u003C/h2>\n\u003Cp>All research workflow slash commands can also be run directly from the command line:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> artifact.md\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This is equivalent to launching the REPL and typing the slash command. The CLI form is useful for scripting and automation.\u003C/p>",{"headings":203,"localImagePaths":213,"remoteImagePaths":214,"frontmatter":215,"imagePaths":216},[204,207,210],{"depth":26,"slug":205,"text":206},"research-workflows","Research workflows",{"depth":26,"slug":208,"text":209},"project-and-session","Project and session",{"depth":26,"slug":211,"text":212},"running-workflows-from-the-cli","Running workflows from the CLI",[],[],{"title":195,"description":196,"section":167,"order":26},[],"reference/slash-commands.md","getting-started/quickstart",{"id":218,"data":220,"body":223,"filePath":224,"digest":225,"rendered":226,"legacyId":249},{"title":221,"description":222,"section":131,"order":26},"Quick Start","Get up and running with Feynman in under five minutes.","This guide assumes you have already [installed Feynman](/docs/getting-started/installation) and run `feynman setup`. If not, start there first.\n\n## Launch the REPL\n\nStart an interactive session by running:\n\n```bash\nfeynman\n```\n\nYou are dropped into a conversational REPL where you can ask research questions, run workflows, and interact with agents in natural language. Type your question and press Enter.\n\n## Run a one-shot prompt\n\nIf you want a quick answer without entering the REPL, use the `--prompt` flag:\n\n```bash\nfeynman --prompt \"Summarize the key findings of Attention Is All You Need\"\n```\n\nFeynman processes the prompt, prints the response, and exits. This is useful for scripting or piping output into other tools.\n\n## Start a deep research session\n\nDeep research is the flagship workflow. It dispatches multiple agents to search, read, cross-reference, and synthesize information from academic papers and the web:\n\n```bash\nfeynman\n> /deepresearch What are the current approaches to mechanistic interpretability in LLMs?\n```\n\nThe agents collaborate to produce a structured research report with citations, key findings, and open questions. The full report is saved to your session directory for later reference.\n\n## Work with files\n\nFeynman can read and write files in your working directory. Point it at a paper or codebase for targeted analysis:\n\n```bash\nfeynman --cwd ~/papers\n> /review arxiv:2301.07041\n```\n\nYou can also ask Feynman to draft documents, audit code, or compare multiple sources by referencing local files directly in your prompts.\n\n## Explore slash commands\n\nType `/help` inside the REPL to see all available slash commands. Each command maps to a workflow or utility, such as `/deepresearch`, `/review`, `/draft`, `/watch`, and more. You can also run any workflow directly from the CLI:\n\n```bash\nfeynman deepresearch \"transformer architectures for protein folding\"\n```\n\nSee the [Slash Commands reference](/docs/reference/slash-commands) for the complete list.","src/content/docs/getting-started/quickstart.md","1b6feb1130945a05",{"html":227,"metadata":228},"\u003Cp>This guide assumes you have already \u003Ca href=\"/docs/getting-started/installation\">installed Feynman\u003C/a> and run \u003Ccode>feynman setup\u003C/code>. If not, start there first.\u003C/p>\n\u003Ch2 id=\"launch-the-repl\">Launch the REPL\u003C/h2>\n\u003Cp>Start an interactive session by running:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You are dropped into a conversational REPL where you can ask research questions, run workflows, and interact with agents in natural language. Type your question and press Enter.\u003C/p>\n\u003Ch2 id=\"run-a-one-shot-prompt\">Run a one-shot prompt\u003C/h2>\n\u003Cp>If you want a quick answer without entering the REPL, use the \u003Ccode>--prompt\u003C/code> flag:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --prompt\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Summarize the key findings of Attention Is All You Need\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Feynman processes the prompt, prints the response, and exits. This is useful for scripting or piping output into other tools.\u003C/p>\n\u003Ch2 id=\"start-a-deep-research-session\">Start a deep research session\u003C/h2>\n\u003Cp>Deep research is the flagship workflow. It dispatches multiple agents to search, read, cross-reference, and synthesize information from academic papers and the web:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">>\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> /deepresearch What are the current approaches to mechanistic interpretability in LLMs\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">?\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The agents collaborate to produce a structured research report with citations, key findings, and open questions. The full report is saved to your session directory for later reference.\u003C/p>\n\u003Ch2 id=\"work-with-files\">Work with files\u003C/h2>\n\u003Cp>Feynman can read and write files in your working directory. Point it at a paper or codebase for targeted analysis:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --cwd\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> ~/papers\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">>\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> /review arxiv:2301.07041\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also ask Feynman to draft documents, audit code, or compare multiple sources by referencing local files directly in your prompts.\u003C/p>\n\u003Ch2 id=\"explore-slash-commands\">Explore slash commands\u003C/h2>\n\u003Cp>Type \u003Ccode>/help\u003C/code> inside the REPL to see all available slash commands. Each command maps to a workflow or utility, such as \u003Ccode>/deepresearch\u003C/code>, \u003Ccode>/review\u003C/code>, \u003Ccode>/draft\u003C/code>, \u003Ccode>/watch\u003C/code>, and more. You can also run any workflow directly from the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">transformer architectures for protein folding\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>See the \u003Ca href=\"/docs/reference/slash-commands\">Slash Commands reference\u003C/a> for the complete list.\u003C/p>",{"headings":229,"localImagePaths":245,"remoteImagePaths":246,"frontmatter":247,"imagePaths":248},[230,233,236,239,242],{"depth":26,"slug":231,"text":232},"launch-the-repl","Launch the REPL",{"depth":26,"slug":234,"text":235},"run-a-one-shot-prompt","Run a one-shot prompt",{"depth":26,"slug":237,"text":238},"start-a-deep-research-session","Start a deep research session",{"depth":26,"slug":240,"text":241},"work-with-files","Work with files",{"depth":26,"slug":243,"text":244},"explore-slash-commands","Explore slash commands",[],[],{"title":221,"description":222,"section":131,"order":26},[],"getting-started/quickstart.md","reference/cli-commands",{"id":250,"data":252,"body":255,"filePath":256,"digest":257,"rendered":258,"legacyId":287},{"title":253,"description":254,"section":167,"order":17},"CLI Commands","Complete reference for all Feynman CLI commands and flags.","This page covers the dedicated Feynman CLI commands and flags. Workflow commands like `feynman deepresearch` are also documented in the [Slash Commands](/docs/reference/slash-commands) reference since they map directly to REPL slash commands.\n\n## Core commands\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 (model, auth, packages) |\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 for all sessions |\n\nThese commands manage your model provider configuration. The `model set` command updates `~/.feynman/settings.json` with the new default. The format is `provider:model-name`, for example `anthropic:claude-sonnet-4-20250514`.\n\n## AlphaXiv commands\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\nAlphaXiv authentication enables Feynman to search and retrieve papers, access discussion threads, and pull citation metadata. The `alpha` CLI is also available directly in the agent shell for paper search, Q&A, and code inspection.\n\n## Package management\n\n| Command | Description |\n| --- | --- |\n| `feynman packages list` | List all available packages and their install status |\n| `feynman packages install \u003Cpreset>` | Install an optional package preset |\n| `feynman update [package]` | Update installed packages, or a specific package by name |\n\nUse `feynman packages list` to see which optional packages are available and which are already installed. The `all-extras` preset installs every optional package at once.\n\n## Utility commands\n\n| Command | Description |\n| --- | --- |\n| `feynman search status` | Show Pi web-access status and config path |\n\n## Workflow commands\n\nAll research workflow slash commands can also be invoked directly from the CLI:\n\n```bash\nfeynman deepresearch \"topic\"\nfeynman lit \"topic\"\nfeynman review artifact.md\nfeynman audit 2401.12345\nfeynman replicate \"claim\"\nfeynman compare \"topic\"\nfeynman draft \"topic\"\n```\n\nThese are equivalent to launching the REPL and typing the corresponding slash command.\n\n## Flags\n\n| Flag | Description |\n| --- | --- |\n| `--prompt \"\u003Ctext>\"` | Run one prompt and exit (one-shot mode) |\n| `--model \u003Cprovider:model>` | Force a specific model for this session |\n| `--thinking \u003Clevel>` | Set thinking level: `off`, `minimal`, `low`, `medium`, `high`, `xhigh` |\n| `--cwd \u003Cpath>` | Set the working directory for all file operations |\n| `--session-dir \u003Cpath>` | Set the session storage directory |\n| `--new-session` | Start a new persisted session |\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| `--doctor` | Alias for `feynman doctor` |\n| `--setup-preview` | Install preview dependencies (pandoc) |","src/content/docs/reference/cli-commands.md","ef5c412143f9928f",{"html":259,"metadata":260},"\u003Cp>This page covers the dedicated Feynman CLI commands and flags. Workflow commands like \u003Ccode>feynman deepresearch\u003C/code> are also documented in the \u003Ca href=\"/docs/reference/slash-commands\">Slash Commands\u003C/a> reference since they map directly to REPL slash commands.\u003C/p>\n\u003Ch2 id=\"core-commands\">Core commands\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 (model, auth, packages)\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 for all sessions\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>These commands manage your model provider configuration. The \u003Ccode>model set\u003C/code> command updates \u003Ccode>~/.feynman/settings.json\u003C/code> with the new default. The format is \u003Ccode>provider:model-name\u003C/code>, for example \u003Ccode>anthropic:claude-sonnet-4-20250514\u003C/code>.\u003C/p>\n\u003Ch2 id=\"alphaxiv-commands\">AlphaXiv commands\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\u003Cp>AlphaXiv authentication enables Feynman to search and retrieve papers, access discussion threads, and pull citation metadata. The \u003Ccode>alpha\u003C/code> CLI is also available directly in the agent shell for paper search, Q&A, and code inspection.\u003C/p>\n\u003Ch2 id=\"package-management\">Package 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\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Command\u003C/th>\u003Cth>Description\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>feynman packages list\u003C/code>\u003C/td>\u003Ctd>List all available packages and their install status\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman packages install <preset>\u003C/code>\u003C/td>\u003Ctd>Install an optional package preset\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>feynman update [package]\u003C/code>\u003C/td>\u003Ctd>Update installed packages, or a specific package by name\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>Use \u003Ccode>feynman packages list\u003C/code> to see which optional packages are available and which are already installed. The \u003Ccode>all-extras\u003C/code> preset installs every optional package at once.\u003C/p>\n\u003Ch2 id=\"utility-commands\">Utility commands\u003C/h2>\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>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"workflow-commands\">Workflow commands\u003C/h2>\n\u003Cp>All research workflow slash commands can also be invoked directly from the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> artifact.md\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>These are equivalent to launching the REPL and typing the corresponding slash command.\u003C/p>\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 (one-shot mode)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--model <provider:model>\u003C/code>\u003C/td>\u003Ctd>Force a specific model for this session\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--thinking <level>\u003C/code>\u003C/td>\u003Ctd>Set thinking level: \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/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>--cwd <path>\u003C/code>\u003C/td>\u003Ctd>Set the working directory for all file operations\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>--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>--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>Install preview dependencies (pandoc)\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":261,"localImagePaths":283,"remoteImagePaths":284,"frontmatter":285,"imagePaths":286},[262,265,268,271,274,277,280],{"depth":26,"slug":263,"text":264},"core-commands","Core commands",{"depth":26,"slug":266,"text":267},"model-management","Model management",{"depth":26,"slug":269,"text":270},"alphaxiv-commands","AlphaXiv commands",{"depth":26,"slug":272,"text":273},"package-management","Package management",{"depth":26,"slug":275,"text":276},"utility-commands","Utility commands",{"depth":26,"slug":278,"text":279},"workflow-commands","Workflow commands",{"depth":26,"slug":281,"text":282},"flags","Flags",[],[],{"title":253,"description":254,"section":167,"order":17},[],"reference/cli-commands.md","getting-started/installation",{"id":288,"data":290,"body":293,"filePath":294,"digest":295,"rendered":296,"legacyId":323},{"title":291,"description":292,"section":131,"order":17},"Installation","Install Feynman on macOS, Linux, or Windows using curl, pnpm, or bun.","Feynman ships as a standalone runtime bundle for macOS, Linux, and Windows, and as a package-manager install for environments where Node.js is already installed. The recommended approach is the one-line installer, which downloads a prebuilt native bundle with zero external runtime dependencies.\n\n## One-line installer (recommended)\n\nOn **macOS or Linux**, open a terminal and run:\n\n```bash\ncurl -fsSL https://feynman.is/install | bash\n```\n\nThe installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The launcher is installed to `~/.local/bin`, the bundled runtime is unpacked into `~/.local/share/feynman`, and your `PATH` is updated when needed.\n\nIf you previously installed Feynman via `npm`, `pnpm`, or `bun` and still see local Node.js errors after a curl install, your shell is probably still resolving the older global binary first. Run `which -a feynman`, then `hash -r`, or launch the standalone shim directly with `~/.local/bin/feynman`.\n\nBy default, the one-line installer tracks the rolling `edge` channel from `main`.\n\nOn **Windows**, open PowerShell as Administrator and run:\n\n```powershell\nirm https://feynman.is/install.ps1 | iex\n```\n\nThis installs the Windows runtime bundle under `%LOCALAPPDATA%\\Programs\\feynman`, adds its launcher to your user `PATH`, and lets you re-run the installer at any time to update.\n\n## Stable or pinned releases\n\nIf you want the latest tagged release instead of the rolling `edge` channel:\n\n```bash\ncurl -fsSL https://feynman.is/install | bash -s -- stable\n```\n\nOn Windows:\n\n```powershell\n& ([scriptblock]::Create((irm https://feynman.is/install.ps1))) -Version stable\n```\n\nYou can also pin an exact version by replacing `stable` with a version such as `0.2.14`.\n\n## pnpm\n\nIf you already have Node.js `20.18.1` or newer installed, you can install Feynman globally via `pnpm`:\n\n```bash\npnpm add -g @companion-ai/feynman\n```\n\nOr run it directly without installing:\n\n```bash\npnpm dlx @companion-ai/feynman\n```\n\n## bun\n\n`bun add -g` and `bunx` still use your local Node runtime for Feynman itself, so the same Node.js `20.18.1+` requirement applies.\n\n```bash\nbun add -g @companion-ai/feynman\n```\n\nOr run it directly without installing:\n\n```bash\nbunx @companion-ai/feynman\n```\n\nBoth package-manager distributions ship the same core application but depend on Node.js being present on your system. The standalone installer is preferred because it bundles its own Node runtime and works without a separate Node installation.\n\n## Post-install setup\n\nAfter installation, run the guided setup wizard to configure your model provider and API keys:\n\n```bash\nfeynman setup\n```\n\nThis walks you through selecting a default model, authenticating with your provider, and optionally installing extra packages for features like web search and document preview. See the [Setup guide](/docs/getting-started/setup) for a detailed walkthrough.\n\n## Verifying the installation\n\nConfirm Feynman is installed and accessible:\n\n```bash\nfeynman --version\n```\n\nIf you see a version number, you are ready to go. Run `feynman doctor` at any time to diagnose configuration issues, missing dependencies, or authentication problems.\n\n## Local development\n\nFor contributing or running Feynman from source:\n\n```bash\ngit clone https://github.com/getcompanion-ai/feynman.git\ncd feynman\nnvm use || nvm install\npnpm install\npnpm start\n```","src/content/docs/getting-started/installation.md","f901695bf662138b",{"html":297,"metadata":298},"\u003Cp>Feynman ships as a standalone runtime bundle for macOS, Linux, and Windows, and as a package-manager install for environments where Node.js is already installed. The recommended approach is the one-line installer, which downloads a prebuilt native bundle with zero external runtime dependencies.\u003C/p>\n\u003Ch2 id=\"one-line-installer-recommended\">One-line installer (recommended)\u003C/h2>\n\u003Cp>On \u003Cstrong>macOS or Linux\u003C/strong>, open a terminal and run:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">curl\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -fsSL\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://feynman.is/install\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\"> |\u003C/span>\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\"> bash\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The launcher is installed to \u003Ccode>~/.local/bin\u003C/code>, the bundled runtime is unpacked into \u003Ccode>~/.local/share/feynman\u003C/code>, and your \u003Ccode>PATH\u003C/code> is updated when needed.\u003C/p>\n\u003Cp>If you previously installed Feynman via \u003Ccode>npm\u003C/code>, \u003Ccode>pnpm\u003C/code>, or \u003Ccode>bun\u003C/code> and still see local Node.js errors after a curl install, your shell is probably still resolving the older global binary first. Run \u003Ccode>which -a feynman\u003C/code>, then \u003Ccode>hash -r\u003C/code>, or launch the standalone shim directly with \u003Ccode>~/.local/bin/feynman\u003C/code>.\u003C/p>\n\u003Cp>By default, the one-line installer tracks the rolling \u003Ccode>edge\u003C/code> channel from \u003Ccode>main\u003C/code>.\u003C/p>\n\u003Cp>On \u003Cstrong>Windows\u003C/strong>, open PowerShell as Administrator and run:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">irm https:\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">//\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">feynman.is\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">/\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">install.ps1 \u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">|\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\"> iex\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This installs the Windows runtime bundle under \u003Ccode>%LOCALAPPDATA%\\Programs\\feynman\u003C/code>, adds its launcher to your user \u003Ccode>PATH\u003C/code>, and lets you re-run the installer at any time to update.\u003C/p>\n\u003Ch2 id=\"stable-or-pinned-releases\">Stable or pinned releases\u003C/h2>\n\u003Cp>If you want the latest tagged release instead of the rolling \u003Ccode>edge\u003C/code> channel:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">curl\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -fsSL\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://feynman.is/install\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\"> |\u003C/span>\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\"> bash\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -s\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> stable\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>On Windows:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">&\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\"> ([\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\">scriptblock\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">]\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">::Create\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">((\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">irm https:\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">//\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">feynman.is\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">/\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">install.ps1\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">)))\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\"> -\u003C/span>\u003Cspan style=\"color:#393A34;--shiki-dark:#DBD7CAEE\">Version stable\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also pin an exact version by replacing \u003Ccode>stable\u003C/code> with a version such as \u003Ccode>0.2.14\u003C/code>.\u003C/p>\n\u003Ch2 id=\"pnpm\">pnpm\u003C/h2>\n\u003Cp>If you already have Node.js \u003Ccode>20.18.1\u003C/code> or newer installed, you can install Feynman globally via \u003Ccode>pnpm\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">pnpm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> add\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -g\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Or run it directly without installing:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">pnpm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> dlx\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"bun\">bun\u003C/h2>\n\u003Cp>\u003Ccode>bun add -g\u003C/code> and \u003Ccode>bunx\u003C/code> still use your local Node runtime for Feynman itself, so the same Node.js \u003Ccode>20.18.1+\u003C/code> requirement applies.\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">bun\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> add\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> -g\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Or run it directly without installing:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">bunx\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> @companion-ai/feynman\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Both package-manager distributions ship the same core application but depend on Node.js being present on your system. The standalone installer is preferred because it bundles its own Node runtime and works without a separate Node installation.\u003C/p>\n\u003Ch2 id=\"post-install-setup\">Post-install setup\u003C/h2>\n\u003Cp>After installation, run the guided setup wizard to configure your model provider and API keys:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> setup\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This walks you through selecting a default model, authenticating with your provider, and optionally installing extra packages for features like web search and document preview. See the \u003Ca href=\"/docs/getting-started/setup\">Setup guide\u003C/a> for a detailed walkthrough.\u003C/p>\n\u003Ch2 id=\"verifying-the-installation\">Verifying the installation\u003C/h2>\n\u003Cp>Confirm Feynman is installed and accessible:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --version\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>If you see a version number, you are ready to go. Run \u003Ccode>feynman doctor\u003C/code> at any time to diagnose configuration issues, missing dependencies, or authentication problems.\u003C/p>\n\u003Ch2 id=\"local-development\">Local development\u003C/h2>\n\u003Cp>For contributing or running Feynman from source:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">git\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> clone\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://github.com/getcompanion-ai/feynman.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">cd\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> feynman\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">nvm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> use\u003C/span>\u003Cspan style=\"color:#AB5959;--shiki-dark:#CB7676\"> ||\u003C/span>\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\"> nvm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">pnpm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">pnpm\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> start\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":299,"localImagePaths":319,"remoteImagePaths":320,"frontmatter":321,"imagePaths":322},[300,303,306,308,310,313,316],{"depth":26,"slug":301,"text":302},"one-line-installer-recommended","One-line installer (recommended)",{"depth":26,"slug":304,"text":305},"stable-or-pinned-releases","Stable or pinned releases",{"depth":26,"slug":307,"text":307},"pnpm",{"depth":26,"slug":309,"text":309},"bun",{"depth":26,"slug":311,"text":312},"post-install-setup","Post-install setup",{"depth":26,"slug":314,"text":315},"verifying-the-installation","Verifying the installation",{"depth":26,"slug":317,"text":318},"local-development","Local development",[],[],{"title":291,"description":292,"section":131,"order":17},[],"getting-started/installation.md","workflows/compare",{"id":324,"data":326,"body":331,"filePath":332,"digest":333,"rendered":334,"legacyId":354},{"title":327,"description":328,"section":329,"order":330},"Source Comparison","Compare multiple sources and produce an agreement/disagreement matrix.","Workflows",6,"The source comparison workflow analyzes multiple papers, articles, or documents side by side and produces a structured matrix showing where they agree, disagree, and differ in methodology. It is useful for understanding conflicting results, evaluating competing approaches, and identifying which claims have broad support versus limited evidence.\n\n## Usage\n\nFrom the REPL:\n\n```\n/compare \"GPT-4 vs Claude vs Gemini on reasoning benchmarks\"\n```\n\n```\n/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111\n```\n\nFrom the CLI:\n\n```bash\nfeynman compare \"topic or list of sources\"\n```\n\nYou can provide a topic and let Feynman find the sources, or list specific papers and documents for a targeted comparison.\n\n## How it works\n\nThe comparison workflow begins by identifying or retrieving the sources to compare. If you provide a topic, the researcher agents find the most relevant and contrasting papers. If you provide specific IDs or files, they are used directly.\n\nEach source is analyzed independently first: the researcher agents extract claims, results, methodology, and limitations from each document. Then the comparison engine aligns claims across sources -- identifying where two papers make the same claim (agreement), where they report contradictory results (disagreement), and where they measure different things entirely (non-overlapping scope).\n\nThe alignment step handles the nuance that papers often measure slightly different quantities or use different evaluation protocols. The comparison explicitly notes when an apparent disagreement might be explained by methodological differences rather than genuine conflicting results.\n\n## Output format\n\nThe comparison produces:\n\n- **Source Summaries** -- One-paragraph summary of each source's key contributions\n- **Agreement Matrix** -- Claims supported by multiple sources with citation evidence\n- **Disagreement Matrix** -- Conflicting claims with analysis of why sources diverge\n- **Methodology Differences** -- How the sources differ in approach, data, and evaluation\n- **Synthesis** -- An overall assessment of which claims are well-supported and which remain contested\n\n## When to use it\n\nUse `/compare` when you encounter contradictory results in the literature, when evaluating competing approaches to the same problem, or when you need to understand how different research groups frame the same topic. It is also useful for writing related work sections where you need to accurately characterize the state of debate.","src/content/docs/workflows/compare.md","2ce03f852c0bb425",{"html":335,"metadata":336},"\u003Cp>The source comparison workflow analyzes multiple papers, articles, or documents side by side and produces a structured matrix showing where they agree, disagree, and differ in methodology. It is useful for understanding conflicting results, evaluating competing approaches, and identifying which claims have broad support versus limited evidence.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare \"GPT-4 vs Claude vs Gemini on reasoning benchmarks\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> compare\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">topic or list of sources\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can provide a topic and let Feynman find the sources, or list specific papers and documents for a targeted comparison.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The comparison workflow begins by identifying or retrieving the sources to compare. If you provide a topic, the researcher agents find the most relevant and contrasting papers. If you provide specific IDs or files, they are used directly.\u003C/p>\n\u003Cp>Each source is analyzed independently first: the researcher agents extract claims, results, methodology, and limitations from each document. Then the comparison engine aligns claims across sources — identifying where two papers make the same claim (agreement), where they report contradictory results (disagreement), and where they measure different things entirely (non-overlapping scope).\u003C/p>\n\u003Cp>The alignment step handles the nuance that papers often measure slightly different quantities or use different evaluation protocols. The comparison explicitly notes when an apparent disagreement might be explained by methodological differences rather than genuine conflicting results.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The comparison produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Source Summaries\u003C/strong> — One-paragraph summary of each source’s key contributions\u003C/li>\n\u003Cli>\u003Cstrong>Agreement Matrix\u003C/strong> — Claims supported by multiple sources with citation evidence\u003C/li>\n\u003Cli>\u003Cstrong>Disagreement Matrix\u003C/strong> — Conflicting claims with analysis of why sources diverge\u003C/li>\n\u003Cli>\u003Cstrong>Methodology Differences\u003C/strong> — How the sources differ in approach, data, and evaluation\u003C/li>\n\u003Cli>\u003Cstrong>Synthesis\u003C/strong> — An overall assessment of which claims are well-supported and which remain contested\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/compare\u003C/code> when you encounter contradictory results in the literature, when evaluating competing approaches to the same problem, or when you need to understand how different research groups frame the same topic. It is also useful for writing related work sections where you need to accurately characterize the state of debate.\u003C/p>",{"headings":337,"localImagePaths":350,"remoteImagePaths":351,"frontmatter":352,"imagePaths":353},[338,341,344,347],{"depth":26,"slug":339,"text":340},"usage","Usage",{"depth":26,"slug":342,"text":343},"how-it-works","How it works",{"depth":26,"slug":345,"text":346},"output-format","Output format",{"depth":26,"slug":348,"text":349},"when-to-use-it","When to use it",[],[],{"title":327,"description":328,"section":329,"order":330},[],"workflows/compare.md","workflows/autoresearch",{"id":355,"data":357,"body":361,"filePath":362,"digest":363,"rendered":364,"legacyId":379},{"title":358,"description":359,"section":329,"order":360},"Autoresearch","Start an autonomous experiment loop that iteratively optimizes toward a goal.",8,"The autoresearch workflow launches an autonomous research loop that iteratively designs experiments, runs them, analyzes results, and proposes next steps. It is designed for open-ended exploration where the goal is optimization or discovery rather than a specific answer.\n\n## Usage\n\nFrom the REPL:\n\n```\n/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8K\n```\n\nFrom the CLI:\n\n```bash\nfeynman autoresearch \"Optimize prompt engineering strategies for math reasoning on GSM8K\"\n```\n\nAutoresearch runs as a long-lived background process. You can monitor its progress, pause it, or redirect its focus at any time.\n\n## How it works\n\nThe autoresearch workflow is powered by `@tmustier/pi-ralph-wiggum`, which provides long-running agent loops. The workflow begins by analyzing the research goal and designing an initial experiment plan. It then enters an iterative loop:\n\n1. **Hypothesis** -- The agent proposes a hypothesis or modification based on current results\n2. **Experiment** -- It designs and executes an experiment to test the hypothesis\n3. **Analysis** -- Results are analyzed and compared against prior iterations\n4. **Decision** -- The agent decides whether to continue the current direction, try a variation, or pivot to a new approach\n\nEach iteration builds on the previous ones. The agent maintains a running log of what has been tried, what worked, what failed, and what the current best result is. This prevents repeating failed approaches and ensures the search progresses efficiently.\n\n## Monitoring and control\n\nCheck active autoresearch jobs:\n\n```\n/jobs\n```\n\nAutoresearch runs in the background, so you can continue using Feynman for other tasks while it works. The `/jobs` command shows the current status, iteration count, and best result so far. You can interrupt the loop at any time to provide guidance or redirect the search.\n\n## Output format\n\nAutoresearch produces a running experiment log that includes:\n\n- **Experiment History** -- What was tried in each iteration with parameters and results\n- **Best Configuration** -- The best-performing setup found so far\n- **Ablation Results** -- Which factors mattered most based on the experiments run\n- **Recommendations** -- Suggested next steps based on observed trends\n\n## When to use it\n\nUse `/autoresearch` for tasks that benefit from iterative exploration: hyperparameter optimization, prompt engineering, architecture search, or any problem where the search space is large and the feedback signal is clear. It is not the right tool for answering a specific question (use `/deepresearch` for that) but excels at finding what works best through systematic experimentation.","src/content/docs/workflows/autoresearch.md","c7a88b0036aea407",{"html":365,"metadata":366},"\u003Cp>The autoresearch workflow launches an autonomous research loop that iteratively designs experiments, runs them, analyzes results, and proposes next steps. It is designed for open-ended exploration where the goal is optimization or discovery rather than a specific answer.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8K\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> autoresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Optimize prompt engineering strategies for math reasoning on GSM8K\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Autoresearch runs as a long-lived background process. You can monitor its progress, pause it, or redirect its focus at any time.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The autoresearch workflow is powered by \u003Ccode>@tmustier/pi-ralph-wiggum\u003C/code>, which provides long-running agent loops. The workflow begins by analyzing the research goal and designing an initial experiment plan. It then enters an iterative loop:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Hypothesis\u003C/strong> — The agent proposes a hypothesis or modification based on current results\u003C/li>\n\u003Cli>\u003Cstrong>Experiment\u003C/strong> — It designs and executes an experiment to test the hypothesis\u003C/li>\n\u003Cli>\u003Cstrong>Analysis\u003C/strong> — Results are analyzed and compared against prior iterations\u003C/li>\n\u003Cli>\u003Cstrong>Decision\u003C/strong> — The agent decides whether to continue the current direction, try a variation, or pivot to a new approach\u003C/li>\n\u003C/ol>\n\u003Cp>Each iteration builds on the previous ones. The agent maintains a running log of what has been tried, what worked, what failed, and what the current best result is. This prevents repeating failed approaches and ensures the search progresses efficiently.\u003C/p>\n\u003Ch2 id=\"monitoring-and-control\">Monitoring and control\u003C/h2>\n\u003Cp>Check active autoresearch jobs:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/jobs\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Autoresearch runs in the background, so you can continue using Feynman for other tasks while it works. The \u003Ccode>/jobs\u003C/code> command shows the current status, iteration count, and best result so far. You can interrupt the loop at any time to provide guidance or redirect the search.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Autoresearch produces a running experiment log that includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Experiment History\u003C/strong> — What was tried in each iteration with parameters and results\u003C/li>\n\u003Cli>\u003Cstrong>Best Configuration\u003C/strong> — The best-performing setup found so far\u003C/li>\n\u003Cli>\u003Cstrong>Ablation Results\u003C/strong> — Which factors mattered most based on the experiments run\u003C/li>\n\u003Cli>\u003Cstrong>Recommendations\u003C/strong> — Suggested next steps based on observed trends\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/autoresearch\u003C/code> for tasks that benefit from iterative exploration: hyperparameter optimization, prompt engineering, architecture search, or any problem where the search space is large and the feedback signal is clear. It is not the right tool for answering a specific question (use \u003Ccode>/deepresearch\u003C/code> for that) but excels at finding what works best through systematic experimentation.\u003C/p>",{"headings":367,"localImagePaths":375,"remoteImagePaths":376,"frontmatter":377,"imagePaths":378},[368,369,370,373,374],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":371,"text":372},"monitoring-and-control","Monitoring and control",{"depth":26,"slug":345,"text":346},{"depth":26,"slug":348,"text":349},[],[],{"title":358,"description":359,"section":329,"order":360},[],"workflows/autoresearch.md","getting-started/setup",{"id":380,"data":382,"body":385,"filePath":386,"digest":387,"rendered":388,"legacyId":411},{"title":383,"description":384,"section":131,"order":51},"Setup","Walk through the guided setup wizard to configure Feynman.","The `feynman setup` wizard configures your model provider, API keys, and optional packages. It runs automatically on first launch, but you can re-run it at any time to change your configuration.\n\n## Running setup\n\n```bash\nfeynman setup\n```\n\nThe wizard walks you through three stages: model configuration, authentication, and optional package installation.\n\n## Stage 1: Model selection\n\nFeynman supports multiple model providers. The setup wizard presents a list of available providers and models. Select your preferred default model using the arrow keys:\n\n```\n? Select your default model:\n anthropic:claude-sonnet-4-20250514\n> anthropic:claude-opus-4-20250514\n openai:gpt-4o\n openai:o3\n google:gemini-2.5-pro\n```\n\nThe model you choose here becomes the default for all sessions. You can override it per-session with the `--model` flag or change it later via `feynman model set \u003Cprovider:model>`.\n\n## Stage 2: Authentication\n\nDepending on your chosen provider, setup prompts you for an API key or walks you through OAuth login. For providers that support Pi OAuth (like Anthropic and OpenAI), Feynman opens a browser window to complete the sign-in flow. Your credentials are stored securely in the Pi auth storage at `~/.feynman/`.\n\nFor API key providers, you are prompted to paste your key directly:\n\n```\n? Enter your API key: sk-ant-...\n```\n\nKeys are encrypted at rest and never sent anywhere except the provider's API endpoint.\n\n## Stage 3: Optional packages\n\nFeynman's core ships with the essentials, but some features require additional packages. The wizard asks if you want to install optional presets:\n\n- **session-search** -- Enables searching prior session transcripts for past research\n- **memory** -- Automatic preference and correction memory across sessions\n- **generative-ui** -- Interactive HTML-style widgets for rich output\n\nYou can skip this step and install packages later with `feynman packages install \u003Cpreset>`.\n\n## Re-running setup\n\nConfiguration is stored in `~/.feynman/settings.json`. Running `feynman setup` again overwrites previous settings. If you only need to change a specific value, edit the config file directly or use the targeted commands like `feynman model set` or `feynman alpha login`.","src/content/docs/getting-started/setup.md","7a38dcb8196712db",{"html":389,"metadata":390},"\u003Cp>The \u003Ccode>feynman setup\u003C/code> wizard configures your model provider, API keys, and optional packages. It runs automatically on first launch, but you can re-run it at any time to change your configuration.\u003C/p>\n\u003Ch2 id=\"running-setup\">Running setup\u003C/h2>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> setup\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The wizard walks you through three stages: model configuration, authentication, and optional package installation.\u003C/p>\n\u003Ch2 id=\"stage-1-model-selection\">Stage 1: Model selection\u003C/h2>\n\u003Cp>Feynman supports multiple model providers. The setup wizard presents a list of available providers and models. Select your preferred default model using the arrow keys:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>? Select your default model:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> anthropic:claude-sonnet-4-20250514\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>> anthropic:claude-opus-4-20250514\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> openai:gpt-4o\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> openai:o3\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> google:gemini-2.5-pro\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The model you choose here becomes the default for all sessions. You can override it per-session with the \u003Ccode>--model\u003C/code> flag or change it later via \u003Ccode>feynman model set <provider:model>\u003C/code>.\u003C/p>\n\u003Ch2 id=\"stage-2-authentication\">Stage 2: Authentication\u003C/h2>\n\u003Cp>Depending on your chosen provider, setup prompts you for an API key or walks you through OAuth login. For providers that support Pi OAuth (like Anthropic and OpenAI), Feynman opens a browser window to complete the sign-in flow. Your credentials are stored securely in the Pi auth storage at \u003Ccode>~/.feynman/\u003C/code>.\u003C/p>\n\u003Cp>For API key providers, you are prompted to paste your key directly:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>? Enter your API key: sk-ant-...\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Keys are encrypted at rest and never sent anywhere except the provider’s API endpoint.\u003C/p>\n\u003Ch2 id=\"stage-3-optional-packages\">Stage 3: Optional packages\u003C/h2>\n\u003Cp>Feynman’s core ships with the essentials, but some features require additional packages. The wizard asks if you want to install optional presets:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>session-search\u003C/strong> — Enables searching prior session transcripts for past research\u003C/li>\n\u003Cli>\u003Cstrong>memory\u003C/strong> — Automatic preference and correction memory across sessions\u003C/li>\n\u003Cli>\u003Cstrong>generative-ui\u003C/strong> — Interactive HTML-style widgets for rich output\u003C/li>\n\u003C/ul>\n\u003Cp>You can skip this step and install packages later with \u003Ccode>feynman packages install <preset>\u003C/code>.\u003C/p>\n\u003Ch2 id=\"re-running-setup\">Re-running setup\u003C/h2>\n\u003Cp>Configuration is stored in \u003Ccode>~/.feynman/settings.json\u003C/code>. Running \u003Ccode>feynman setup\u003C/code> again overwrites previous settings. If you only need to change a specific value, edit the config file directly or use the targeted commands like \u003Ccode>feynman model set\u003C/code> or \u003Ccode>feynman alpha login\u003C/code>.\u003C/p>",{"headings":391,"localImagePaths":407,"remoteImagePaths":408,"frontmatter":409,"imagePaths":410},[392,395,398,401,404],{"depth":26,"slug":393,"text":394},"running-setup","Running setup",{"depth":26,"slug":396,"text":397},"stage-1-model-selection","Stage 1: Model selection",{"depth":26,"slug":399,"text":400},"stage-2-authentication","Stage 2: Authentication",{"depth":26,"slug":402,"text":403},"stage-3-optional-packages","Stage 3: Optional packages",{"depth":26,"slug":405,"text":406},"re-running-setup","Re-running setup",[],[],{"title":383,"description":384,"section":131,"order":51},[],"getting-started/setup.md","workflows/audit",{"id":412,"data":414,"body":417,"filePath":418,"digest":419,"rendered":420,"legacyId":432},{"title":415,"description":416,"section":329,"order":105},"Code Audit","Compare a paper's claims against its public codebase for reproducibility.","The code audit workflow compares a paper's claims against its public codebase to identify mismatches, undocumented deviations, and reproducibility risks. It bridges the gap between what a paper says and what the code actually does.\n\n## Usage\n\nFrom the REPL:\n\n```\n/audit arxiv:2401.12345\n```\n\n```\n/audit https://github.com/org/repo --paper arxiv:2401.12345\n```\n\nFrom the CLI:\n\n```bash\nfeynman audit 2401.12345\n```\n\nWhen given an arXiv ID, Feynman locates the associated code repository from the paper's links, Papers With Code, or GitHub search. You can also provide the repository URL directly.\n\n## How it works\n\nThe audit workflow operates in two passes. First, the researcher agent reads the paper and extracts all concrete claims: hyperparameters, architecture details, training procedures, dataset splits, evaluation metrics, and reported results. Each claim is tagged with its location in the paper for traceability.\n\nSecond, the verifier agent examines the codebase to find the corresponding implementation for each claim. It checks configuration files, training scripts, model definitions, and evaluation code to verify that the code matches the paper's description. When it finds a discrepancy -- a hyperparameter that differs, a training step that was described but not implemented, or an evaluation procedure that deviates from the paper -- it documents the mismatch with exact file paths and line numbers.\n\nThe audit also checks for common reproducibility issues like missing random seeds, non-deterministic operations without pinned versions, hardcoded paths, and absent environment specifications.\n\n## Output format\n\nThe audit report contains:\n\n- **Match Summary** -- Percentage of claims that match the code\n- **Confirmed Claims** -- Claims that are accurately reflected in the codebase\n- **Mismatches** -- Discrepancies between paper and code with evidence from both\n- **Missing Implementations** -- Claims in the paper with no corresponding code\n- **Reproducibility Risks** -- Issues like missing seeds, unpinned dependencies, or hardcoded paths\n\n## When to use it\n\nUse `/audit` when you are deciding whether to build on a paper's results, when replicating an experiment, or when reviewing a paper for a venue and want to verify its claims against the code. It is also useful for auditing your own papers before submission to catch inconsistencies between your writeup and implementation.","src/content/docs/workflows/audit.md","7d60cea54461fffa",{"html":421,"metadata":422},"\u003Cp>The code audit workflow compares a paper’s claims against its public codebase to identify mismatches, undocumented deviations, and reproducibility risks. It bridges the gap between what a paper says and what the code actually does.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/audit https://github.com/org/repo --paper arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> audit\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>When given an arXiv ID, Feynman locates the associated code repository from the paper’s links, Papers With Code, or GitHub search. You can also provide the repository URL directly.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The audit workflow operates in two passes. First, the researcher agent reads the paper and extracts all concrete claims: hyperparameters, architecture details, training procedures, dataset splits, evaluation metrics, and reported results. Each claim is tagged with its location in the paper for traceability.\u003C/p>\n\u003Cp>Second, the verifier agent examines the codebase to find the corresponding implementation for each claim. It checks configuration files, training scripts, model definitions, and evaluation code to verify that the code matches the paper’s description. When it finds a discrepancy — a hyperparameter that differs, a training step that was described but not implemented, or an evaluation procedure that deviates from the paper — it documents the mismatch with exact file paths and line numbers.\u003C/p>\n\u003Cp>The audit also checks for common reproducibility issues like missing random seeds, non-deterministic operations without pinned versions, hardcoded paths, and absent environment specifications.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The audit report contains:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Match Summary\u003C/strong> — Percentage of claims that match the code\u003C/li>\n\u003Cli>\u003Cstrong>Confirmed Claims\u003C/strong> — Claims that are accurately reflected in the codebase\u003C/li>\n\u003Cli>\u003Cstrong>Mismatches\u003C/strong> — Discrepancies between paper and code with evidence from both\u003C/li>\n\u003Cli>\u003Cstrong>Missing Implementations\u003C/strong> — Claims in the paper with no corresponding code\u003C/li>\n\u003Cli>\u003Cstrong>Reproducibility Risks\u003C/strong> — Issues like missing seeds, unpinned dependencies, or hardcoded paths\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/audit\u003C/code> when you are deciding whether to build on a paper’s results, when replicating an experiment, or when reviewing a paper for a venue and want to verify its claims against the code. It is also useful for auditing your own papers before submission to catch inconsistencies between your writeup and implementation.\u003C/p>",{"headings":423,"localImagePaths":428,"remoteImagePaths":429,"frontmatter":430,"imagePaths":431},[424,425,426,427],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":348,"text":349},[],[],{"title":415,"description":416,"section":329,"order":105},[],"workflows/audit.md","workflows/draft",{"id":433,"data":435,"body":439,"filePath":440,"digest":441,"rendered":442,"legacyId":456},{"title":436,"description":437,"section":329,"order":438},"Draft Writing","Generate a paper-style draft from research findings and session context.",7,"The draft writing workflow generates structured academic-style documents from your research findings. It uses the writer agent to produce well-organized prose with proper citations, sections, and formatting suitable for papers, reports, or blog posts.\n\n## Usage\n\nFrom the REPL:\n\n```\n/draft A survey of retrieval-augmented generation techniques\n```\n\n```\n/draft --from-session\n```\n\nFrom the CLI:\n\n```bash\nfeynman draft \"A survey of retrieval-augmented generation techniques\"\n```\n\nWhen used with `--from-session`, the writer draws from the current session's research findings, making it a natural follow-up to a deep research or literature review workflow.\n\n## How it works\n\nThe draft workflow leverages the writer agent, which specializes in producing structured academic prose. When given a topic, it first consults the researcher agents to gather source material, then organizes the findings into a coherent document with proper narrative flow.\n\nWhen working from existing session context (after a deep research or literature review), the writer skips the research phase and works directly with the findings already gathered. This produces a more focused draft because the source material has already been vetted and organized.\n\nThe writer pays attention to academic conventions: claims are attributed to their sources with inline citations, methodology sections describe procedures precisely, and limitations are discussed honestly. The draft includes placeholder sections for any content the writer cannot generate from available sources, clearly marking what needs human input.\n\n## Output format\n\nThe draft follows standard academic structure:\n\n- **Abstract** -- Concise summary of the document's scope and findings\n- **Introduction** -- Motivation, context, and contribution statement\n- **Body Sections** -- Organized by topic with subsections as needed\n- **Discussion** -- Interpretation of findings and implications\n- **Limitations** -- Honest assessment of scope and gaps\n- **References** -- Complete bibliography in a consistent citation format\n\n## Preview and iteration\n\nAfter generating the draft, use `/preview` to render it as HTML or PDF with proper formatting, math rendering, and typography. You can iterate on the draft by asking Feynman to revise specific sections, add more detail, or restructure the argument.","src/content/docs/workflows/draft.md","483acd4ea76d7663",{"html":443,"metadata":444},"\u003Cp>The draft writing workflow generates structured academic-style documents from your research findings. It uses the writer agent to produce well-organized prose with proper citations, sections, and formatting suitable for papers, reports, or blog posts.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft A survey of retrieval-augmented generation techniques\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/draft --from-session\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> draft\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">A survey of retrieval-augmented generation techniques\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>When used with \u003Ccode>--from-session\u003C/code>, the writer draws from the current session’s research findings, making it a natural follow-up to a deep research or literature review workflow.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The draft workflow leverages the writer agent, which specializes in producing structured academic prose. When given a topic, it first consults the researcher agents to gather source material, then organizes the findings into a coherent document with proper narrative flow.\u003C/p>\n\u003Cp>When working from existing session context (after a deep research or literature review), the writer skips the research phase and works directly with the findings already gathered. This produces a more focused draft because the source material has already been vetted and organized.\u003C/p>\n\u003Cp>The writer pays attention to academic conventions: claims are attributed to their sources with inline citations, methodology sections describe procedures precisely, and limitations are discussed honestly. The draft includes placeholder sections for any content the writer cannot generate from available sources, clearly marking what needs human input.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The draft follows standard academic structure:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Abstract\u003C/strong> — Concise summary of the document’s scope and findings\u003C/li>\n\u003Cli>\u003Cstrong>Introduction\u003C/strong> — Motivation, context, and contribution statement\u003C/li>\n\u003Cli>\u003Cstrong>Body Sections\u003C/strong> — Organized by topic with subsections as needed\u003C/li>\n\u003Cli>\u003Cstrong>Discussion\u003C/strong> — Interpretation of findings and implications\u003C/li>\n\u003Cli>\u003Cstrong>Limitations\u003C/strong> — Honest assessment of scope and gaps\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Complete bibliography in a consistent citation format\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"preview-and-iteration\">Preview and iteration\u003C/h2>\n\u003Cp>After generating the draft, use \u003Ccode>/preview\u003C/code> to render it as HTML or PDF with proper formatting, math rendering, and typography. You can iterate on the draft by asking Feynman to revise specific sections, add more detail, or restructure the argument.\u003C/p>",{"headings":445,"localImagePaths":452,"remoteImagePaths":453,"frontmatter":454,"imagePaths":455},[446,447,448,449],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":450,"text":451},"preview-and-iteration","Preview and iteration",[],[],{"title":436,"description":437,"section":329,"order":438},[],"workflows/draft.md","workflows/literature-review",{"id":457,"data":459,"body":462,"filePath":463,"digest":464,"rendered":465,"legacyId":477},{"title":460,"description":461,"section":329,"order":26},"Literature Review","Run a structured literature review with consensus mapping and gap analysis.","The literature review workflow produces a structured survey of the academic landscape on a given topic. Unlike deep research which aims for a comprehensive brief, the literature review focuses specifically on mapping the state of the field -- what researchers agree on, where they disagree, and what remains unexplored.\n\n## Usage\n\nFrom the REPL:\n\n```\n/lit Scaling laws for language model performance\n```\n\nFrom the CLI:\n\n```bash\nfeynman lit \"Scaling laws for language model performance\"\n```\n\n## How it works\n\nThe literature review workflow begins by having researcher agents search for papers on the topic across AlphaXiv and the web. The agents prioritize survey papers, highly-cited foundational work, and recent publications to capture both established knowledge and the current frontier.\n\nAfter gathering sources, the agents extract claims, results, and methodology from each paper. The synthesis step then organizes findings into a structured review that maps out where the community has reached consensus, where active debate exists, and where gaps in the literature remain.\n\nThe output is organized chronologically and thematically, showing how ideas evolved over time and how different research groups approach the problem differently. Citation counts and publication venues are used as signals for weighting claims, though the review explicitly notes when influential work contradicts the mainstream view.\n\n## Output format\n\nThe literature review produces:\n\n- **Scope and Methodology** -- What was searched and how papers were selected\n- **Consensus** -- Claims that most papers agree on, with supporting citations\n- **Disagreements** -- Active debates where papers present conflicting evidence or interpretations\n- **Open Questions** -- Topics that the literature has not adequately addressed\n- **Timeline** -- Key milestones and how the field evolved\n- **References** -- Complete bibliography organized by relevance\n\n## When to use it\n\nUse `/lit` when you need a map of the research landscape rather than a deep dive into a specific question. It is particularly useful at the start of a new research project when you need to understand what has already been done, or when preparing a related work section for a paper.","src/content/docs/workflows/literature-review.md","3028bede4cee6cf0",{"html":466,"metadata":467},"\u003Cp>The literature review workflow produces a structured survey of the academic landscape on a given topic. Unlike deep research which aims for a comprehensive brief, the literature review focuses specifically on mapping the state of the field — what researchers agree on, where they disagree, and what remains unexplored.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/lit Scaling laws for language model performance\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> lit\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">Scaling laws for language model performance\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The literature review workflow begins by having researcher agents search for papers on the topic across AlphaXiv and the web. The agents prioritize survey papers, highly-cited foundational work, and recent publications to capture both established knowledge and the current frontier.\u003C/p>\n\u003Cp>After gathering sources, the agents extract claims, results, and methodology from each paper. The synthesis step then organizes findings into a structured review that maps out where the community has reached consensus, where active debate exists, and where gaps in the literature remain.\u003C/p>\n\u003Cp>The output is organized chronologically and thematically, showing how ideas evolved over time and how different research groups approach the problem differently. Citation counts and publication venues are used as signals for weighting claims, though the review explicitly notes when influential work contradicts the mainstream view.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The literature review produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Scope and Methodology\u003C/strong> — What was searched and how papers were selected\u003C/li>\n\u003Cli>\u003Cstrong>Consensus\u003C/strong> — Claims that most papers agree on, with supporting citations\u003C/li>\n\u003Cli>\u003Cstrong>Disagreements\u003C/strong> — Active debates where papers present conflicting evidence or interpretations\u003C/li>\n\u003Cli>\u003Cstrong>Open Questions\u003C/strong> — Topics that the literature has not adequately addressed\u003C/li>\n\u003Cli>\u003Cstrong>Timeline\u003C/strong> — Key milestones and how the field evolved\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Complete bibliography organized by relevance\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/lit\u003C/code> when you need a map of the research landscape rather than a deep dive into a specific question. It is particularly useful at the start of a new research project when you need to understand what has already been done, or when preparing a related work section for a paper.\u003C/p>",{"headings":468,"localImagePaths":473,"remoteImagePaths":474,"frontmatter":475,"imagePaths":476},[469,470,471,472],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":348,"text":349},[],[],{"title":460,"description":461,"section":329,"order":26},[],"workflows/literature-review.md","workflows/deep-research",{"id":478,"data":480,"body":483,"filePath":484,"digest":485,"rendered":486,"legacyId":500},{"title":481,"description":482,"section":329,"order":17},"Deep Research","Run a thorough, multi-agent investigation that produces a cited research brief.","Deep research is the flagship Feynman workflow. It dispatches multiple researcher agents in parallel to search academic papers, web sources, and code repositories, then synthesizes everything into a structured research brief with inline citations.\n\n## Usage\n\nFrom the REPL:\n\n```\n/deepresearch What are the current approaches to mechanistic interpretability in LLMs?\n```\n\nFrom the CLI:\n\n```bash\nfeynman deepresearch \"What are the current approaches to mechanistic interpretability in LLMs?\"\n```\n\nBoth forms are equivalent. The workflow begins immediately and streams progress as agents discover and analyze sources.\n\n## How it works\n\nThe deep research workflow proceeds through four phases. First, the researcher agents fan out to search AlphaXiv for relevant papers and the web for non-academic sources like blog posts, documentation, and code repositories. Each agent tackles a different angle of the topic to maximize coverage.\n\nSecond, the agents read and extract key findings from the most relevant sources. They pull claims, methodology details, results, and limitations from each paper or article. For academic papers, they access the full PDF through AlphaXiv when available.\n\nThird, a synthesis step cross-references findings across sources, identifies areas of consensus and disagreement, and organizes the material into a coherent narrative. The writer agent structures the output as a research brief with sections for background, key findings, open questions, and references.\n\nFinally, the verifier agent spot-checks claims against their cited sources to flag any misattributions or unsupported assertions. The finished report is saved to your session directory and can be previewed as rendered HTML with `/preview`.\n\n## Output format\n\nThe research brief follows a consistent structure:\n\n- **Summary** -- A concise overview of the topic and key takeaways\n- **Background** -- Context and motivation for the research area\n- **Key Findings** -- The main results organized by theme, with inline citations\n- **Open Questions** -- Unresolved issues and promising research directions\n- **References** -- Full citation list with links to source papers and articles\n\n## Customization\n\nYou can steer the research by being specific in your prompt. Narrow topics produce more focused briefs. Broad topics produce survey-style overviews. You can also specify constraints like \"focus on papers from 2024\" or \"only consider empirical results\" to guide the agents.","src/content/docs/workflows/deep-research.md","1bbb4db9ca6450a2",{"html":487,"metadata":488},"\u003Cp>Deep research is the flagship Feynman workflow. It dispatches multiple researcher agents in parallel to search academic papers, web sources, and code repositories, then synthesizes everything into a structured research brief with inline citations.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/deepresearch What are the current approaches to mechanistic interpretability in LLMs?\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> deepresearch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">What are the current approaches to mechanistic interpretability in LLMs?\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Both forms are equivalent. The workflow begins immediately and streams progress as agents discover and analyze sources.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The deep research workflow proceeds through four phases. First, the researcher agents fan out to search AlphaXiv for relevant papers and the web for non-academic sources like blog posts, documentation, and code repositories. Each agent tackles a different angle of the topic to maximize coverage.\u003C/p>\n\u003Cp>Second, the agents read and extract key findings from the most relevant sources. They pull claims, methodology details, results, and limitations from each paper or article. For academic papers, they access the full PDF through AlphaXiv when available.\u003C/p>\n\u003Cp>Third, a synthesis step cross-references findings across sources, identifies areas of consensus and disagreement, and organizes the material into a coherent narrative. The writer agent structures the output as a research brief with sections for background, key findings, open questions, and references.\u003C/p>\n\u003Cp>Finally, the verifier agent spot-checks claims against their cited sources to flag any misattributions or unsupported assertions. The finished report is saved to your session directory and can be previewed as rendered HTML with \u003Ccode>/preview\u003C/code>.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The research brief follows a consistent structure:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Summary\u003C/strong> — A concise overview of the topic and key takeaways\u003C/li>\n\u003Cli>\u003Cstrong>Background\u003C/strong> — Context and motivation for the research area\u003C/li>\n\u003Cli>\u003Cstrong>Key Findings\u003C/strong> — The main results organized by theme, with inline citations\u003C/li>\n\u003Cli>\u003Cstrong>Open Questions\u003C/strong> — Unresolved issues and promising research directions\u003C/li>\n\u003Cli>\u003Cstrong>References\u003C/strong> — Full citation list with links to source papers and articles\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>You can steer the research by being specific in your prompt. Narrow topics produce more focused briefs. Broad topics produce survey-style overviews. You can also specify constraints like “focus on papers from 2024” or “only consider empirical results” to guide the agents.\u003C/p>",{"headings":489,"localImagePaths":496,"remoteImagePaths":497,"frontmatter":498,"imagePaths":499},[490,491,492,493],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":494,"text":495},"customization","Customization",[],[],{"title":481,"description":482,"section":329,"order":17},[],"workflows/deep-research.md","workflows/replication",{"id":501,"data":503,"body":507,"filePath":508,"digest":509,"rendered":510,"legacyId":524},{"title":504,"description":505,"section":329,"order":506},"Replication","Plan or execute a replication of a paper's experiments and claims.",5,"The replication workflow helps you plan and execute reproductions of published experiments, benchmark results, or specific claims. It generates a detailed replication plan, identifies potential pitfalls, and can guide you through the execution step by step.\n\n## Usage\n\nFrom the REPL:\n\n```\n/replicate arxiv:2401.12345\n```\n\n```\n/replicate \"The claim that sparse attention achieves 95% of dense attention quality at 60% compute\"\n```\n\nFrom the CLI:\n\n```bash\nfeynman replicate \"paper or claim\"\n```\n\nYou can point the workflow at a full paper for a comprehensive replication plan, or at a specific claim for a focused reproduction.\n\n## How it works\n\nThe replication workflow starts with the researcher agent reading the target paper and extracting every detail needed for reproduction: model architecture, hyperparameters, training schedule, dataset preparation, evaluation protocol, and hardware requirements. It cross-references these details against the codebase (if available) using the same machinery as the code audit workflow.\n\nNext, the workflow generates a structured replication plan that breaks the experiment into discrete steps, estimates compute and time requirements, and identifies where the paper is underspecified. For each underspecified detail, it suggests reasonable defaults based on common practices in the field and flags the assumption as a potential source of divergence.\n\nThe plan also includes a risk assessment: which parts of the experiment are most likely to cause replication failure, what tolerance to expect for numerical results, and which claims are most sensitive to implementation details.\n\n## Output format\n\nThe replication plan includes:\n\n- **Requirements** -- Hardware, software, data, and estimated compute cost\n- **Step-by-step Plan** -- Ordered steps from environment setup through final evaluation\n- **Underspecified Details** -- Where the paper leaves out information needed for replication\n- **Risk Assessment** -- Which steps are most likely to cause divergence from reported results\n- **Success Criteria** -- What results would constitute a successful replication\n\n## Iterative execution\n\nAfter generating the plan, you can execute the replication interactively. Feynman walks you through each step, helps you write the code, monitors training runs, and compares intermediate results against the paper's reported values. When results diverge, it helps diagnose whether the cause is an implementation difference, a hyperparameter mismatch, or a genuine replication failure.","src/content/docs/workflows/replication.md","d477e6df15163fff",{"html":511,"metadata":512},"\u003Cp>The replication workflow helps you plan and execute reproductions of published experiments, benchmark results, or specific claims. It generates a detailed replication plan, identifies potential pitfalls, and can guide you through the execution step by step.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/replicate \"The claim that sparse attention achieves 95% of dense attention quality at 60% compute\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> replicate\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">paper or claim\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can point the workflow at a full paper for a comprehensive replication plan, or at a specific claim for a focused reproduction.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The replication workflow starts with the researcher agent reading the target paper and extracting every detail needed for reproduction: model architecture, hyperparameters, training schedule, dataset preparation, evaluation protocol, and hardware requirements. It cross-references these details against the codebase (if available) using the same machinery as the code audit workflow.\u003C/p>\n\u003Cp>Next, the workflow generates a structured replication plan that breaks the experiment into discrete steps, estimates compute and time requirements, and identifies where the paper is underspecified. For each underspecified detail, it suggests reasonable defaults based on common practices in the field and flags the assumption as a potential source of divergence.\u003C/p>\n\u003Cp>The plan also includes a risk assessment: which parts of the experiment are most likely to cause replication failure, what tolerance to expect for numerical results, and which claims are most sensitive to implementation details.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The replication plan includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Requirements\u003C/strong> — Hardware, software, data, and estimated compute cost\u003C/li>\n\u003Cli>\u003Cstrong>Step-by-step Plan\u003C/strong> — Ordered steps from environment setup through final evaluation\u003C/li>\n\u003Cli>\u003Cstrong>Underspecified Details\u003C/strong> — Where the paper leaves out information needed for replication\u003C/li>\n\u003Cli>\u003Cstrong>Risk Assessment\u003C/strong> — Which steps are most likely to cause divergence from reported results\u003C/li>\n\u003Cli>\u003Cstrong>Success Criteria\u003C/strong> — What results would constitute a successful replication\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"iterative-execution\">Iterative execution\u003C/h2>\n\u003Cp>After generating the plan, you can execute the replication interactively. Feynman walks you through each step, helps you write the code, monitors training runs, and compares intermediate results against the paper’s reported values. When results diverge, it helps diagnose whether the cause is an implementation difference, a hyperparameter mismatch, or a genuine replication failure.\u003C/p>",{"headings":513,"localImagePaths":520,"remoteImagePaths":521,"frontmatter":522,"imagePaths":523},[514,515,516,517],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":518,"text":519},"iterative-execution","Iterative execution",[],[],{"title":504,"description":505,"section":329,"order":506},[],"workflows/replication.md","workflows/review",{"id":525,"data":527,"body":530,"filePath":531,"digest":532,"rendered":533,"legacyId":545},{"title":528,"description":529,"section":329,"order":51},"Peer Review","Simulate a rigorous peer review with severity-graded feedback.","The peer review workflow simulates a thorough academic peer review of a paper, draft, or research artifact. It produces severity-graded feedback with inline annotations, covering methodology, claims, writing quality, and reproducibility.\n\n## Usage\n\nFrom the REPL:\n\n```\n/review arxiv:2401.12345\n```\n\n```\n/review ~/papers/my-draft.pdf\n```\n\nFrom the CLI:\n\n```bash\nfeynman review arxiv:2401.12345\nfeynman review my-draft.md\n```\n\nYou can pass an arXiv ID, a URL, or a local file path. For arXiv papers, Feynman fetches the full PDF through AlphaXiv.\n\n## How it works\n\nThe review workflow assigns the reviewer agent to read the document end-to-end and evaluate it against standard academic criteria. The reviewer examines the paper's claims, checks whether the methodology supports the conclusions, evaluates the experimental design for potential confounds, and assesses the clarity and completeness of the writing.\n\nEach piece of feedback is assigned a severity level: **critical** (fundamental issues that undermine the paper's validity), **major** (significant problems that should be addressed), **minor** (suggestions for improvement), or **nit** (stylistic or formatting issues). This grading helps you triage feedback and focus on what matters most.\n\nThe reviewer also produces a summary assessment with an overall recommendation and a confidence score indicating how certain it is about each finding. When the reviewer identifies a claim that cannot be verified from the paper alone, it flags it as needing additional evidence.\n\n## Output format\n\nThe review output includes:\n\n- **Summary Assessment** -- Overall evaluation and recommendation\n- **Strengths** -- What the paper does well\n- **Critical Issues** -- Fundamental problems that need to be addressed\n- **Major Issues** -- Significant concerns with suggested fixes\n- **Minor Issues** -- Smaller improvements and suggestions\n- **Inline Annotations** -- Specific comments tied to sections of the document\n\n## Customization\n\nYou can focus the review by specifying what to examine: \"focus on the statistical methodology\" or \"check the claims in Section 4 against the experimental results.\" The reviewer adapts its analysis to your priorities while still performing a baseline check of the full document.","src/content/docs/workflows/review.md","0f84fd2135001da2",{"html":534,"metadata":535},"\u003Cp>The peer review workflow simulates a thorough academic peer review of a paper, draft, or research artifact. It produces severity-graded feedback with inline annotations, covering methodology, claims, writing quality, and reproducibility.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review arxiv:2401.12345\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/review ~/papers/my-draft.pdf\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> arxiv:2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> review\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> my-draft.md\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can pass an arXiv ID, a URL, or a local file path. For arXiv papers, Feynman fetches the full PDF through AlphaXiv.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The review workflow assigns the reviewer agent to read the document end-to-end and evaluate it against standard academic criteria. The reviewer examines the paper’s claims, checks whether the methodology supports the conclusions, evaluates the experimental design for potential confounds, and assesses the clarity and completeness of the writing.\u003C/p>\n\u003Cp>Each piece of feedback is assigned a severity level: \u003Cstrong>critical\u003C/strong> (fundamental issues that undermine the paper’s validity), \u003Cstrong>major\u003C/strong> (significant problems that should be addressed), \u003Cstrong>minor\u003C/strong> (suggestions for improvement), or \u003Cstrong>nit\u003C/strong> (stylistic or formatting issues). This grading helps you triage feedback and focus on what matters most.\u003C/p>\n\u003Cp>The reviewer also produces a summary assessment with an overall recommendation and a confidence score indicating how certain it is about each finding. When the reviewer identifies a claim that cannot be verified from the paper alone, it flags it as needing additional evidence.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>The review output includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Summary Assessment\u003C/strong> — Overall evaluation and recommendation\u003C/li>\n\u003Cli>\u003Cstrong>Strengths\u003C/strong> — What the paper does well\u003C/li>\n\u003Cli>\u003Cstrong>Critical Issues\u003C/strong> — Fundamental problems that need to be addressed\u003C/li>\n\u003Cli>\u003Cstrong>Major Issues\u003C/strong> — Significant concerns with suggested fixes\u003C/li>\n\u003Cli>\u003Cstrong>Minor Issues\u003C/strong> — Smaller improvements and suggestions\u003C/li>\n\u003Cli>\u003Cstrong>Inline Annotations\u003C/strong> — Specific comments tied to sections of the document\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>You can focus the review by specifying what to examine: “focus on the statistical methodology” or “check the claims in Section 4 against the experimental results.” The reviewer adapts its analysis to your priorities while still performing a baseline check of the full document.\u003C/p>",{"headings":536,"localImagePaths":541,"remoteImagePaths":542,"frontmatter":543,"imagePaths":544},[537,538,539,540],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":345,"text":346},{"depth":26,"slug":494,"text":495},[],[],{"title":528,"description":529,"section":329,"order":51},[],"workflows/review.md","workflows/watch",{"id":546,"data":548,"body":552,"filePath":553,"digest":554,"rendered":555,"legacyId":570},{"title":549,"description":550,"section":329,"order":551},"Watch","Set up recurring research monitoring on a topic.",9,"The watch workflow sets up recurring research monitoring that periodically checks for new papers, articles, and developments on a topic you care about. It notifies you when something relevant appears and can automatically summarize new findings.\n\n## Usage\n\nFrom the REPL:\n\n```\n/watch New developments in state space models for sequence modeling\n```\n\nFrom the CLI:\n\n```bash\nfeynman watch \"New developments in state space models for sequence modeling\"\n```\n\nAfter setting up a watch, Feynman periodically runs searches on the topic and alerts you when it finds new relevant material.\n\n## How it works\n\nThe watch workflow is built on `pi-schedule-prompt`, which manages scheduled and recurring tasks. When you create a watch, Feynman stores the topic and search parameters, then runs a lightweight search at regular intervals (default: daily).\n\nEach check searches AlphaXiv for new papers and the web for new articles matching your topic. Results are compared against what was found in previous checks to surface only genuinely new material. When new items are found, Feynman produces a brief summary of each and stores it in your session history.\n\nThe watch is smart about relevance. It does not just keyword-match -- it uses the same researcher agent that powers deep research to evaluate whether new papers are genuinely relevant to your topic or just superficially related. This keeps the signal-to-noise ratio high even for broad topics.\n\n## Managing watches\n\nList active watches:\n\n```\n/jobs\n```\n\nThe `/jobs` command shows all active watches along with their schedule, last check time, and number of new items found. You can pause, resume, or delete watches from within the REPL.\n\n## Output format\n\nEach watch check produces:\n\n- **New Papers** -- Titles, authors, and one-paragraph summaries of newly discovered papers\n- **New Articles** -- Relevant blog posts, documentation updates, or news articles\n- **Relevance Notes** -- Why each item was flagged as relevant to your watch topic\n\n## When to use it\n\nUse `/watch` to stay current on a research area without manually searching every day. It is particularly useful for fast-moving fields where new papers appear frequently, for tracking specific research groups or topics related to your own work, and for monitoring the literature while you focus on other tasks.","src/content/docs/workflows/watch.md","8881197eaf4231b9",{"html":556,"metadata":557},"\u003Cp>The watch workflow sets up recurring research monitoring that periodically checks for new papers, articles, and developments on a topic you care about. It notifies you when something relevant appears and can automatically summarize new findings.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>From the REPL:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/watch New developments in state space models for sequence modeling\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>From the CLI:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> watch\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">New developments in state space models for sequence modeling\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>After setting up a watch, Feynman periodically runs searches on the topic and alerts you when it finds new relevant material.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The watch workflow is built on \u003Ccode>pi-schedule-prompt\u003C/code>, which manages scheduled and recurring tasks. When you create a watch, Feynman stores the topic and search parameters, then runs a lightweight search at regular intervals (default: daily).\u003C/p>\n\u003Cp>Each check searches AlphaXiv for new papers and the web for new articles matching your topic. Results are compared against what was found in previous checks to surface only genuinely new material. When new items are found, Feynman produces a brief summary of each and stores it in your session history.\u003C/p>\n\u003Cp>The watch is smart about relevance. It does not just keyword-match — it uses the same researcher agent that powers deep research to evaluate whether new papers are genuinely relevant to your topic or just superficially related. This keeps the signal-to-noise ratio high even for broad topics.\u003C/p>\n\u003Ch2 id=\"managing-watches\">Managing watches\u003C/h2>\n\u003Cp>List active watches:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/jobs\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The \u003Ccode>/jobs\u003C/code> command shows all active watches along with their schedule, last check time, and number of new items found. You can pause, resume, or delete watches from within the REPL.\u003C/p>\n\u003Ch2 id=\"output-format\">Output format\u003C/h2>\n\u003Cp>Each watch check produces:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>New Papers\u003C/strong> — Titles, authors, and one-paragraph summaries of newly discovered papers\u003C/li>\n\u003Cli>\u003Cstrong>New Articles\u003C/strong> — Relevant blog posts, documentation updates, or news articles\u003C/li>\n\u003Cli>\u003Cstrong>Relevance Notes\u003C/strong> — Why each item was flagged as relevant to your watch topic\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Use \u003Ccode>/watch\u003C/code> to stay current on a research area without manually searching every day. It is particularly useful for fast-moving fields where new papers appear frequently, for tracking specific research groups or topics related to your own work, and for monitoring the literature while you focus on other tasks.\u003C/p>",{"headings":558,"localImagePaths":566,"remoteImagePaths":567,"frontmatter":568,"imagePaths":569},[559,560,561,564,565],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":342,"text":343},{"depth":26,"slug":562,"text":563},"managing-watches","Managing watches",{"depth":26,"slug":345,"text":346},{"depth":26,"slug":348,"text":349},[],[],{"title":549,"description":550,"section":329,"order":551},[],"workflows/watch.md","tools/alphaxiv",{"id":571,"data":573,"body":577,"filePath":578,"digest":579,"rendered":580,"legacyId":602},{"title":574,"description":575,"section":576,"order":17},"AlphaXiv","Search and retrieve academic papers through the AlphaXiv integration.","Tools","AlphaXiv is the primary academic paper search and retrieval tool in Feynman. It provides access to a vast corpus of research papers, discussion threads, citation metadata, and full-text PDFs. The researcher agent uses AlphaXiv as its primary source for academic content.\n\n## Authentication\n\nAlphaXiv requires authentication. Set it up during initial setup or at any time:\n\n```bash\nfeynman alpha login\n```\n\nCheck your authentication status:\n\n```bash\nfeynman alpha status\n```\n\n## What it provides\n\nAlphaXiv gives Feynman access to several capabilities that power the research workflows:\n\n- **Paper search** -- Find papers by topic, author, keyword, or arXiv ID (`alpha search`)\n- **Full-text retrieval** -- Download and parse complete PDFs for in-depth reading (`alpha get`)\n- **Paper Q&A** -- Ask targeted questions about a paper's content (`alpha ask`)\n- **Code inspection** -- Read files from a paper's linked GitHub repository (`alpha code`)\n- **Annotations** -- Persistent local notes on papers across sessions (`alpha annotate`)\n\n## How it is used\n\nFeynman ships an `alpha-research` skill that teaches the agent to use the `alpha` CLI for paper operations. The researcher agent uses it automatically during workflows like deep research, literature review, and peer review. When you provide an arXiv ID (like `2401.12345`), the agent fetches the paper via `alpha get`.\n\nYou can also use the `alpha` CLI directly from the terminal:\n\n```bash\nalpha search \"scaling laws\"\nalpha get 2401.12345\nalpha ask 2401.12345 \"What optimizer did they use?\"\nalpha code https://github.com/org/repo src/model.py\n```\n\n## Configuration\n\nAuthentication tokens are stored in `~/.feynman/auth/` and persist across sessions. No additional configuration is needed beyond logging in.\n\n## Without AlphaXiv\n\nIf you choose not to authenticate with AlphaXiv, Feynman still functions but with reduced academic search capabilities. It falls back to web search for finding papers, which works for well-known work but misses the citation metadata, discussion threads, and full-text access that AlphaXiv provides. For serious research workflows, AlphaXiv authentication is strongly recommended.","src/content/docs/tools/alphaxiv.md","f9f58fef4e6e60bd",{"html":581,"metadata":582},"\u003Cp>AlphaXiv is the primary academic paper search and retrieval tool in Feynman. It provides access to a vast corpus of research papers, discussion threads, citation metadata, and full-text PDFs. The researcher agent uses AlphaXiv as its primary source for academic content.\u003C/p>\n\u003Ch2 id=\"authentication\">Authentication\u003C/h2>\n\u003Cp>AlphaXiv requires authentication. Set it up during initial setup or at any time:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> login\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Check your authentication status:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"what-it-provides\">What it provides\u003C/h2>\n\u003Cp>AlphaXiv gives Feynman access to several capabilities that power the research workflows:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Paper search\u003C/strong> — Find papers by topic, author, keyword, or arXiv ID (\u003Ccode>alpha search\u003C/code>)\u003C/li>\n\u003Cli>\u003Cstrong>Full-text retrieval\u003C/strong> — Download and parse complete PDFs for in-depth reading (\u003Ccode>alpha get\u003C/code>)\u003C/li>\n\u003Cli>\u003Cstrong>Paper Q&A\u003C/strong> — Ask targeted questions about a paper’s content (\u003Ccode>alpha ask\u003C/code>)\u003C/li>\n\u003Cli>\u003Cstrong>Code inspection\u003C/strong> — Read files from a paper’s linked GitHub repository (\u003Ccode>alpha code\u003C/code>)\u003C/li>\n\u003Cli>\u003Cstrong>Annotations\u003C/strong> — Persistent local notes on papers across sessions (\u003Ccode>alpha annotate\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"how-it-is-used\">How it is used\u003C/h2>\n\u003Cp>Feynman ships an \u003Ccode>alpha-research\u003C/code> skill that teaches the agent to use the \u003Ccode>alpha\u003C/code> CLI for paper operations. The researcher agent uses it automatically during workflows like deep research, literature review, and peer review. When you provide an arXiv ID (like \u003Ccode>2401.12345\u003C/code>), the agent fetches the paper via \u003Ccode>alpha get\u003C/code>.\u003C/p>\n\u003Cp>You can also use the \u003Ccode>alpha\u003C/code> CLI directly from the terminal:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> search\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">scaling laws\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> get\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> ask\u003C/span>\u003Cspan style=\"color:#2F798A;--shiki-dark:#4C9A91\"> 2401.12345\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">What optimizer did they use?\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">alpha\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> code\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> https://github.com/org/repo\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> src/model.py\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"configuration\">Configuration\u003C/h2>\n\u003Cp>Authentication tokens are stored in \u003Ccode>~/.feynman/auth/\u003C/code> and persist across sessions. No additional configuration is needed beyond logging in.\u003C/p>\n\u003Ch2 id=\"without-alphaxiv\">Without AlphaXiv\u003C/h2>\n\u003Cp>If you choose not to authenticate with AlphaXiv, Feynman still functions but with reduced academic search capabilities. It falls back to web search for finding papers, which works for well-known work but misses the citation metadata, discussion threads, and full-text access that AlphaXiv provides. For serious research workflows, AlphaXiv authentication is strongly recommended.\u003C/p>",{"headings":583,"localImagePaths":598,"remoteImagePaths":599,"frontmatter":600,"imagePaths":601},[584,587,590,593,595],{"depth":26,"slug":585,"text":586},"authentication","Authentication",{"depth":26,"slug":588,"text":589},"what-it-provides","What it provides",{"depth":26,"slug":591,"text":592},"how-it-is-used","How it is used",{"depth":26,"slug":594,"text":129},"configuration",{"depth":26,"slug":596,"text":597},"without-alphaxiv","Without AlphaXiv",[],[],{"title":574,"description":575,"section":576,"order":17},[],"tools/alphaxiv.md","tools/web-search",{"id":603,"data":605,"body":608,"filePath":609,"digest":610,"rendered":611,"legacyId":632},{"title":606,"description":607,"section":576,"order":26},"Web Search","Web search routing, configuration, and usage within Feynman.","Feynman's web search tool retrieves current information from the web during research workflows. It supports multiple simultaneous queries, domain filtering, recency filtering, and optional full-page content retrieval. The researcher agent uses web search alongside AlphaXiv to gather evidence from non-academic sources like blog posts, documentation, news, and code repositories.\n\n## Routing modes\n\nFeynman supports three web search backends. You can configure which one to use or let Feynman choose automatically:\n\n| Mode | Description |\n| --- | --- |\n| `auto` | Prefer Perplexity when configured, fall back to Gemini |\n| `perplexity` | Force Perplexity Sonar for all web searches |\n| `gemini` | Force Gemini grounding (default, zero-config) |\n\n## Default behavior\n\nThe default path is zero-config Gemini grounding via a signed-in Chromium profile. No API keys are required. This works on macOS and Linux where a Chromium-based browser is installed and signed in to a Google account.\n\nFor headless environments, CI pipelines, or servers without a browser, configure an explicit API key for either Perplexity or Gemini in `~/.feynman/web-search.json`.\n\n## Configuration\n\nCheck the current search configuration:\n\n```bash\nfeynman search status\n```\n\nEdit `~/.feynman/web-search.json` to configure the backend:\n\n```json\n{\n \"route\": \"auto\",\n \"perplexityApiKey\": \"pplx-...\",\n \"geminiApiKey\": \"AIza...\"\n}\n```\n\nSet `route` to `auto`, `perplexity`, or `gemini`. When using `auto`, Feynman prefers Perplexity if a key is present, then falls back to Gemini.\n\n## Search features\n\nThe web search tool supports several capabilities that the researcher agent leverages automatically:\n\n- **Multiple queries** -- Send 2-4 varied-angle queries simultaneously for broader coverage of a topic\n- **Domain filtering** -- Restrict results to specific domains like `arxiv.org`, `github.com`, or `nature.com`\n- **Recency filtering** -- Filter results by date, useful for fast-moving topics where only recent work matters\n- **Full content retrieval** -- Fetch complete page content for the most important results rather than relying on snippets\n\n## When it runs\n\nWeb search is used automatically by researcher agents during workflows. You do not need to invoke it directly. The researcher decides when to use web search versus paper search based on the topic and source availability. Academic topics lean toward AlphaXiv; engineering and applied topics lean toward web search.","src/content/docs/tools/web-search.md","98f96bb230fcf6c9",{"html":612,"metadata":613},"\u003Cp>Feynman’s web search tool retrieves current information from the web during research workflows. It supports multiple simultaneous queries, domain filtering, recency filtering, and optional full-page content retrieval. The researcher agent uses web search alongside AlphaXiv to gather evidence from non-academic sources like blog posts, documentation, news, and code repositories.\u003C/p>\n\u003Ch2 id=\"routing-modes\">Routing modes\u003C/h2>\n\u003Cp>Feynman supports three web search backends. You can configure which one to use or let Feynman choose automatically:\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 for all web searches\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>gemini\u003C/code>\u003C/td>\u003Ctd>Force Gemini grounding (default, zero-config)\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 grounding via a signed-in Chromium profile. No API keys are required. This works on macOS and Linux where a Chromium-based browser is installed and signed in to a Google account.\u003C/p>\n\u003Cp>For headless environments, CI pipelines, or servers without a browser, configure an explicit API key for either Perplexity or Gemini in \u003Ccode>~/.feynman/web-search.json\u003C/code>.\u003C/p>\n\u003Ch2 id=\"configuration\">Configuration\u003C/h2>\n\u003Cp>Check the current search configuration:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> search\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Edit \u003Ccode>~/.feynman/web-search.json\u003C/code> to configure the backend:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">route\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">auto\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">perplexityApiKey\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">pplx-...\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\"> \"\u003C/span>\u003Cspan style=\"color:#998418;--shiki-dark:#B8A965\">geminiApiKey\u003C/span>\u003Cspan style=\"color:#99841877;--shiki-dark:#B8A96577\">\"\u003C/span>\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">:\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\"> \"\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\">AIza...\u003C/span>\u003Cspan style=\"color:#B5695977;--shiki-dark:#C98A7D77\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#999999;--shiki-dark:#666666\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Set \u003Ccode>route\u003C/code> to \u003Ccode>auto\u003C/code>, \u003Ccode>perplexity\u003C/code>, or \u003Ccode>gemini\u003C/code>. When using \u003Ccode>auto\u003C/code>, Feynman prefers Perplexity if a key is present, then falls back to Gemini.\u003C/p>\n\u003Ch2 id=\"search-features\">Search features\u003C/h2>\n\u003Cp>The web search tool supports several capabilities that the researcher agent leverages automatically:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple queries\u003C/strong> — Send 2-4 varied-angle queries simultaneously for broader coverage of a topic\u003C/li>\n\u003Cli>\u003Cstrong>Domain filtering\u003C/strong> — Restrict results to specific domains like \u003Ccode>arxiv.org\u003C/code>, \u003Ccode>github.com\u003C/code>, or \u003Ccode>nature.com\u003C/code>\u003C/li>\n\u003Cli>\u003Cstrong>Recency filtering\u003C/strong> — Filter results by date, useful for fast-moving topics where only recent work matters\u003C/li>\n\u003Cli>\u003Cstrong>Full content retrieval\u003C/strong> — Fetch complete page content for the most important results rather than relying on snippets\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"when-it-runs\">When it runs\u003C/h2>\n\u003Cp>Web search is used automatically by researcher agents during workflows. You do not need to invoke it directly. The researcher decides when to use web search versus paper search based on the topic and source availability. Academic topics lean toward AlphaXiv; engineering and applied topics lean toward web search.\u003C/p>",{"headings":614,"localImagePaths":628,"remoteImagePaths":629,"frontmatter":630,"imagePaths":631},[615,618,621,622,625],{"depth":26,"slug":616,"text":617},"routing-modes","Routing modes",{"depth":26,"slug":619,"text":620},"default-behavior","Default behavior",{"depth":26,"slug":594,"text":129},{"depth":26,"slug":623,"text":624},"search-features","Search features",{"depth":26,"slug":626,"text":627},"when-it-runs","When it runs",[],[],{"title":606,"description":607,"section":576,"order":26},[],"tools/web-search.md","tools/session-search",{"id":633,"data":635,"body":638,"filePath":639,"digest":640,"rendered":641,"legacyId":657},{"title":636,"description":637,"section":576,"order":51},"Session Search","Search prior Feynman session transcripts to recall past research.","The session search tool recovers prior Feynman work from stored session transcripts. Every Feynman session is persisted to disk, and session search lets you find and reference past research, findings, and generated artifacts without starting over.\n\n## Installation\n\nSession search is an optional package. Install it with:\n\n```bash\nfeynman packages install session-search\n```\n\nOnce installed, the `/search` slash command and automatic session recall become available in all future sessions.\n\n## Usage\n\nInside the REPL, invoke session search directly:\n\n```\n/search transformer scaling laws\n```\n\nYou can also reference prior work naturally in conversation. Feynman invokes session search automatically when you mention previous research or ask to continue earlier work. For example, saying \"pick up where I left off on protein folding\" triggers a session search behind the scenes.\n\n## What it searches\n\nSession search indexes the full contents of your session history:\n\n- Full session transcripts including your prompts and Feynman's responses\n- Tool outputs and agent results from workflows like deep research and literature review\n- Generated artifacts such as drafts, reports, and comparison matrices\n- Metadata like timestamps, topics, and workflow types\n\nThe search uses both keyword matching and semantic similarity to find relevant past work. Results include the session ID, timestamp, and relevant excerpts so you can quickly identify which session contains the information you need.\n\n## When to use it\n\nSession search is valuable when you want to pick up a previous research thread without rerunning an expensive workflow, find specific findings or citations from a past deep research session, reference prior analysis in a new research context, or check what you have already investigated on a topic before launching a new round.\n\n## How it works\n\nThe `@kaiserlich-dev/pi-session-search` package provides the underlying search and indexing. Sessions are stored in `~/.feynman/sessions/` by default (configurable with `--session-dir`). The index is built incrementally as new sessions complete, so search stays fast even with hundreds of past sessions.","src/content/docs/tools/session-search.md","ffa683a7c4259fb3",{"html":642,"metadata":643},"\u003Cp>The session search tool recovers prior Feynman work from stored session transcripts. Every Feynman session is persisted to disk, and session search lets you find and reference past research, findings, and generated artifacts without starting over.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Cp>Session search is an optional package. Install it with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> packages\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> install\u003C/span>\u003Cspan style=\"color:#B56959;--shiki-dark:#C98A7D\"> session-search\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Once installed, the \u003Ccode>/search\u003C/code> slash command and automatic session recall become available in all future sessions.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL, invoke session search directly:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/search transformer scaling laws\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You can also reference prior work naturally in conversation. Feynman invokes session search automatically when you mention previous research or ask to continue earlier work. For example, saying “pick up where I left off on protein folding” triggers a session search behind the scenes.\u003C/p>\n\u003Ch2 id=\"what-it-searches\">What it searches\u003C/h2>\n\u003Cp>Session search indexes the full contents of your session history:\u003C/p>\n\u003Cul>\n\u003Cli>Full session transcripts including your prompts and Feynman’s responses\u003C/li>\n\u003Cli>Tool outputs and agent results from workflows like deep research and literature review\u003C/li>\n\u003Cli>Generated artifacts such as drafts, reports, and comparison matrices\u003C/li>\n\u003Cli>Metadata like timestamps, topics, and workflow types\u003C/li>\n\u003C/ul>\n\u003Cp>The search uses both keyword matching and semantic similarity to find relevant past work. Results include the session ID, timestamp, and relevant excerpts so you can quickly identify which session contains the information you need.\u003C/p>\n\u003Ch2 id=\"when-to-use-it\">When to use it\u003C/h2>\n\u003Cp>Session search is valuable when you want to pick up a previous research thread without rerunning an expensive workflow, find specific findings or citations from a past deep research session, reference prior analysis in a new research context, or check what you have already investigated on a topic before launching a new round.\u003C/p>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The \u003Ccode>@kaiserlich-dev/pi-session-search\u003C/code> package provides the underlying search and indexing. Sessions are stored in \u003Ccode>~/.feynman/sessions/\u003C/code> by default (configurable with \u003Ccode>--session-dir\u003C/code>). The index is built incrementally as new sessions complete, so search stays fast even with hundreds of past sessions.\u003C/p>",{"headings":644,"localImagePaths":653,"remoteImagePaths":654,"frontmatter":655,"imagePaths":656},[645,647,648,651,652],{"depth":26,"slug":646,"text":291},"installation",{"depth":26,"slug":339,"text":340},{"depth":26,"slug":649,"text":650},"what-it-searches","What it searches",{"depth":26,"slug":348,"text":349},{"depth":26,"slug":342,"text":343},[],[],{"title":636,"description":637,"section":576,"order":51},[],"tools/session-search.md","tools/preview",{"id":658,"data":660,"body":663,"filePath":664,"digest":665,"rendered":666,"legacyId":683},{"title":661,"description":662,"section":576,"order":105},"Preview","Preview generated research artifacts as rendered HTML or PDF.","The preview tool renders generated artifacts as polished HTML or PDF documents and opens them in your browser or PDF viewer. This is particularly useful for research briefs, paper drafts, and any document that contains LaTeX math, tables, or complex formatting that does not render well in a terminal.\n\n## Usage\n\nInside the REPL, preview the most recent artifact:\n\n```\n/preview\n```\n\nFeynman suggests previewing automatically when you generate artifacts that benefit from rendered output. You can also preview a specific file:\n\n```\n/preview outputs/scaling-laws-brief.md\n```\n\n## Requirements\n\nPreview requires `pandoc` for Markdown-to-HTML and Markdown-to-PDF rendering. Install the preview dependencies with:\n\n```bash\nfeynman --setup-preview\n```\n\nOn macOS with Homebrew, the setup command attempts to install pandoc automatically. On Linux, it checks for pandoc in your package manager. If the automatic install does not work, install pandoc manually from [pandoc.org](https://pandoc.org/installing.html) and rerun `feynman --setup-preview` to verify.\n\n## Supported formats\n\nThe preview tool handles three output formats:\n\n- **Markdown** -- Rendered as HTML with full LaTeX math support via KaTeX, syntax-highlighted code blocks, and clean typography\n- **HTML** -- Opened directly in your default browser with no conversion step\n- **PDF** -- Generated via pandoc with LaTeX rendering, suitable for sharing or printing\n\n## How it works\n\nThe `pi-markdown-preview` package handles the rendering pipeline. For Markdown files, it converts to HTML with a clean stylesheet, proper code highlighting, and rendered math equations. The preview opens in your default browser as a local file.\n\nFor documents with heavy math notation (common in research drafts), the preview ensures all LaTeX expressions render correctly. Inline math (`$...$`) and display math (`$$...$$`) are both supported. Tables, citation lists, and nested blockquotes all render with proper formatting.\n\n## Customization\n\nThe preview stylesheet is designed for research documents and includes styles for proper heading hierarchy, code blocks with syntax highlighting, tables with clean borders, math equations (inline and display), citation formatting, and blockquotes. The stylesheet is bundled with the package and does not require any configuration.","src/content/docs/tools/preview.md","aebd652dc47e334e",{"html":667,"metadata":668},"\u003Cp>The preview tool renders generated artifacts as polished HTML or PDF documents and opens them in your browser or PDF viewer. This is particularly useful for research briefs, paper drafts, and any document that contains LaTeX math, tables, or complex formatting that does not render well in a terminal.\u003C/p>\n\u003Ch2 id=\"usage\">Usage\u003C/h2>\n\u003Cp>Inside the REPL, preview the most recent artifact:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Feynman suggests previewing automatically when you generate artifacts that benefit from rendered output. You can also preview a specific file:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>/preview outputs/scaling-laws-brief.md\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"requirements\">Requirements\u003C/h2>\n\u003Cp>Preview requires \u003Ccode>pandoc\u003C/code> for Markdown-to-HTML and Markdown-to-PDF rendering. Install the preview dependencies with:\u003C/p>\n\u003Cpre class=\"astro-code astro-code-themes vitesse-light vitesse-dark\" style=\"background-color:#ffffff;--shiki-dark-bg:#121212;color:#393a34;--shiki-dark:#dbd7caee; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#59873A;--shiki-dark:#80A665\">feynman\u003C/span>\u003Cspan style=\"color:#A65E2B;--shiki-dark:#C99076\"> --setup-preview\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>On macOS with Homebrew, the setup command attempts to install pandoc automatically. On Linux, it checks for pandoc in your package manager. If the automatic install does not work, install pandoc manually from \u003Ca href=\"https://pandoc.org/installing.html\">pandoc.org\u003C/a> and rerun \u003Ccode>feynman --setup-preview\u003C/code> to verify.\u003C/p>\n\u003Ch2 id=\"supported-formats\">Supported formats\u003C/h2>\n\u003Cp>The preview tool handles three output formats:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Markdown\u003C/strong> — Rendered as HTML with full LaTeX math support via KaTeX, syntax-highlighted code blocks, and clean typography\u003C/li>\n\u003Cli>\u003Cstrong>HTML\u003C/strong> — Opened directly in your default browser with no conversion step\u003C/li>\n\u003Cli>\u003Cstrong>PDF\u003C/strong> — Generated via pandoc with LaTeX rendering, suitable for sharing or printing\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"how-it-works\">How it works\u003C/h2>\n\u003Cp>The \u003Ccode>pi-markdown-preview\u003C/code> package handles the rendering pipeline. For Markdown files, it converts to HTML with a clean stylesheet, proper code highlighting, and rendered math equations. The preview opens in your default browser as a local file.\u003C/p>\n\u003Cp>For documents with heavy math notation (common in research drafts), the preview ensures all LaTeX expressions render correctly. Inline math (\u003Ccode>$...$\u003C/code>) and display math (\u003Ccode>$$...$$\u003C/code>) are both supported. Tables, citation lists, and nested blockquotes all render with proper formatting.\u003C/p>\n\u003Ch2 id=\"customization\">Customization\u003C/h2>\n\u003Cp>The preview stylesheet is designed for research documents and includes styles for proper heading hierarchy, code blocks with syntax highlighting, tables with clean borders, math equations (inline and display), citation formatting, and blockquotes. The stylesheet is bundled with the package and does not require any configuration.\u003C/p>",{"headings":669,"localImagePaths":679,"remoteImagePaths":680,"frontmatter":681,"imagePaths":682},[670,671,674,677,678],{"depth":26,"slug":339,"text":340},{"depth":26,"slug":672,"text":673},"requirements","Requirements",{"depth":26,"slug":675,"text":676},"supported-formats","Supported formats",{"depth":26,"slug":342,"text":343},{"depth":26,"slug":494,"text":495},[],[],{"title":661,"description":662,"section":576,"order":105},[],"tools/preview.md"] \ No newline at end of file diff --git a/website/public/install b/website/public/install index 8b69240..f8d7e9b 100644 --- a/website/public/install +++ b/website/public/install @@ -160,6 +160,27 @@ require_command() { fi } +warn_command_conflict() { + expected_path="$INSTALL_BIN_DIR/feynman" + resolved_path="$(command -v feynman 2>/dev/null || true)" + + if [ -z "$resolved_path" ]; then + return + fi + + if [ "$resolved_path" != "$expected_path" ]; then + step "Warning: current shell resolves feynman to $resolved_path" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" + step "Or launch directly: $expected_path" + + case "$resolved_path" in + *"/node_modules/@companion-ai/feynman/"* | *"/node_modules/.bin/feynman") + step "If that path is an old global npm install, remove it with: npm uninstall -g @companion-ai/feynman" + ;; + esac + fi +} + resolve_release_metadata() { normalized_version="$(normalize_version "$VERSION")" @@ -290,20 +311,22 @@ add_to_path case "$path_action" in added) step "PATH updated for future shells in $path_profile" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; configured) step "PATH is already configured for future shells in $path_profile" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; skipped) step "PATH update skipped" - step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && feynman" + step "Run now: export PATH=\"$INSTALL_BIN_DIR:\$PATH\" && hash -r && feynman" ;; *) step "$INSTALL_BIN_DIR is already on PATH" - step "Run: feynman" + step "Run: hash -r && feynman" ;; esac +warn_command_conflict + printf 'Feynman %s installed successfully.\n' "$resolved_version" diff --git a/website/public/install.ps1 b/website/public/install.ps1 index ea28733..cd06e40 100644 --- a/website/public/install.ps1 +++ b/website/public/install.ps1 @@ -146,6 +146,16 @@ Workarounds: Write-Host "$installBinDir is already on PATH." } + $resolvedCommand = Get-Command feynman -ErrorAction SilentlyContinue + if ($resolvedCommand -and $resolvedCommand.Source -ne $shimPath) { + Write-Warning "Current shell resolves feynman to $($resolvedCommand.Source)" + Write-Host "Run in a new shell, or run: `$env:Path = '$installBinDir;' + `$env:Path" + Write-Host "Then run: feynman" + if ($resolvedCommand.Source -like "*node_modules*@companion-ai*feynman*") { + Write-Host "If that path is an old global npm install, remove it with: npm uninstall -g @companion-ai/feynman" + } + } + Write-Host "Feynman $resolvedVersion installed successfully." } finally { if (Test-Path $tmpDir) { diff --git a/website/src/content/docs/getting-started/installation.md b/website/src/content/docs/getting-started/installation.md index 017b9be..5154e2c 100644 --- a/website/src/content/docs/getting-started/installation.md +++ b/website/src/content/docs/getting-started/installation.md @@ -17,6 +17,8 @@ curl -fsSL https://feynman.is/install | bash The installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The launcher is installed to `~/.local/bin`, the bundled runtime is unpacked into `~/.local/share/feynman`, and your `PATH` is updated when needed. +If you previously installed Feynman via `npm`, `pnpm`, or `bun` and still see local Node.js errors after a curl install, your shell is probably still resolving the older global binary first. Run `which -a feynman`, then `hash -r`, or launch the standalone shim directly with `~/.local/bin/feynman`. + By default, the one-line installer tracks the rolling `edge` channel from `main`. On **Windows**, open PowerShell as Administrator and run: @@ -45,7 +47,7 @@ You can also pin an exact version by replacing `stable` with a version such as ` ## pnpm -If you already have Node.js 20.18.1+ installed, you can install Feynman globally via `pnpm`: +If you already have Node.js `20.18.1` or newer installed, you can install Feynman globally via `pnpm`: ```bash pnpm add -g @companion-ai/feynman @@ -59,6 +61,8 @@ pnpm dlx @companion-ai/feynman ## bun +`bun add -g` and `bunx` still use your local Node runtime for Feynman itself, so the same Node.js `20.18.1+` requirement applies. + ```bash bun add -g @companion-ai/feynman ``` @@ -98,6 +102,7 @@ For contributing or running Feynman from source: ```bash git clone https://github.com/getcompanion-ai/feynman.git cd feynman +nvm use || nvm install pnpm install pnpm start ```