Technical Documentation: getcompanion-ai/feynman
ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference
Overview (`README.md`)
Install
macOS / Linux:
curl -fsSL https://feynman.is/install | bashWindows (PowerShell):
irm https://feynman.is/install.ps1 | iexOr with npm and Node.js 22.22 or newer: npm install @companion-ai/feynman.
Then sign in to a model provider:
feynman setupThe installation guide covers pinned versions, uninstalling, and the skills-only bundle for Codex and OpenCode. The setup guide covers local models and editors such as Zed.
Use
feynman "what do we know about scaling laws"
feynman lit "RLHF alternatives"
feynman deepresearch "mechanistic interpretability"| Workflow | What it does |
|---|---|
/deepresearch <topic> |
Planned investigation with parallel researchers and citation checks |
/lit <topic or lab> |
Literature review: consensus, disagreements, open questions |
/review |
Critique with severity levels and a revision plan |
/audit |
Paper claims compared with its public code |
/replicate |
Replication plan; runs only after you choose an environment |
/recipe <task> |
Ranked ML training recipes with datasets and code |
/compare <topic> |
Source comparison matrix |
/draft <topic> |
Paper-style draft from research findings |
/autoresearch |
Bounded experiment loop against a benchmark |
/summarize |
Summary of a paper, repository, or PDF |
Results are saved to outputs/ (drafts to papers/). /lit, /deepresearch, and /recipe also write a provenance file listing the sources used and what was verified.
Sources
Feynman searches alphaXiv, Semantic Scholar, OpenAlex, arXiv, PubMed, Europe PMC, bioRxiv, medRxiv, Crossref, the web, and Hugging Face, and reads local PDFs and documents. Free OPENALEX_API_KEY and SEMANTIC_SCHOLAR_API_KEY keys avoid the shared rate limits. It runs on stock Pi with four research agents: researcher, verifier, reviewer, and writer.
Telemetry
Feynman sends anonymous usage data to PostHog: commands, workflows, tools, models, token counts, and errors with their messages and stack traces (your home folder shown as ~). It never sends prompts, model output, paper content, or tool arguments. Turn it off with FEYNMAN_TELEMETRY=off. What is sent
Contributing
git clone https://github.com/Companion-Inc/feynman.git
cd feynman
npm install
npm testSee CONTRIBUTING.md.
Docs · Release notes · MIT License
Overview (`evals/README.md`)
Research-quality evals
A small fixed eval for Feynman's research workflows. It runs /lit (or /deepresearch) on each question in questions.jsonl, then scores the artifacts with deterministic checks against arXiv, Crossref and doi.org. No LLM judge.
This directory is not in the npm package (package.json files does not list it).
Rule
Run the eval before and after any change to prompts (prompts/, .feynman/agents/, .feynman/SYSTEM.md, skills/), tools, extensions, or the Pi version. Use the same model and question ids for both runs, and commit both result files with the change.
Run
Build first (npm ci && npm run build). Each question gets a fresh temp workspace and its own FEYNMAN_HOME, so your real ~/.feynman is never read or written. The model's provider comes from a models.json that is copied into each isolated home. Example for an OpenAI-compatible gateway (the key is read from the environment and never written to disk):
{
"providers": {
"ferrylane-openai": {
"baseUrl": "https://gateway.ferrylane.ai/v1",
"api": "openai-responses",
"apiKey": "$FERRYLANE_API_KEY",
"models": [
{ "id": "gpt-5.6-terra", "reasoning": true, "input": ["text"], "contextWindow": 400000, "maxTokens": 64000 }
]
}
}
}export FERRYLANE_API_KEY="$(cat ~/.ferrylane/api-key)"
node evals/run.mjs --model ferrylane-openai/gpt-5.6-terra --models-json /path/to/models.json \
[--ids q01,q04] [--workflow lit|deepresearch] [--concurrency 2] [--timeout-min 45]Built-in providers work the same way; pass their API key env var (for example OPENAI_API_KEY) and omit --models-json.
--workflow deepresearch sends one approval turn (--continue) after the plan gate. --rescore evals/results/<file>.jsonl re-scores the kept workdirs without rerunning Feynman, which is useful after a scorer change.
Output goes to evals/results/<date>-<workflow>-<model>.jsonl (one row per question: git SHA, dirty flag, Feynman version, scores, citation failures, usage, and the workdir (under ~/.cache/feynman-evals/ by default, --work-root to change) holding the full workspace, session JSONL and feynman.log) and a .md summary table.
Scores
| Column | Meaning |
|---|---|
done |
A final outputs/<slug>.md exists with its outputs/<slug>.provenance.md sidecar. |
cites |
Distinct arXiv IDs and DOIs in the final output. |
valid |
Share of those identifiers that resolve (arXiv API id_list; Crossref, falling back to the doi.org handle API for non-Crossref DOIs). Lookups that fail on the network are left out. Unresolvable IDs are listed in unresolved. |
title |
Among resolved IDs with a known title, the share that match the output: the resolved title is at least 60% present (by word tokens) on a line that carries the ID, or, for author-year citations, the resolved first author's surname is on that line. Low values flag IDs attached to the wrong paper; see title_mismatch. Short-name citations ("When2Think, arXiv:…") also miss, so read the listed rows before calling something a hallucination. |
recall |
Share of the question's expected key papers that appear in the final output, by any listed identifier or by exact normalized title. 0 when there is no final output. |
wall, tokens, cost |
Wall time for the whole run, and token and cost totals summed over every Pi session file in the isolated home and temp dir (parent and subagent sessions, deduplicated). Cost is 0 when the provider's models.json entry has no cost block. |
The first baseline, results/2026-09-23-lit-ferrylane-openai_claude-sonnet-5.*, ran q01, q04, q07 and q10 on Feynman 0.5.0. It used claude-sonnet-5 through the Ferrylane gateway because the gateway's GPT quota was exhausted that day.
Treat a single run as noisy. Compare before and after on the same ids, and look at the listed failures rather than only the percentages.
Questions
questions.jsonl has 12 questions, each with expected key papers and a source:
q01–q06: the six queries from Feynman's paper-discovery search benchmark (test-time compute, speculative decoding, sparse autoencoders, CRISPR base editing, mixture of experts, RAG).q07–q09: verbatim questions from LitQA2 (futurehouse/lab-bench, CC-BY-SA-4.0). The key paper is the item'ssourcesDOI. These three items are redistributed under CC-BY-SA-4.0 with that attribution.q10–q12: hand-authored topics outside ML and biology (econometrics, weather forecasting, cosmology) whose key papers are unambiguous.
Keep the set fixed. Adding or editing a question breaks comparison with earlier result files; if you must, bump the question id instead of reusing one.
Next lanes, not built yet: ScholarQA-CS2 (AstaBench) citation precision and recall for /lit, DeepResearch Bench FACT for /deepresearch, and SciCoQA's 92 real paper–code discrepancies for /audit recall.
Overview (`website/README.md`)
Astro + React + TypeScript + shadcn/ui
This is a template for a new Astro project with React, TypeScript, and shadcn/ui.
Adding components
To add components to your app, run the following command:
npx shadcn@latest add buttonThis will place the ui components in the src/components directory.
Using components
To use the components in your app, import them in an .astro file:
---
import { Button } from "@/components/ui/button"
---
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Astro App</title>
</head>
<body>
<div class="grid h-screen place-items-center content-center">
<Button>Button</Button>
</div>
</body>
</html>Website Src Content Docs Getting Started Quickstart (`website/src/content/docs/getting-started/quickstart.md`)
title: Quick Start section: Getting Started order: 2
This guide assumes you have installed Feynman and run feynman setup.
Launch the REPL
feynmanThis opens an interactive session in the current directory. An interactive launch continues the most recent session for that directory; pass --new-session to start fresh. Type a research question and press Enter.
Run a one-shot prompt
To get one answer without entering the REPL:
feynman --prompt "Summarize the key findings of Attention Is All You Need"Feynman prints the response and exits.
Start a deep research run
feynman
> /deepresearch What are the current approaches to mechanistic interpretability in LLMs?Feynman first writes a plan to outputs/.plans/<slug>.md and asks you to confirm it. After you reply yes, it gathers evidence, delegating to researcher agents when the topic is broad enough, then drafts, verifies citations, and writes the final brief to outputs/<slug>.md with a .provenance.md sidecar.
Find an ML training recipe
For applied ML work, use /recipe when you need a practical starting point rather than a broad literature survey:
feynman recipe "fine-tune a small model for math reasoning"Feynman ranks candidate recipes by result quality and feasibility, checks datasets and implementation paths when possible, and writes the brief to outputs/<slug>-recipe.md.
Work with files
Feynman reads and writes files in its working directory. Use --cwd to point it at a project folder:
feynman --cwd ~/papers
> /review arxiv:2301.07041You can also reference local files directly in prompts.
Explore commands
Type /help inside the REPL to see Feynman's commands. Every research workflow also runs directly from the shell:
feynman deepresearch "transformer architectures for protein folding"See the Slash Commands and CLI Commands references.
Website Src Content Docs Agents Researcher (`website/src/content/docs/agents/researcher.md`)
title: Researcher section: Agents order: 1
The researcher is Feynman's evidence-gathering subagent. It searches paper databases and the web, reads the most relevant sources, and writes an evidence file that the lead agent synthesizes. Its definition lives in .feynman/agents/researcher.md.
What it does
The researcher receives a task brief from a workflow, searches broadly, then narrows using the terminology and names it finds. It runs 2–4 reworded queries for each question and merges the results instead of trusting one query's ranking.
For broad deep research and literature review tasks, workflow prompts can run several researchers in parallel through one async workflow script, outputs/.plans/<slug>-workflow.js, using await runs.all([{key, agent, task, output}, ...]) and run with subagent({ workflow: "./outputs/.plans/<slug>-workflow.js" }), each covering a different angle. The lead agent consumes the ordered results and verifies the declared output files before synthesis. Narrow tasks skip the researcher and stay lead-owned.
Tools
The researcher runs with high thinking and these tools: file and shell tools (read, write, edit, bash, grep, find, ls), web_search, fetch_content, get_search_content, feynman_science_database_search, and the Hugging Face tools hf_dataset_info, hf_repo_files, and hf_repo_read_file. It does not load the alpha_* tools; it uses feynman alpha search through the shell when alphaXiv is logged in.
Source routing
| Need | First choice | Then |
|---|---|---|
| General ML/CS papers | Semantic Scholar (citation-sorted) | feynman alpha search when logged in |
| Biomedical papers | PubMed, then Europe PMC for open-access full-text sections | Semantic Scholar for citation counts |
| Citation graph | OpenAlex citations and references | Semantic Scholar citation counts |
| Conceptual or recent work keyword search misses | OpenAlex semantic search | Semantic Scholar by relevance |
| Web, docs, repos, grey literature | web_search |
fetch_content on the best results |
| Known paper ID | arXiv ID or Crossref DOI lookup | fetch_content on arxiv.org/html/ |
Output
The researcher writes to the output path the workflow assigns. The file contains an evidence table with stable numeric source IDs and at least five entries, findings that cite those IDs inline, a numbered Sources list with direct URLs, and a Coverage Status section listing what was checked, what remains uncertain, and any tasks it could not complete. It returns a one-line summary to the lead agent rather than the full findings.
Every source needs a checkable URL, and the researcher labels inferences separately from claims it read directly.
For ML training, replication, benchmark, or dataset tasks, it organizes findings as ranked recipes: reported result, dataset (size, split, access, schema if checked), method and hyperparameters, compute, implementation code paths, and a verification status of verified, unverified, blocked, or inferred. A dataset is not described as usable unless its availability and format were checked.
Used by
Workflows that can delegate to the researcher: /deepresearch, /lit, /review, /audit, /replicate, /recipe, /compare, and /summarize (one researcher per chunk for very large sources).
Website Src Content Docs Agents Reviewer (`website/src/content/docs/agents/reviewer.md`)
title: Reviewer section: Agents order: 2
The reviewer applies skeptical but fair internal research scrutiny to papers, drafts, and research artifacts. It does not predict venue acceptance; it produces a critique and a revision plan. Its definition lives in .feynman/agents/reviewer.md.
What it does
The reviewer checks novelty, clarity, empirical rigor, and reproducibility. It looks for missing or weak baselines, missing ablations, evaluation mismatches, benchmark leakage, insufficient statistical evidence, claims that outrun the experiments, sections left over from earlier drafts, notation drift, and "verified" statements that do not show the check behind them. It keeps looking after the first major problem.
When a workflow frames the task as a verification pass, the reviewer acts as an adversarial auditor: a citation attached to a claim is not enough if the source does not support its exact wording.
Output
The reviewer writes two parts to the output path the workflow assigns:
- Structured review -- summary, strengths, weaknesses graded FATAL, MAJOR, or MINOR, questions for the authors, a verdict with an overall confidence score, and a prioritized revision plan.
- Inline annotations -- exact quotes from the artifact, each tied to a weakness or question ID from the structured review.
Every weakness must point to a specific passage or section. The review ends with a Sources section for anything it inspected.
Used by
/review-- the main critique pass on larger artifacts/deepresearch-- reviews the cited brief after the verifier finishes, when researcher subagents were used/lit-- checks the cited review for unsupported claims, logical gaps, and single-source critical findings
Workflows fix FATAL issues before delivery and record MAJOR issues as open questions.
Website Src Content Docs Agents Verifier (`website/src/content/docs/agents/verifier.md`)
title: Verifier section: Agents order: 4
The verifier post-processes a draft: it anchors each factual claim to a source from the research files, checks that every source URL resolves and supports the claim, and removes what cannot be supported. Its definition lives in .feynman/agents/verifier.md.
What it does
- Anchor claims -- insert inline citations such as
[1]after each factual claim, merging the numbering from multiple research files into one sequence. - Verify URLs -- fetch each source with
fetch_content. Dead links and redirects to unrelated content are replaced with an alternative, such as an archived copy, or removed along with claims that depended only on them. - Check meaning -- a citation counts only if the source supports the specific number, quote, or conclusion attached to it.
- Check paper identity -- look up each cited DOI or arXiv ID in two indexes (arXiv or Crossref, plus OpenAlex or Semantic Scholar) and flag any title, year, or first-author mismatch instead of keeping the citation silently.
- Audit results -- scores, benchmarks, tables, figures, dataset sizes, and claims of improvement must map to a source URL, research note, raw artifact, or script. Anything that does not is removed or turned into a TODO.
- Build Sources -- a numbered list at the end where every entry is cited at least once and every citation has an entry.
It does not use words like verified or confirmed unless the underlying evidence is present. When it removes material, it adds a short Removed Unsupported Claims section.
Tools
The verifier runs with medium thinking and these tools: file and shell tools (read, write, edit, bash, grep, find, ls), web_search, fetch_content, get_search_content, and feynman_science_database_search.
Output
The verifier writes the complete cited document to the output path the workflow assigns. It keeps the draft's structure but may delete or soften unsupported claims.
Used by
/deepresearch-- cites the draft when researcher subagents were used, before the reviewer runs/lit-- cites the literature review before the reviewer checks it/draft-- cites the writer's draft/compare-- cites the final comparison matrix/audit-- verifies sources and adds citations for non-trivial audits
Website Src Content Docs Agents Writer (`website/src/content/docs/agents/writer.md`)
title: Writer section: Agents order: 3
The writer turns research files into a clear, structured document. It writes only from the evidence it is given and leaves citation to the verifier. Its definition lives in .feynman/agents/writer.md.
What it does
The writer reads the research files a workflow supplies and organizes them into a draft with an executive summary, themed sections, and an Open Questions section for unresolved issues, gaps, and disagreements between sources.
It does not introduce claims, tools, or sources that are not in the input files. Caveats and disagreements stay in the text, and tentative or inferred results are labeled as such. Missing results become gaps or TODOs, never plausible-looking data.
The writer has file and shell tools only (read, write, edit, bash, grep, find, ls); it has no search or fetch tools.
Citations
The writer does not add inline citations or a Sources section. The verifier adds both in a separate pass. Before finishing, the writer checks that every strong factual statement has an obvious home in the research files.
Visuals
The writer uses Markdown tables for quantitative comparisons and Mermaid diagrams for architectures or pipelines, only when the supplied evidence supports them. Plots use source-backed data only, with the plotting script saved next to the draft. Every visual gets a caption that names its data source.
Used by
The /draft workflow uses the writer when the draft should be produced from already-collected notes, then runs the verifier on its output. Other workflows, including /deepresearch, have the lead agent write the draft directly.
Website Src Content Docs Getting Started Configuration (`website/src/content/docs/getting-started/configuration.md`)
title: Configuration section: Getting Started order: 4
Feynman stores user-level configuration and state under ~/.feynman/, created on first run. Set FEYNMAN_HOME to use <FEYNMAN_HOME>/.feynman instead.
Directory structure
~/.feynman/
├── agent/ # Pi agent dir (PI_CODING_AGENT_DIR)
│ ├── settings.json # Default model, thinking level, packages
│ ├── auth.json # Provider credentials (user-only permissions)
│ ├── models.json # Custom and local providers
│ ├── web-search.json # Web search provider and keys
│ ├── web-search-cache/ # Fetched pages, kept for one hour
│ ├── extensions/subagent/config.json # Subagent runtime config
│ └── npm/ # Optional Pi packages from `feynman packages install`
├── sessions/ # Session transcripts (JSONL)
├── bin/ # `feynman` shim used by child agents
└── .state/ # Telemetry install ID and first-run notice stateagent/settings.json is the main configuration file. Feynman fills in missing defaults on every launch, and you can edit it by hand. The model fields look like:
{
"defaultProvider": "openai",
"defaultModel": "gpt-5.6-terra",
"defaultThinkingLevel": "medium"
}Model configuration
defaultProvider and defaultModel set the model used when you launch without --model. Only providers you have authenticated appear in feynman model list. To add a provider, sign in to it, then switch the default:
feynman model login anthropic
feynman model list
feynman model set anthropic/claude-opus-5-5feynman model login with no provider shows the OAuth and API-key choices. model set accepts provider/model or provider:model. Pro-class model IDs are rejected here and in --model. See Setup for OAuth on headless machines, Amazon Bedrock, and local models.
Web search configuration
Web search, page fetching, and PDF extraction come from the bundled pi-web-access package, configured in ~/.feynman/agent/web-search.json. The default auto route works without keys through Exa and uses any other provider you have configured. Set a provider and key from the CLI:
feynman search status
feynman search set brave <api-key> # or exa, tavily, perplexity, kagi, auto, ... (`feynman search set` lists all)
feynman search clear # back to auto, keys keptThe pi-web-access README documents every provider and option, including PDF extraction.
Subagent model overrides
The bundled subagents (researcher, reviewer, writer, verifier) inherit the main research model. To pin one to another model, use /subagents or set subagents.agentOverrides.<name>.model in ~/.feynman/agent/settings.json; remove it to inherit again. Feynman sets subagents.agentExcludeDirs to ["~/.agents"] so agent files there cannot replace the bundled agents, and subagents.defaultSubagentOnlyExtensions to its research tools and pi-web-access so every subagent can search, including foreground runs. It rewrites that list on each launch unless you replace it with your own.
The subagent runtime config at ~/.feynman/agent/extensions/subagent/config.json defaults to background delegation on and missions and the fleet view off. Feynman fills in only missing values and leaves your changes alone.
Thinking levels
defaultThinkingLevel sets how much the model reasons before responding: off, minimal, low, medium (default), high, xhigh, or max, subject to the active model's capabilities. Override it for one run:
feynman --thinking highEnvironment variables
Feynman reads these environment variables. FEYNMAN_MODEL, FEYNMAN_THINKING, and FEYNMAN_SERVICE_TIER override settings.json for that run. Feynman also loads a .env file from the current directory.
| Variable | Description |
|---|---|
FEYNMAN_MODEL |
Model to use instead of the default (same as --model) |
FEYNMAN_HOME |
Override the parent directory used to create .feynman (default parent: ~) |
FEYNMAN_THINKING |
Thinking level (same as --thinking) |
FEYNMAN_SERVICE_TIER |
Request service tier (same as --service-tier) |
ANTHROPIC_API_KEY |
Anthropic API key |
OPENAI_API_KEY |
OpenAI API key |
GEMINI_API_KEY |
Google Gemini API key |
DATALAB_API_KEY |
Optional Datalab key for layout-aware PDF-to-Markdown extraction |
AWS_PROFILE |
Preferred AWS profile for Amazon Bedrock |
EXA_API_KEY, PERPLEXITY_API_KEY, TAVILY_API_KEY, ... |
Web search provider keys read by pi-web-access |
OPENALEX_API_KEY |
Free OpenAlex key (create one); without one, requests share a small anonymous daily budget |
SEMANTIC_SCHOLAR_API_KEY |
Optional free Semantic Scholar key (request one) so searches use your own rate limit instead of the shared anonymous pool |
CROSSREF_MAILTO |
Your email, sent to Crossref so requests use its faster polite pool (3 per second instead of 1) |
NCBI_API_KEY |
Optional NCBI E-utilities key; NCBI allows 10 requests per second with a key instead of 3 |
FEYNMAN_TELEMETRY |
Set to off to disable all Feynman telemetry (DO_NOT_TRACK=1 also works) |
Telemetry
Feynman collects anonymous usage telemetry by default and shows a one-time notice the first time it runs: inside the interactive session (including Pi's fullscreen UI), or on stderr for a one-shot --prompt run. Telemetry goes to Feynman's PostHog project under a random install ID stored in ~/.feynman/.state/telemetry.json. Person profiles and GeoIP lookup are off.
Feynman never sends prompts, model output, paper or document content, or tool arguments. When something fails, it sends the error message and stack trace, the end of Pi's error output, and a failed tool's error text, with your home folder shown as ~. These can include file paths inside your projects.
To opt out, set either variable in your shell profile:
export FEYNMAN_TELEMETRY=off
export DO_NOT_TRACK=1feynman status shows whether telemetry is on.
What is sent:
| Event | Properties |
|---|---|
feynman_command_started, feynman_command_completed, feynman_command_failed |
Command and allow-listed subcommand, output mode, whether a prompt, model, service tier, or new-session flag was given, duration, exit code, error name and message; for a failed run, the last lines of Pi's error output. Errors thrown by Feynman also go to PostHog error tracking with their stack trace |
feynman_session_started |
Why the session started (startup, resume, new, fork, reload), mode, model and provider name |
feynman_workflow_started |
Workflow name (deepresearch, lit, review, and so on; chat for anything else) |
feynman_workflow_completed |
Workflow name, status (completed, error, aborted), tool and subagent call counts, whether any file under outputs/ or papers/ was written (yes or no), duration |
feynman_tool_used |
Tool name, whether it failed and its error text, whether a subagent called it |
$ai_generation |
PostHog LLM analytics metadata for each model response: model, provider, input, output, and cache token counts, latency, HTTP status, stop reason, error flag and provider error message, and the Pi session ID as the trace ID. No $ai_input or $ai_output_choices. |
Every event also carries the Feynman version, Node.js version, platform, and CPU architecture.
Each send is tried once. The first network or ingest failure turns telemetry off for the rest of that process without printing anything; set FEYNMAN_DEBUG=1 to see the single CLI diagnostic.
Session storage
Sessions are saved as JSONL files in ~/.feynman/sessions/. An interactive feynman launch continues the most recent session for the current directory. Session flags:
feynman --new-session # start a new session
feynman --resume # pick a previous session
feynman --session <path|id> # open a specific session
feynman --fork <path|id> # fork a session into a new one
feynman --no-session # in-memory session, not saved
feynman --export <session.jsonl> [out.html] # export a session to HTML
feynman --session-dir <path> # store sessions somewhere elseDiagnostics
feynman doctor checks alphaXiv auth, the default model and authenticated providers, models.json, pandoc, web search config, and the Pi runtime, and prints next steps. It reports quietStartup: "header" as "header only". feynman status prints a shorter summary.
Website Src Content Docs Getting Started Installation (`website/src/content/docs/getting-started/installation.md`)
title: Installation section: Getting Started order: 1
Feynman installs either as a standalone bundle or as an npm package. The standalone installer is the simplest path: it downloads a prebuilt bundle with its own Node.js runtime and verifies the release SHA-256 before installing.
One-line installer (recommended)
On macOS or Linux:
curl -fsSL https://feynman.is/install | bashThe installer supports macOS (Apple Silicon and Intel) and Linux (x64 and arm64). It installs the launcher to ~/.local/bin, unpacks the bundle into ~/.local/share/feynman, and updates your PATH when needed.
If you previously installed Feynman with npm and your shell still runs the old binary, run which -a feynman, then hash -r, or launch ~/.local/bin/feynman directly.
On Windows, in PowerShell:
irm https://feynman.is/install.ps1 | iexThis installs the Windows x64 bundle under %LOCALAPPDATA%\Programs\feynman and adds its launcher to your user PATH. Windows 11 on Arm runs the same bundle through x64 emulation.
Feynman runs shell commands with Bash, so on Windows also install Git for Windows, which provides it. Without Bash, research runs fail at the first shell command with No bash shell found. To use another Bash (MSYS2, Cygwin), set shellPath in ~/.feynman/agent/settings.json.
Alternative: npm
To install into an existing Node.js environment instead:
npm install @companion-ai/feynmanThis uses your local Node.js, which must satisfy >=22.22.0. npm installs Feynman's Pi runtime as a peer dependency, so if your npm config sets legacy-peer-deps, add --legacy-peer-deps=false.
If you installed the interim @advaitpaliwal/feynman package, migrate once:
npm uninstall -g @advaitpaliwal/feynman
npm install @companion-ai/feynmanUpdating
Rerun the installer you originally used to get the latest tagged release. For npm installs:
npm install @companion-ai/feynman@latestfeynman update only updates optional Pi packages you installed with feynman packages install. The core packages update with Feynman itself.
Pinned releases
To install an exact version:
curl -fsSL https://feynman.is/install | bash -s -- 0.5.3On Windows:
& ([scriptblock]::Create((irm https://feynman.is/install.ps1))) -Version 0.5.3Uninstalling
Feynman has no uninstall command. Remove the launcher and bundle, and optionally the Feynman home directory (settings, sessions, installed packages) and ~/.ahub (alphaXiv login).
On macOS or Linux:
rm -f ~/.local/bin/feynman
rm -rf ~/.local/share/feynman
# optional: settings, sessions, and installed packages
rm -rf ~/.feynman
# optional: alphaXiv login
rm -rf ~/.ahubOn Windows PowerShell:
Remove-Item "$env:LOCALAPPDATA\Programs\feynman" -Recurse -Force
# optional: settings, sessions, and installed packages
Remove-Item "$HOME\.feynman" -Recurse -Force
# optional: alphaXiv login
Remove-Item "$HOME\.ahub" -Recurse -ForceThen remove %LOCALAPPDATA%\Programs\feynman\bin from your user PATH.
For npm installs:
npm uninstall -g @companion-ai/feynmanSkills only
To install only Feynman's research skills, without the terminal app, into ~/.codex/skills/feynman for Codex:
curl -fsSL https://feynman.is/install-skills | bashTo name the target explicitly, use --codex. For a repo-local install into .agents/skills/feynman, or an OpenCode install into .opencode/skills/feynman, pass a scope:
curl -fsSL https://feynman.is/install-skills | bash -s -- --codex
curl -fsSL https://feynman.is/install-skills | bash -s -- --repo
curl -fsSL https://feynman.is/install-skills | bash -s -- --opencodeOn Windows:
irm https://feynman.is/install-skills.ps1 | iex
& ([scriptblock]::Create((irm https://feynman.is/install-skills.ps1))) -Scope Codex
& ([scriptblock]::Create((irm https://feynman.is/install-skills.ps1))) -Scope Repo
& ([scriptblock]::Create((irm https://feynman.is/install-skills.ps1))) -Scope OpenCodeThese installers copy the skills/ and prompts/ trees plus AGENTS.md and CONTRIBUTING.md. They do not install the Feynman terminal, its Node.js runtime, or Pi packages.
After installing
Check the install:
feynman --versionThen run feynman setup to connect a model provider (see Setup). feynman doctor diagnoses configuration, authentication, and runtime problems.
Website Src Content Docs Getting Started Setup (`website/src/content/docs/getting-started/setup.md`)
title: Setup section: Getting Started order: 3
feynman setup connects a model provider, offers optional packages, signs you in to alphaXiv, and offers to install pandoc for preview. You can rerun it at any time.
When you launch feynman without a usable model, it asks only for the model. If you set ANTHROPIC_API_KEY or OPENAI_API_KEY first, it skips the question and opens the chat. If you cancel, Feynman exits and prints how to add a model; nothing you typed is sent.
feynman setupModel access
If no authenticated model is available yet, setup asks how to connect one:
Choose how to configure model access:
> OAuth login (recommended: ChatGPT, Claude Max, Copilot, ...)
API key or custom provider (OpenAI, Anthropic, ZAI, Kimi, MiniMax, ...)
CancelOAuth opens a browser to sign in. On a remote or headless machine where the browser callback cannot reach Feynman, paste the final redirect URL or authorization code into the prompt. The API-key flow lists every provider Pi can sign in to with a key (OpenAI, Anthropic, Google, DeepSeek, Fireworks, Together, NVIDIA, Amazon Bedrock, Google Vertex and more), plus LM Studio, LiteLLM and custom OpenAI-compatible servers. Pi asks for what that provider needs. You can also skip the prompt and set the provider's environment variable (for example ANTHROPIC_API_KEY or OPENAI_API_KEY) instead.
Credentials are stored in ~/.feynman/agent/auth.json with user-only file permissions. Setting the key in your shell or .env keeps it off disk.
Once a provider is connected, setup picks the recommended research model from what you are signed in to, such as openai/gpt-5.6-terra or anthropic/claude-opus-5-5. If you already have a valid default, setup keeps it. To change it later:
feynman model list
feynman model set <provider/model>model set also accepts provider:model. Run feynman model set with no model to pick from a list. Pro-class model IDs are rejected.
Amazon Bedrock
Choose Amazon Bedrock. Pi asks how to sign in: a Bedrock bearer token, an AWS profile, or the AWS credentials already on the machine (AWS_PROFILE, ~/.aws, SSO, ECS/IRSA, and EC2 instance roles). Bedrock models then appear in feynman model list.
Local models: LM Studio, LiteLLM, Ollama, vLLM
For LM Studio, start its local server, load a model, and choose LM Studio (local OpenAI-compatible server). The defaults are:
Base URL: http://localhost:1234/v1
API key: lm-studioFor LiteLLM, start the proxy and choose LiteLLM Proxy (OpenAI-compatible gateway). The default base URL is http://localhost:4000/v1; if the proxy requires a master key, Feynman reads it from LITELLM_MASTER_KEY.
For both, Feynman reads the server's /models endpoint to prefill model IDs.
For Ollama, vLLM, or another OpenAI-compatible server, choose Custom provider (local/self-hosted/proxy). Typical Ollama settings:
API mode: openai-completions
Base URL: http://localhost:11434/v1
Send Authorization header: No
API key / resolver: local
Model id(s): llama3.1:8bCustom providers are saved to ~/.feynman/agent/models.json. Pi only lists a provider that has an apiKey, so if you edit that file by hand, keep a placeholder such as "apiKey": "local" for a local server. To read a key from an environment variable, write it as "$MY_API_KEY"; a bare name such as MY_API_KEY is sent as the key itself. Then confirm and select the model:
feynman model list
feynman model set <provider>/<model-id>Small local models often skip the multi-step research workflows and reply in chat without writing files to outputs/. A context window that is too small causes the same symptom: Ollama's default is only a few thousand tokens. Serve the model with a larger one (for example OLLAMA_CONTEXT_LENGTH=65536 ollama serve) and set the matching contextWindow and maxTokens on the model's entry in ~/.feynman/agent/models.json, since custom models otherwise default to 128k and 16k.
Optional packages
Feynman ships with alphaXiv access, web access, document parsing, subagents, and /btw side conversations. Setup can also install optional Pi packages:
- memory: preference and correction memory across research sessions
- hindsight: Hindsight-backed memory; requires a Hindsight server or Hindsight Cloud account
Skip this step and install later with feynman packages install ; remove one with feynman packages remove . feynman packages list shows both.
alphaXiv and preview
Setup then offers to sign you in to alphaXiv (same as feynman alpha login) and to install pandoc for Markdown-to-HTML/PDF preview (same as feynman setup preview).
Editor integration (ACP)
Feynman runs in ACP editors through pi-acp. In Zed, add to settings.json:
"agent_servers": {
"Feynman": {
"command": "npx",
"args": ["-y", "pi-acp"],
"env": { "PI_ACP_PI_COMMAND": "feynman" }
}
}Rerunning setup
Settings live in ~/.feynman/agent/settings.json. Rerunning setup keeps a valid default model and your other settings. To change one thing, use a targeted command such as feynman model set, feynman model login , or feynman alpha login, or edit the file directly.
Website Src Content Docs Reference Cli Commands (`website/src/content/docs/reference/cli-commands.md`)
title: CLI Commands section: Reference order: 1
This page covers the Feynman CLI commands and flags. feynman help prints the same list. Workflow commands like feynman deepresearch map directly to the REPL slash commands.
Core commands
| Command | Description |
|---|---|
feynman |
Launch the interactive REPL |
feynman chat [prompt] |
Start chat explicitly, optionally with an initial prompt |
feynman help |
Show CLI help |
feynman setup |
Run the guided setup wizard |
feynman setup preview |
Install or verify pandoc |
feynman doctor |
Diagnose config, auth, Pi runtime, and preview dependencies |
feynman status |
Show the current setup summary (model, auth, alphaXiv, web access, service tier, telemetry) |
Model management
| Command | Description |
|---|---|
feynman model list |
List available models in Pi auth storage |
feynman model login [id] |
Authenticate a model provider with OAuth or API-key setup |
feynman model logout [id] |
Clear stored auth for a model provider |
feynman model set [provider/model] |
Set the default approved research model for all sessions; without one, pick from a list |
feynman model tier [value] |
View or set the request service tier override |
The model set command updates ~/.feynman/agent/settings.json with the new default. It accepts either provider/model-name or provider:model-name; run feynman model list first and choose a model ID from that output, or run feynman model set alone to pick from the available models. When a model is not usable, the error says why: no credentials for its provider, a local provider in models.json without an apiKey placeholder, or close matches for an unknown ID. feynman model help lists these commands. feynman model login goes straight to API-key setup for API-key providers such as google, amazon-bedrock, and openrouter. For OAuth logins in SSH or other headless sessions, paste the final redirect URL into Feynman when the browser runs on another machine.
AlphaXiv commands
| Command | Description |
|---|---|
feynman alpha login |
Sign in to alphaXiv |
feynman alpha logout |
Clear alphaXiv auth |
feynman alpha status |
Check alphaXiv auth status |
feynman alpha search "query" |
Search papers through Feynman's bundled alphaXiv client |
feynman alpha get |
Fetch paper content and local annotations |
feynman alpha ask "question" |
Ask a question about a paper |
feynman alpha code <github-url> [path] |
Inspect a paper repository |
feynman alpha annotate ... |
Read, write, list, or clear local paper notes |
Use feynman alpha ... rather than a global alpha binary so the bundled client runs. See AlphaXiv.
Package management
| Command | Description |
|---|---|
feynman packages list |
Show core packages and optional package presets |
feynman packages install |
Install an optional package preset |
feynman packages remove |
Remove an installed optional package preset |
feynman update [package] |
Update optional Pi packages you installed, or one of them; core packages update with Feynman |
See Package Stack for the core packages and optional presets.
Web search
| Command | Description |
|---|---|
feynman search status |
Show Pi web-access status and config path |
feynman search set [api-key] |
Set the web search provider (any pi-web-access provider; run with no provider to list them) and optionally save its API key |
feynman search clear |
Reset the web search provider to auto while keeping API keys |
See Web Search.
REPL hotkeys
Inside the interactive REPL, use /hotkeys to show the live keyboard map. The default reasoning controls are:
| Hotkey | Action |
|---|---|
Shift+Tab |
Cycle thinking/reasoning level |
Ctrl+T |
Collapse or expand thinking blocks |
Workflow commands
Every workflow prompt can also be run directly from the CLI:
feynman deepresearch "topic"
feynman lit "topic-or-lab"
feynman review artifact.md
feynman audit 2401.12345
feynman replicate "claim"
feynman recipe "fine-tune a small model for math reasoning"
feynman compare "topic"
feynman draft "topic"
feynman autoresearch "idea"
feynman summarize paper.pdf
feynman logThese are equivalent to launching the REPL and typing the corresponding slash command.
Flags
| Flag | Description |
|---|---|
--prompt "<text>", -p |
Run one prompt and exit (one-shot mode) |
--model <model> |
Force an approved research model for this session: provider/model, provider:model, a bare ID or short name such as sonnet, optionally with a thinking suffix such as :high |
--service-tier <tier> |
Override the request service tier for this run |
--thinking <level> |
Set thinking level: off, minimal, low, medium, high, xhigh, max |
--cwd |
Set the working directory for tools |
--session-dir |
Set the session storage directory |
--new-session |
Start a new persisted session |
--tui-mode <fullscreen|regular> |
Run the terminal UI fullscreen (Pi 1.0's default) or in the terminal's normal scrollback; set tuiMode in ~/.feynman/agent/settings.json to keep a choice |
--continue, -c |
Continue the most recent session (the default for an interactive launch) |
--resume, -r |
Pick a previous session to resume |
--session |
Open a specific session |
--fork |
Fork a session into a new one |
--no-session |
Use an in-memory session that is not persisted |
--no-themes |
Skip theme loading (passed by ACP adapters such as pi-acp) |
--export <session.jsonl> [out.html] |
Export a session file to HTML and exit |
--alpha-login |
Sign in to alphaXiv and exit |
--alpha-logout |
Clear alphaXiv auth and exit |
--alpha-status |
Show alphaXiv auth status and exit |
--doctor |
Alias for feynman doctor |
--setup-preview |
Alias for feynman setup preview |
When stdin is not a terminal, --prompt and workflow commands do not read it, so an idle pipe from a parent process cannot stall the run. Pipe text without --prompt to send it as the prompt, for example git diff | feynman --no-session.
Use the standard -- delimiter before an interactive prompt that starts with
a dash, so Pi treats it as research text rather than another option:
feynman -- "- summarize the strongest evidence first"For one-shot mode, attach a dash-leading value directly to --prompt:
feynman --prompt="- summarize the strongest evidence first"Website Src Content Docs Reference Package Stack (`website/src/content/docs/reference/package-stack.md`)
title: Package Stack section: Reference order: 3
Feynman is built on stock Pi and uses curated Pi packages for its capabilities. Feynman itself is a Pi package: its package.json pi manifest declares its extension, prompts, skills, theme, and subagent definitions. Feynman launches Pi with PI_CODING_AGENT_DIR=~/.feynman/agent and lists itself and its core packages in ~/.feynman/agent/settings.json as local-path packages, so subagents load the same tools as the main session.
See Pi's upstream docs for packages, extensions, and skills.
Core packages
These are npm dependencies of Feynman, installed with it and loaded unmodified from its install directory.
| Package | Purpose |
|---|---|
pi-subagents |
The subagent tool, /subagents, and /run; powers delegated and parallel research runs |
pi-web-access |
web_search, source_check, fetch_content, and get_search_content for web search and page, PDF, and GitHub retrieval |
pi-docparser |
document_parse, document_search, and document_screenshot for local PDFs, Office documents, spreadsheets, and images |
pi-btw |
/btw side conversations while the main research agent is busy |
@companion-ai/alpha-hub |
alphaXiv client library behind Feynman's alpha_* tools and feynman alpha |
They update when you upgrade Feynman. You do not need to install them individually.
Bundled research extension
Feynman's own extension registers these tools and commands:
| Group | Contents |
|---|---|
| AlphaXiv tools | alpha_search, alpha_get_paper, alpha_ask_paper, alpha_read_code, alpha_annotate_paper, alpha_list_annotations |
| Science database search | feynman_science_database_search over Semantic Scholar, OpenAlex, arXiv IDs, PubMed, Europe PMC, bioRxiv/medRxiv, and Crossref |
| Hugging Face Hub tools | hf_dataset_info, hf_repo_files, hf_repo_read_file |
| Commands | /help, /init, /outputs, /tools, /service-tier |
Optional packages
Install on demand with feynman packages install .
| Package | Preset | Purpose |
|---|---|---|
@samfp/pi-memory |
memory |
Preference and correction memory across sessions |
@luxusai/pi-hindsight |
hindsight |
Hindsight-backed long-term memory. Requires a Hindsight server or Hindsight Cloud account |
To search past Feynman sessions without a package, search the session files directly:
rg -n "protein folding" ~/.feynman/sessionsInstalling and managing packages
List core packages and optional presets:
feynman packages listInstall a specific optional preset:
feynman packages install memoryUpdating packages
Update the optional packages you installed, through Pi's own pi update --extensions:
feynman updateUpdate one package, by preset name or Pi package source:
feynman update memoryCore packages are not touched by feynman update because they ship with Feynman; to update them, upgrade Feynman itself (rerun the installer from the Installation guide, or npm install @companion-ai/feynman@latest).
Runtime versions
Feynman 0.5.56 runs Pi 1.4.0 with pi-subagents 0.81.0, pi-web-access 0.44.0, pi-docparser 4.0.0, pi-btw 0.8.0, and Alpha Hub 0.1.7 as ordinary npm dependencies, and does not modify any of them on disk. Every release is checked by booting the installed CLI in Pi RPC mode on Linux, macOS, and Windows.
Website Src Content Docs Reference Releases (`website/src/content/docs/reference/releases.md`)
title: Release Notes section: Reference order: 4
This page summarizes what changed in recent Feynman releases. GitHub releases use the same version-specific notes from the repository RELEASES.md file.
Unreleased
v0.5.56 - 2026-10-23
- pi-subagents 0.81.0.
- A research subagent asked for structured output that forgets to return it gets one more turn to do so, instead of failing and losing its work.
- The main session can tell subagent completion notices apart from text you typed.
- In fullscreen, you can click a subagent in the inspector to select it and scroll its output with the mouse or trackpad.
- Windows: Feynman starts faster, and no longer freezes for about 8 seconds at startup when the subagent temp folder has broken permissions.
v0.5.55 - 2026-10-22
- Clearer hints for two more OpenAI errors.
- A project without access to a model (
403 ... does not have access to model) now says the account can't use that model, instead of saying your credentials were rejected. - "Request too large ... tokens per min" now says the request is bigger than the account's per-minute token limit, so retrying won't help.
- A project without access to a model (
v0.5.54 - 2026-10-22
- Two more model errors explain themselves. When a run ends on an error, Feynman names the cause:
- A
404 Not Foundfrom the provider says the model id or endpoint doesn't exist, and to check the model with/modeland thebaseUrlinmodels.json. - "The model refused to complete the request" says the model declined, and to rephrase or pick another model.
- A
ip-address10.7.4 (through Alpha Hub's MCP SDK) fixes GHSA-rxp7-6hxx-x8q5, a slow parse of long IPv6 zone identifiers.
v0.5.53 - 2026-10-22
- Pi 1.4.0.
- Long research sessions no longer break after a response is cut off at the output limit; before, every later request in that session was rejected.
- Compaction no longer fails with "generation hit the token cap" when the model reasons at length while summarizing a long session.
- Parallel research subagents that run in-process wait for a free codemode worker instead of failing when two are already busy (
PI_CODEMODE_MAX_WORKERSraises the limit). - The terminal is restored when Feynman exits without its normal teardown, instead of flooding the shell prompt with escape sequences.
- More gateway and proxy failures are retried automatically, including "stream disconnected before completion".
- A tool result that is only whitespace no longer makes OpenAI and Google requests fail with a 400.
mcp.jsonfiles saved with a UTF-8 BOM (Windows) parse again.
v0.5.52 - 2026-10-21
- pi-subagents 0.80.0.
- A background research subagent that finishes while the main session is busy keeps its completion notice across a restart; the next session that opens it shows the result.
- Waking the main session after a subagent finishes no longer adds an "Inspect subagent updates above" line to the transcript.
- Each child of a
parallelcall can set its owncwdandmodel. - A steer that times out on a busy subagent no longer blocks every later steer on that run.
- Subagents no longer inherit your
APPEND_SYSTEM.md. - Workflows started from providers with very long tool-call ids (LiteLLM with Gemini) no longer fail at launch.
- Windows: Feynman no longer exits at startup when security software blocks
git(spawn EPERM).
- pi-web-access 0.44.0.
fetch_contentreturns short, complete static pages instead of reporting them as incomplete.- A default search provider list now falls back to
searchRoutingwhen every provider in it fails. - Linkup is a new search provider:
feynman search set linkup <key>. Each search uses Linkup credits, soautonever picks it. - Most search providers can be routed through your own gateway with a
BaseUrlsetting; API keys are dropped when a provider redirects to another site.
- The native installer bundle ships hono 4.13.13, for GHSA-5r4p-p66f-jhc7.
v0.5.51 - 2026-10-19
- A damaged
auth.jsonsays so. When~/.feynman/agent/auth.jsonisn't valid JSON, for example after a hand edit, every command used to print onlyExpected property name or '}' in JSON. Feynman now names the file and says to fix it, or move it aside and sign in again withfeynman setup. feynman --updatepoints tofeynman update, andfeynman model setuppoints tofeynman model login.
v0.5.50 - 2026-10-18
- pi-subagents 0.79.1.
- Sessions that have not delegated yet no longer send the
bg_waitandsubagent_supervisortool definitions with every request, about 1,500 characters saved per request. - When a workflow's main process dies, research subagents that had already finished keep their results instead of being marked failed.
- Workflow lanes in the widget and
statusshow each subagent's model. - Read-only installs no longer log a "permission denied" error about the upgrade notice on every start.
- Sessions that have not delegated yet no longer send the
v0.5.49 - 2026-10-17
- pi-subagents 0.79.0.
- Forked research subagents reuse the parent's prompt cache, and
/subagent-costreports no longer ride along in every later request, so parallel runs cost fewer tokens. - When a provider stops a subagent with an error such as a content-filter refusal, the error now includes the provider's reply, so a refusal can be told apart from an outage.
subagentstays available after an update or/reloadmid-session.
- Forked research subagents reuse the parent's prompt cache, and
- pi-web-access 0.42.0. DeepSeek's Search API is available as a search provider:
feynman search set deepseek <key>. It bills each search, soautonever picks it. .env.examplelistsOPENALEX_API_KEY, which raises the OpenAlex rate limit for long literature runs (thanks @fanfyh).
v0.5.48 - 2026-10-16
- Pi 1.3.0.
- Tool calls whose arguments contain a backslash sequence like
\usepackageno longer lose fields, which mattered for LaTeX in drafts and papers. - Gateway errors such as "Unable to forward upstream stream" and "service is temporarily unavailable" are retried instead of ending the turn.
- Anthropic requests no longer fail with a 400 when a failed tool result contains images.
- A tool call with malformed arguments now fails instead of running with partial ones.
- Tool calls whose arguments contain a backslash sequence like
v0.5.47 - 2026-10-15
- pi-web-access 0.41.0. Sites that turn away AI fetchers can be read by setting your own User-Agent: add
"fetchContent": { "userAgent": "..." }to~/.feynman/agent/web-search.json. A SearXNG instance on your own machine now works without opening every local service to page fetches.
v0.5.46 - 2026-10-13
- Recent arXiv papers resolve by DOI. OpenAlex adds new arXiv preprints days late, so looking up an arXiv DOI (
10.48550/arXiv.) it doesn't have yet failed. It is now looked up on arXiv itself, with a note. - When a topic sent to the arXiv source is written in arXiv's own query syntax (
search_query=all:...,submittedDate:[...]), only the search words are passed on to OpenAlex.
v0.5.45 - 2026-10-13
- Paper lookups recover instead of failing.
- A topic sent to the arXiv source, which only looks papers up by ID, now gets OpenAlex semantic search results with a note saying so, instead of an error the model had to recover from.
- When arXiv times out or is overloaded, arXiv ID lookups come from Semantic Scholar, with a note saying so.
v0.5.44 - 2026-10-13
feynman search setworks with every search provider pi-web-access supports. It accepted onlyauto,exa,perplexityandgemini; it now takes all 39, including Brave, Tavily, Kagi, Serper, You.com, SearXNG and DuckDuckGo, and saves each key where pi-web-access reads it.feynman search statusandfeynman doctorname the provider you chose and list every saved key, and no longer describe an outdated automatic search order.- pi-web-access 0.40.0. Asking about a YouTube or local video works again when a thumbnail comes back with the transcript, excerpts no longer cut an emoji in half, and a new opt-in setting (
fetchContent.redirects: "same-origin") refuses redirects to another site.
v0.5.43 - 2026-10-13
- Feynman reads and writes Pi's configuration only through Pi. Settings now go through Pi's settings manager, which locks the file and changes only the keys Feynman sets, so a change Pi or another Feynman window makes at the same moment is no longer overwritten. Model checks, local-model detection and
feynman doctorread your models through Pi, so comments inmodels.json, abaseUrlset on one model, and a key saved withfeynman model logincount the same way they do when Feynman runs. feynman doctorno longer warns about a custom provider whose key you saved withfeynman model loginrather than writing it intomodels.json.
v0.5.42 - 2026-10-13
- Pi 1.2.0 and pi-subagents 0.78.0.
- With an OpenRouter key,
/modellists only the models that key can use, with their real context sizes and prices. - "The upstream provider returned an error" is retried instead of ending the turn, and Anthropic requests rejected for too many strict tools are retried once.
feynman -pwarns and exits 1 when the answer was cut off at the model's output limit.- On Windows, reading or writing saved logins no longer fails with
EPERMwhile an old lock is cleaned up. - Pressing
Esckeeps a research run stopped; a subagent finishing a moment later no longer restarts it. - Reports are no longer overwritten when a subagent run is resumed, and a timed-out subagent's partial output reaches the lead agent.
- The
workflowScript contains dynamic child launcheswarning no longer prints on every parallel run.
- With an OpenRouter key,
feynman model loginoffers every provider Pi supports with an API key. That is 41 providers instead of Feynman's own list of 16, adding DeepSeek, Fireworks, Together, NVIDIA, Google Vertex, Cloudflare, Qwen and others. Pi now asks for what each provider needs, so Cloudflare's extra fields and Bedrock's profile or bearer-token options work. Pressing Enter on an empty key no longer saves an empty credential.- Turning off Feynman's telemetry also turns off Pi's.
FEYNMAN_TELEMETRY=off(orDO_NOT_TRACK=1) now sets Pi's ownPI_TELEMETRY=0for its install reporting. - Feynman now honors Pi's own
sessionDirsetting andPI_CODING_AGENT_SESSION_DIRwhen you don't pass--session-dir. feynman model setand the default-model check use Pi's settings API, so they match what Pi launches with (including trusted project settings).
v0.5.41 - 2026-10-12
- A fresh
npm installworks again. Pi 1.2.0, released today, made new npm installs of Feynman 0.5.40 fail on every command except-v(does not provide an export named 'MCP_TYPESCRIPT_PREAMBLE'). Pi 1.1.0 asks for its own sub-packages with open version ranges, so npm pulled Pi 1.2.0's copies. Feynman now pins those sub-packages to the Pi version it ships. The curl and PowerShell installers were not affected. - An expired sign-in no longer looks like no model. Feynman treated a ChatGPT, Claude or Copilot sign-in whose short-lived access token had expired as if no model were set up.
feynmanreopened the setup menu, and since 0.5.36feynman -prefused to run. Pi renews the token on the next request, so Feynman now leaves that to Pi and asks you to sign in again only when renewal really fails. --modelaccepts the names Pi accepts. Bare model IDs (claude-opus-5-5), short names (sonnet) and a thinking suffix (anthropic/claude-opus-5-5:high) now work, preferring a provider you are signed in to;provider/modelandprovider:modelstill work. Pro-class models stay blocked.- After you sign in, the model list matches your account.
feynman model loginrefreshes that provider's model list, so an OpenRouter key gets the models it can actually use before Feynman picks a default. - A provider error hint now appears once the run has stopped, not in the middle of an automatic retry.
- Launching Feynman no longer erases your terminal's scrollback.
- The llama.cpp provider is recognized as a local model.
- Preview and PDF export find more browsers. Chromium, Edge and Brave on Linux, Edge under
Program Files (x86)and Brave in your user folder on Windows, and apps in~/Applicationson macOS. Thanks to @A-ryanVAT-S (#343).
v0.5.40 - 2026-10-12
- alphaXiv sign-in messages name the right command. When you weren't signed in,
feynman alpha search,getand the paper tools said to runalpha login, a command that isn't installed with Feynman. They now sayfeynman alpha login. (Alpha Hub 0.1.7.) - Security: Alpha Hub now requires
@modelcontextprotocol/sdk1.32.1 or later, so a fresh install can't resolve a version affected by GHSA-6qxp-vccf-f47h.
v0.5.39 - 2026-10-12
- Web search and fetching are steadier (pi-web-access 0.39.0). Search summaries now read each source's snippet, so providers that return only links still produce a summary.
autosearch moves on when a provider returns nothing, a stalled Perplexity request gives up after 30 seconds, and a DuckDuckGo bot check is reported as a block instead of an empty search.fetch_contentanswers end with theget_search_contentcall that reads the stored page, answer mode with several URLs shows every page's answer, and PDFs can go to a document parser you run yourself (pdf.provider: "endpoint"in~/.feynman/agent/web-search.json).
v0.5.38 - 2026-10-12
/deepresearchno longer waits for a "yes" after its plan. About 1 in 5 people who started it never answered the approval question, so the research never ran. It now writes the plan, summarizes it, and continues, as/litdoes. To check the plan first, say so in the request, for example/deepresearch <topic>, show me the plan first.- A failed model call says what went wrong. When the provider rejects a request, Feynman now names the cause and the fix under the error: a model your account can't use (pick another with
/model), no credits, a rate limit or used-up quota, rejected credentials (feynman model login), or a temporary outage. Most failed/litand/auditruns ended on one of these. Feynman bugs go to github.com/Companion-Inc/feynman/issues; Pi's/bugreports to Pi's developers. - Research runs on macOS and Linux no longer fail on
python: command not found; Feynman tells the model to runpython3.
v0.5.37 - 2026-10-12
- A sign-in that came back without a code says what to do. When the browser returned to
feynman model loginorfeynman setupwithout an authorization code (seen mostly on Windows), Feynman printed only "Missing authorization code". It now gives the same advice as forinvalid_grant: sign out of the provider's site or use a private window, then retry, and for ChatGPT it suggestsfeynman model login openai-codex.
v0.5.36 - 2026-10-12
- A new user gets to a working model instead of a dead end. Launching
feynmanwith no model opens a menu to set one up.- Typing a question there moved the selection onto Cancel: the menu treated
h,j,kandlas arrow keys. Only the arrow keys move it now. - Cancel used to go on to optional packages, an alphaXiv sign-in that defaulted to Yes, and pandoc, then said "Feynman is ready" with no model. It now exits and says how to add a model, and that your question was not sent.
- The first launch asks only for the model. Packages, alphaXiv and pandoc stay in
feynman setup, where alphaXiv now defaults to No. - Esc in a provider list goes back to the previous menu instead of ending setup.
feynman -p "…"with no model now says how to add one, instead of pointing at Pi's/loginand files insidenode_modules.
- Typing a question there moved the selection onto Cancel: the menu treated
feynman helpdrops the duplicate "Getting Started" list and calls the flag section "Options".
v0.5.35 - 2026-10-11
- PubMed group authors keep their affiliations. Consortium and study-group authors came back with no affiliations; they now keep them, as individual authors do. Thanks to @KennyMcSimpson (#335).
- pi-subagents 0.77.0. Subagent tools cost the lead agent far fewer tokens per request (the
subagenttool's definition shrank from about 18,700 to 3,300 characters), and long subagent reports arrive as a preview plus the file path instead of the full text. Updating Feynman while a session is running no longer breaks every subagent launch in that session. A wrong agent or model name now comes back with suggestions. - pi-btw 0.8.0. The
/btwside-chat composer completes slash commands, and side threads no longer fail with Anthropic's "references unknown tool" error. feynman -vprints the version, and--json,--work-dirand--pathnow point to--mode jsonand--cwd <dir>.
v0.5.34 - 2026-10-09
- OpenAlex lookups that miss now say why. Looking up a name or title where OpenAlex expects an ID (for example
openalex_get_work:Attention is all you needorauthor: Geoffrey Hinton), or an ID that does not exist, returned OpenAlex's raw HTML "404 Not Found" page. The error now says no such work, author or source exists and names the search command to use instead, so the agent recovers on its next call.
v0.5.33 - 2026-10-09
- pi-web-access 0.38.0.
- Web searches with no API key (Parallel) no longer fail with "free-tier rate limit".
- On a ChatGPT subscription, OpenAI web search now uses the newer, much cheaper
gpt-6-luna, so searches take far less of your usage. fetch_contentanswer mode works with models whose provider signs in without an API key.- Requests through a proxy keep their method, headers and body.
- Adds Ceramic, a paid search provider used only when you select it.
- Security: pi-web-access now uses
@modelcontextprotocol/sdk1.32.1, so GHSA-6qxp-vccf-f47h no longer appears innpm auditfor a Feynman install.
v0.5.32 - 2026-10-09
- A rejected sign-in now says what to do. When
feynman model loginorfeynman setupended withinvalid_grant, usually after Sign in with ChatGPT, Feynman printed only the provider's error. It now explains that a stale browser session usually causes it: sign out of the provider's site or use a private window, then runfeynman model loginagain. For ChatGPT it also suggestsfeynman model login openai-codex.
v0.5.31 - 2026-10-09
- Feynman starts again if you once installed the old
session-searchpackage. Its entry stayed in~/.feynman/agent/settings.jsonafter the preset was removed. On Node 24 that made every launch fail installing it, or crash Pi through its SQLite module or its extension. Feynman now drops the entry on launch; Feynman's sessions are searchable withgreporrgover~/.feynman/sessions.
v0.5.30 - 2026-10-07
- Pi 1.1.0. Claude browser login no longer fails with "localhost refused to connect" when port 53692 is reserved or in use (common with Hyper-V/WSL on Windows); it falls back to a free port. "Servers are busy" provider errors and Mistral stream errors are retried instead of ending the turn, fewer requests fail on context limits, and session costs count long prompts correctly. Adds Claude Haiku 5.5; Feynman's default for Anthropic stays Claude Opus.
v0.5.29 - 2026-10-07
- PubMed titles and abstracts keep their italic terms. Text inside inline tags such as
*BRCA1*was dropped, so a title read "patient with germline mutation" instead of "germline BRCA1 mutation", and gene names went missing from abstracts. Thanks to @KennyMcSimpson (#328). - PubMed authors keep all their affiliations. An author listed with two or more affiliations came back with none. Thanks to @KennyMcSimpson (#327).
- Security: GHSA-6qxp-vccf-f47h (MCP SDK OAuth client). Feynman's own copies of
@modelcontextprotocol/sdkmove to 1.32.1. pi-web-access still pins 1.27.1 for its separatenpx pi-web-accessMCP server, which Feynman does not run and which does not use the affected OAuth client; it is updated in nicobailon/pi-web-access#522.
v0.5.28 - 2026-10-07
- Pi 1.0.4, pi-subagents 0.76.1, pi-web-access 0.37.0.
- Pi: syntax highlighting keeps its colors across multiline strings and comments, MCP sign-in works on servers using OpenID Connect registration, and stalled Bedrock streams are retried.
- pi-subagents: when a subagent's result wakes the main session, that turn keeps its normal system prompt (subagent list, MCP servers, other extensions) and the provider's prompt cache. A per-tool timeout now names the tool instead of a run deadline that never fired.
- pi-web-access: a
web_searchorfetch_contentcall where nothing succeeded is now reported as a tool error, so the model knows to try something else; Perplexity results include page snippets and cost less.
v0.5.27 - 2026-10-06
- Pi 1.0.3. Sign in with ChatGPT no longer fails with
refresh_token_invalidatedafter a request is cancelled during a token refresh, and closing the terminal no longer reports aread EIO/setRawMode EIOcrash. In fullscreen,Home/Endnow move within the input line; jump to the top or bottom of the transcript withCtrl+Home/Ctrl+End. - Azure OpenAI is now
azure. Pi renamed the provider fromazure-openai-responses, andfeynman model loginnow offers the new name. If you set up Azure before, runfeynman model login azureagain and rename the provider in~/.feynman/agent/models.jsonandsettings.json;AZURE_OPENAI_*variables are unchanged.
v0.5.26 - 2026-10-05
- GitHub Copilot users get a research model by default. Copilot names Claude models with dots (
claude-opus-5.5), which Feynman did not recognize, so a new Copilot login fell back to alphabetical order and setclaude-haiku-4.5as the default; Copilot then rejected it with "The requested model is not supported" for several users. Feynman now picks Copilot's newest Claude Opus, then Sonnet, then GPT. Iffeynman statusshowsgithub-copilot/claude-haiku-4.5and you did not choose it, runfeynman model setto pick another. alpha_ask_paperanswers with the arXiv metadata and abstract, marked as a fallback, when alphaXiv does not answer (for example after the login expires), likealpha_searchandalpha_get_paperalready did.-pis short for--prompt, as in Pi.--setup,--list-models,--new,feynman setup model, andfeynman modelnow say which command was meant.- pi-web-access 0.36.0:
web_searchaccepts lists that a model sent as a JSON string (nicobailon/pi-web-access#491),fetch_contentasks docs sites for markdown first, Brave prepaid keys keep working, and afetch_contentcall whose only URL failed is reported as an error.
v0.5.25 - 2026-10-05
- Pi 1.0.2 and pi-subagents 0.76.0. Pi now uses the patched brace-expansion 5.0.12 (GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7, GHSA-6j4f-fj2g-mc7p), so Feynman's npm audit has no exceptions left, and an npm install pulls about 120 fewer packages. Pi also retries "model at capacity" errors instead of ending the turn, and Sign in with ChatGPT reports a busy callback port instead of "OAuth state mismatch". pi-subagents frees async slots held by abandoned workflows.
- A timed-out paper search no longer ends a research step. A Semantic Scholar or OpenAlex topic search that hits the 25 s timeout is answered from the other index, and other sources say which one did not respond instead of "This operation was aborted".
- arXiv batch versions. Looking up a bare arXiv ID alongside an older version now returns the latest version for the bare ID regardless of feed order. An unavailable explicit version is reported in
not_foundinstead of resolving to a different version. Thanks to @Kunyanli230 (#322).
v0.5.24 - 2026-10-03
- Pi 1.0. Feynman now runs on Pi 1.0.0, with pi-subagents 0.75.0 (background subagents start on Pi 1.0) and pi-btw 0.7.1 (allows Pi 1.x). The terminal UI is fullscreen by default and keeps its own scrollback; run
feynman --tui-mode regular, or set"tuiMode": "regular"in~/.feynman/agent/settings.json, to use the terminal's normal scrollback. Launch warnings show inside the fullscreen UI. Pi 1.0 also adds MCP OAuth hardening, a copy-code Anthropic login for headless machines, and lower codemode token use.
v0.5.23 - 2026-10-02
- arXiv and PubMed rate limits. arXiv asks for one request every three seconds, and parallel lookups got
429; arXiv requests now run at that pace and a 429 is retried once. A PubMed429, which a subagent in another process or a shared IP can still trigger, is retried once after a pause. - Running several subagents at once from any workflow no longer fails with "workflow: true requires exactly one ```
/* Detailed source-code truncated for AI context efficiency. */
```js workflow block, failed in testing when Claude put the block in its hidden reasoning, while a script file worked with every model, and the file stays next to the plan as a record of the run. Subagent children also follow the project's trust setting, and /reload no longer stops running background workflows.
- Security: Pi 0.99.2 still locks brace-expansion 5.0.9; the exception for it stays until Pi ships 5.0.12.
v0.5.18 - 2026-09-30
- A rate-limited paper index no longer ends a research step. When Semantic Scholar is rate-limited or down, a search is answered from OpenAlex, and an OpenAlex topic search that hits OpenAlex's anonymous rate limit or an outage is answered from Semantic Scholar. The result says first which index answered and why. Lookups by OpenAlex ID, DOI, author, venue, or citation still report the error, since the other index has no equivalent.
- alphaXiv tools answer when alphaXiv cannot. If your alphaXiv login expired or alphaXiv does not respond,
alpha_searchreturns OpenAlex semantic search results andalpha_get_paperreturns the arXiv metadata and abstract for an arXiv ID, each marked as a fallback. Runfeynman alpha loginto get alphaXiv's reports back. - pi-web-access 0.35.0: OpenAI web search works when you signed in with ChatGPT (
feynman model login openai), and Brave search keeps to its rate limits. The researcher is told to pass a search provider as a plain string, since some models sentprovider: "[\"parallel-mcp\"]", whichweb_searchrejects; nicobailon/pi-web-access#491 makesweb_searchaccept that form too.
v0.5.17 - 2026-09-30
feynman model login openaiworks again. Since Pi 0.99, Sign in with ChatGPT needs a stable ID for the installation, which Feynman did not pass, so the login failed at once with "requires a device ID (UUID)". Feynman now shares thedeviceIdPi's own/loginkeeps in~/.feynman/agent/settings.json.- Windows finds per-user Git Bash. Pi looks for Git Bash only under Program Files and on PATH, but a per-user Git for Windows install puts only
Git\cmdon PATH, so shell commands failed with "No bash shell found" (about one in five Windows installs that run tools). Feynman now finds that Git Bash and gives it to Pi. When there is no Bash at all, Feynman says so before the session starts, andfeynman doctorreports thebashit found. - Pressing Enter at the "paste the authorization code / redirect URL" login prompt no longer ends the login with "Missing authorization code"; Feynman asks again, and finishing in the browser still works.
- API keys are now masked as you paste them during setup, and a key with non-ASCII characters (for example typed with a non-Latin keyboard layout) is rejected with an explanation instead of failing every request with "Cannot convert argument to a ByteString".
- A rejected
SEMANTIC_SCHOLAR_API_KEYnow says so instead ofrequest failed: 403 Forbidden.
v0.5.16 - 2026-09-30
- Subagent research files land in the workspace. When a workflow gave a subagent a relative output path such as
outputs/.drafts/<slug>-research-web.md, pi-subagents saved it under~/.feynman/sessions/subagent-artifacts/outputs/<run>/instead, so the lead agent could not find the research notes, citations, or verification it asked for (about one in seven installs running research workflows hit this in the last week). Relative subagent outputs now resolve against the workspace, the researcher, reviewer, verifier, and writer no longer default to generic file names such asresearch.md, and/deepresearchand/litname every subagent file underoutputs/.drafts/. If you setsingleRunOutputBaseDirin~/.feynman/agent/extensions/subagent/config.json, Feynman keeps your value. feynman packages remove(alsormanduninstall) removes an optional package such asmemory.- On Windows, Feynman no longer fails to start when another Feynman start is copying
keybindings.json(EBUSY: resource busy or locked). - pi-web-access 0.34.0:
fetch_contentfalls back to your other fetch providers on Cloudflare "Just a moment..." pages, web tools start available on models such as DeepSeek without costing a prompt-cache miss, and its undici moves to 8.11.2. - Security: three brace-expansion advisories published on 2026-09-29 affect the 5.0.9 that Pi 0.99.1's shrinkwrap locks, which Feynman cannot override. Pi uses it only for package filters and model patterns from your own settings and flags; the next Pi release that ships 5.0.12 replaces it. pi-subagents has still not released its undici fix.
v0.5.15 - 2026-09-29
- Pi 0.99.1, pinned. Feynman accepted any Pi version, so npm installs picked up Pi 0.99.1 the day it was released, untested, and Pi 0.99 warns on every launch about how Feynman declared it. Feynman now runs on Pi 0.99.1, which adds MCP server support (
/mcp), declared the way Pi asks, and pinned so new Pi releases arrive only after they pass Feynman's checks. If npm haslegacy-peer-depson, it skips Pi;feynmannow says to reinstall with--legacy-peer-deps=falseinstead of failing on a missing package. - npm installs use a patched undici. pi-subagents pins undici 8.10.0, which ten advisories published on 2026-09-29 affect (plus GHSA-3wwx-pv8p-q78v), and npm hoisted that copy for every package in an npm install. Feynman now depends on a patched undici directly, so only pi-subagents keeps 8.10.0 until it releases its bump (nicobailon/pi-subagents#2548); the standalone installers were already patched. Correction to the 0.5.14 notes: pi-subagents' background runner installs its undici as the process-wide fetch and WebSocket, so the advisories do apply to background subagent runs.
feynman model setexplains a model it cannot use. "Model not available in Pi auth storage" gave no reason. It now says which applies: the provider has no credentials (with thefeynman model logincommand to run), a local provider inmodels.jsonhas noapiKey(Pi hides providers without one; a placeholder such as"local"is enough), or the ID is unknown (with close matches, for examplegpt-5.6suggestsopenai/gpt-5.6-terra).- Parallel OpenAlex semantic searches no longer fail. OpenAlex allows one semantic search per second, and parallel searches got
429 Too Many Requests: in a live test of six at once, five failed. They now run one after another at that pace, and a 429 that asks for a short wait is retried once. Six parallel searches now all succeed. feynman model setwith no model opens a picker of the available models instead of failing.feynman model helplists the model commands, an unknown model subcommand points to it, and-hworks like--help.
v0.5.14 - 2026-09-28
- The Windows installer no longer fails on slow networks (#309). When usage telemetry could not reach PostHog quickly, the PostHog library printed a timeout to stderr, and Windows PowerShell treats stderr from the installer's
feynman --helpcheck as a failure. Each telemetry send now has a 1.5 s budget and ends quietly, so no command waits on telemetry (on a stalled networkfeynman --helptook 11 s and printed two errors; it now takes about 2 s and prints nothing). The installers also run their checks with telemetry off and judge them by exit code. - pi-subagents 0.73.1 (no longer discards the prompt cache when subagents turn on; caps very large workflow output) and pi-web-access 0.33.0 (resumed sessions keep their tools; no false Pi version warnings). undici is overridden to a patched version for GHSA-3wwx-pv8p-q78v in the standalone installers; npm installs get the fix when pi-subagents releases its bump (nicobailon/pi-subagents#2548); pi-subagents only uses undici's HTTP proxy agent, not the affected WebSocket client.
v0.5.13 - 2026-09-28
- OpenCode no longer recommends a retired Kimi model. OpenCode Go and OpenCode Zen retired
kimi-k2.6("Use kimi-k2.7-code instead"), but Feynman still picked it as the default for new OpenCode users. It now recommendskimi-k2.7-code. Iffeynman statusshowskimi-k2.6, switch withfeynman model set opencode-go/kimi-k2.7-code. Three model preferences that no longer exist in the catalog were removed. - A failed literature database request now names the service, for example
www.ebi.ac.uk request failed: 503, instead of "Science database request failed".
v0.5.12 - 2026-09-28
- Crossref pacing leaves a margin over the pool's limit and retries a rate-limited request once after the server's
Retry-After. A stress test of three bursts of 10 parallel searches on the public pool now succeeds on all 30; 0.5.11 still lost about one in six to network jitter.
v0.5.11 - 2026-09-27
- Crossref lookups no longer fail in bursts. Crossref's public pool allows one request at a time, one per second, and parallel DOI checks (the verifier cross-checks every citation) got
429 Too Many Requestson most calls. Crossref requests now run one after another at the pool's pace. SetCROSSREF_MAILTOto your email for Crossref's faster polite pool; a 429 now says so instead of a generic "Science database request failed". - Telemetry's "wrote output" flag no longer misses a report written in the first second of a run on filesystems that round file times (HFS+, FAT, ext3).
v0.5.10 - 2026-09-27
- Semantic Scholar understands the documented query syntax. A
semantic:prefix andyear_from=/year_to=flags, which the model reuses from the OpenAlex examples, were sent to Semantic Scholar as search text and returned unrelated papers or nothing. They now become Semantic Scholar's own year filter. - The startup header lists only Feynman's workflows. It also listed prompt commands that pi-subagents ships, such as
/parallel-reviewand/review-loop. - Cleaner README and landing page with a current screenshot, and a shorter configuration page.
v0.5.9 - 2026-09-27
- Subagents keep their search tools in the foreground. A
researcherorverifierlaunched in the foreground failed at once because foreground children never load the parent's extensions, soweb_search,fetch_content, andfeynman_science_database_searchwere missing. Feynman now points pi-subagents'defaultSubagentOnlyExtensionssetting at its research tools and pi-web-access, so every child has them, in the foreground or background. - No alphaXiv account, no alphaXiv search tools. Without an account, every
alpha_search,alpha_get_paper,alpha_ask_paper, andalpha_read_codecall failed, and research runs retried them. They are now registered only when you are signed in; otherwise papers come from Semantic Scholar, OpenAlex, and the other literature databases. Start a new session afterfeynman alpha login. - The Windows install docs now say Feynman needs Bash from Git for Windows for shell commands.
v0.5.8 - 2026-09-26
FEYNMAN_HOME=~or~/pathnow means your home folder. Unexpanded~(common in.envfiles, DockerENV, and Windows shells) created a literal~folder in the current directory.- Starting two Feynman sessions at the same moment no longer crashes one of them with "Subagent config changed during settings normalization". The second start keeps the subagent config the first one wrote.
v0.5.7 - 2026-09-26
- When Feynman runs as a package inside another Pi setup, an extension error no longer appears on every turn ("Cannot set properties of undefined (setting 'current_date')") if another extension or the host leaves the system-prompt sections unset (#298, thanks @Oscar-Williams in #300).
v0.5.6 - 2026-09-26
Failures report what went wrong
- Usage telemetry now carries readable error text instead of a hash: the error message and stack trace (also sent to PostHog error tracking), the last lines of Pi's error output when a run exits with an error, a failed tool's error text, and the provider's error message on a failed model call. Your home folder is shown as
~. Paths inside your projects can appear in this text. Prompts, model output, paper content, and tool arguments are still never sent. Opt out withFEYNMAN_TELEMETRY=offas before. - CI runs and the test suite no longer report telemetry, so usage numbers count real installs only.
Fixes
- A dead network connection now fails in about 15 seconds with
Connection error.instead of retrying silently for over five minutes. Feynman had set a 6-retry, 5-second backoff that also applied to connection errors; it now uses Pi's default, and the old value is removed from existing settings. Rate limits are still retried with the provider'sRetry-After. feynman setupandfeynman model loginin a window Node cannot prompt in (Git Bash's default window, a script, or an AI coding agent) now explain how to proceed:winpty, PowerShell, or setting the provider's API key variable and runningfeynman model set.
v0.5.5 - 2026-09-24
Node.js 26
- Feynman now runs on Node.js 26, the current release. The upper version limit is gone: Feynman needs Node.js 22.22.0 or newer, like Pi itself. Tests run on Node 22, 24, and 26.
- The standalone installers bundle Node.js 24.21.0, the latest LTS release.
alphaXiv
- When an alphaXiv call fails, the tool error now points the agent to
feynman_science_database_search(arXiv or Semantic Scholar) orfetch_content, so a research run continues on another source instead of retrying a broken tool. A "not logged in" error namesfeynman alpha login. - The alphaXiv docs explain signing in from a machine without a browser (SSH, Docker, WSL): open the printed URL anywhere and paste the final
127.0.0.1:9876/callbackURL back into the terminal.
Other
- The setup docs explain the most common reason local models write no files: a small context window. They show how to raise Ollama's context and set
contextWindowandmaxTokensinmodels.json. - feynman.is/privacy and feynman.is/telemetry go to the telemetry section, which lists what is collected and how to opt out.
- Updated dependencies: pi-btw 0.6.1, posthog-node 5.53, @clack/prompts 1.8.1, and the website toolchain (Astro 7.3, @astrojs/react 7). CI uses actions/checkout and actions/setup-node v7 and wrangler 4.139.
v0.5.4 - 2026-09-24
Use Feynman from ACP editors
feynman --mode rpcnow accepts--no-themes, the Pi flag the pi-acp adapter passes, so Feynman runs in ACP editors such as Zed. Point pi-acp at Feynman withPI_ACP_PI_COMMAND=feynman; the setup guide has the Zed settings.
Removed what did not work
- The optional
session-searchpackage preset is gone. It indexes~/.pi/agent/sessionsand never saw Feynman's sessions in~/.feynman/sessions, and its/searchcollided with pi-web-access's. Search past sessions withgreporrgover~/.feynman/sessions; the session-search skill now shows how. /previewis no longer listed in/help: no bundled or optional package provides it.feynman setup previewstill installs pandoc, and the preview docs show how to render artifacts to HTML or PDF./helplists pi-web-access's real/websearchand/curatorcommands instead of/web-results, which pi-web-access 0.31 no longer registers.- The autoresearch and alpha skills no longer mention tools and patches that do not exist.
Docs match the code
- Every docs page, the landing page, and the README were checked against the CLI, prompts, agents, and package code. Corrections include the setup flow (model access, optional packages, alphaXiv login, pandoc), where keys are stored (plain text in
~/.feynman/agent/auth.jsonwith user-only permissions, not encrypted), the verifier, reviewer, and writer roles and which workflows use them, workflow steps and output files, the web-search tools and commands, and dead Pi links (nowearendil-works/pi). - The landing page adds a PowerShell install command and drops cards for features that do not ship.
v0.5.3 - 2026-09-24
Leaner prompts, same research quality
- The system prompt and the 11 workflow prompts lost about 200 lines. A block of tool-name rules was copied into every workflow and repeated in the system prompt, and the prompts referred to memory, process, chart, and experiment tools Feynman does not ship,
FEYNMAN_SUMMARIZE_*environment variables that nothing reads, and a PDF crash that no longer exists. - Workflows now wait for their background subagents before the final answer. In one-shot
feynman --promptruns, a/litrun could end while its reviewer was still working and never write the provenance file. - On the
/liteval with GPT-5.6 Terra, 4 of 4 questions finished, all 44 citations resolved with matching titles, and each question ran the researcher, verifier, and reviewer in under 11 minutes (0.5.2: 9-14 minutes, 43 of 43 citations).
Smaller install
- CLI telemetry sends its command events through posthog-node, like the rest of Feynman. It no longer also sends each command as an OpenTelemetry span and two log records, which removes nine
@opentelemetrypackages (about 28 MB). The events and what they contain are unchanged.
Known issue
- Claude Opus 5.5 refuses some biology literature reviews (for example
/lit CRISPR base editing) with "The model refused to complete the request". The same topics run on GPT-5.6 Terra.
v0.5.2 - 2026-09-23
Faster, cheaper research runs
- OpenAlex exact searches (
openalex_search_works, citations, references, authors, venues) now return at most the tool'slimit(default 5, max 20) instead of 50-100 full records; an explicitmax_recordsis capped at 50. In live/litruns these results were 100-240 KB per call and drove most of the multi-million-token usage. - The
researcherandverifiersubagents run in the background by default, where they get Feynman's web and literature tools. Foreground launches of these agents failed and had to be retried. alpha_ask_papernow states it takes arXiv and alphaXiv papers only, and points DOI-only papers tofetch_contentor Europe PMC full text.
v0.5.1 - 2026-09-23
Telemetry
- Research runs are now visible in telemetry, without content. The research extension inside Pi sends
feynman_session_started,feynman_workflow_startedandfeynman_workflow_completed(workflow name such asdeepresearchorchat, status, tool and subagent call counts, whether anything underoutputs/orpapers/was written, duration),feynman_tool_used(tool name and error flag), and one PostHog LLM analytics$ai_generationevent per model response (model, provider, token counts, latency, HTTP status, stop reason; the trace ID is the Pi session ID). Prompts, model output, paper content, file paths, and tool arguments are never sent. - First-run notice. The first interactive run prints a one-time notice on stderr (never in scripts or CI) saying telemetry is on, what it collects, and how to turn it off with
FEYNMAN_TELEMETRY=off.feynman statusshows whether telemetry is on. - Telemetry stays on by default and follows the existing opt-outs:
FEYNMAN_TELEMETRY=offorDO_NOT_TRACK=1disables the CLI and the Pi runtime events alike.
v0.5.0 - 2026-09-23
Stock Pi runtime
- Pi 0.87.1, unmodified. Feynman now runs Pi's own CLI and no longer patches Pi or its packages on disk, renames Pi, or wraps its CLI. It also drops the sealed runtime workspace (the
.feynman/runtime-workspace.tgzarchive, its hashes, and its lock), which was re-verified on every launch.feynman --helpandfeynman doctorstart in about a second instead of several. - Newer Pi packages. pi-subagents 0.71, pi-web-access 0.31, pi-btw 0.6, and pi-docparser 4.0 are now ordinary npm dependencies of Feynman, with their own dependency pins. They load as Pi packages from Feynman's install directory, so subagents see the same tools as the main session. pi-docparser's LiteParse pin (2.10.1) is used as shipped.
- Newest standard models recommended. With Pi 0.87.1's catalog, setup and
feynman modelrecommend Claude Opus 5.5 and, for OpenAI-only setups, GPT-5.6 Terra (OpenAI's standard tier, the same one pi-web-access picks). Premium tiers such as Claude Fable and Pro models are never picked automatically but stay available through--modeland/model. - Pi session flags pass through.
--continue/-c,--resume/-r,--session,--fork,--no-session, and--export <session.jsonl> [out.html]now reach Pi instead of being rejected. - Settings are written once. Feynman writes its defaults on first run and afterwards only adds missing keys. Package entries from older releases are replaced with the bundled packages, and other packages you added are kept.
feynman updateandfeynman packages installnow go through Pi's ownpi update --extensionsandpi install. Optional packages install into~/.feynman/agent/npm. Pi and the core packages update when you upgrade Feynman.- One-shot runs exit when they finish. The alphaXiv connection now closes when the session ends, so
feynman --promptand JSON runs no longer stay open after answering. - Explicit prompts never wait on stdin.
feynman --promptand workflow commands started from a non-interactive parent no longer hang on an idle stdin pipe. Pipe text without--promptto use it as the prompt. /feynman-modelis gone. Use Pi's/modelfor the main model and pi-subagents'/subagentsorsubagents.agentOverrides.<name>.modelfor one subagent. Feynman now setssubagents.agentExcludeDirsto["~/.agents"], so agent files there no longer silently replace Feynman's bundled agents.- Gemini Web cookie access uses pi-web-access's own
allowBrowserCookiesandbrowserCookies.profilekeys inweb-search.json. The Feynman-onlygeminiBrowser,allowBrowserAuth,browserAuth, andchromeProfilekeys are no longer read. SetallowBrowserCookiesif you had enabled one of them. - Web search config moved to
~/.feynman/agent/web-search.json, where pi-web-access reads it. An existing~/.feynman/web-search.jsonis moved there on first launch. - Bundled agents, skills, and the theme now load from the Feynman package instead of being copied into
~/.feynman/agent. Copies left by older releases are deleted on first launch unless you edited them; edited copies keep overriding the bundled ones. - Telemetry: pi-otel is no longer bundled, so the Pi runtime is not traced. Feynman still sends its own opt-out CLI command events, logs, and spans to PostHog.
v0.4.0 - 2026-09-23
Focused on the research loop
Feynman now ships only what serves finding papers, reading them, synthesizing with verified citations, auditing papers against code, and planning replications. Removed:
- Science workbench:
feynman serveand its--port,--no-open,--no-authand--hostflags, the local web app, its demo seed data, and the workbench-only Pi toolsfeynman_connector_tools,feynman_connector_call,feynman_workbench_context, andfeynman_open_chemistry_sketcher. The molecule, genome, alignment, and structure viewer libraries are no longer installed with Feynman. - Non-literature databases:
feynman_science_database_searchnow covers OpenAlex, arXiv ID lookup, PubMed, Europe PMC (including open-access full-text sections), bioRxiv/medRxiv, and Crossref. Biomedical, chemistry, genomics, variant, omics, regulatory, clinical-trial, grants, protein and structure sources were removed, along with DataCite. The tool's prompt text went from about 17 KB to about 2 KB per session. - Model endpoints: the NVIDIA BioNeMo
feynman_model_endpoint_calltool. - Skills: protein and bio model templates (AlphaFold2, OpenFold3, Boltz, Chai-1, ESMFold, ESM2, Evo 2, Borzoi, DiffDock, ProteinMPNN, LigandMPNN, SolubleMPNN, scGPT, scvi-tools, indication dossier), Modal/RunPod/SSH/model-endpoint compute templates, and the
customize,self-awareness,product-self-knowledge,contributing,skill-creator,figure-composer,figure-style, andpaper-narrativeskills./replicateand/autoresearchstill offer Docker, Modal, and RunPod as execution choices. - Commands:
/commandsand/capabilities. Use/helpfor the grouped command list and/toolsfor the tool list. - Workflows:
/watchand/jobs(andfeynman watch/feynman jobs). Both depended on aschedule_promptscheduler tool that Feynman does not ship, so they could only report scheduling as blocked. - PaperRank and paper access:
feynman rank(with--limit,--expand-citations,--full-text-top,--critique-top,--synthesize,--synthesis-top,--synthesis-model,--preference-file,--reproduction-notes,--source-fixture,--output-dir,--json) andfeynman paper(--fetch-full-text). PaperRank seeded from an OpenAlex keyword search without an API key and missed seminal papers that a citation-sorted search finds; use/litor/deepresearch, which search, rank, and read papers through the literature tools. For one paper's full text, ask the agent, which uses Europe PMC, PubMed, andfetch_content. - arXiv topic search: the
arxivsource offeynman_science_database_searchnow only looks up papers by arXiv ID (bare IDs, URLs, orarxiv_get_papers:).arxiv_search:and free-text queries were removed because arXiv's lexical API ranked concept queries poorly (0 of 9 seminal papers in the search benchmark); search topics withsemanticscholaroropenalexinstead. - Removed commands exit with a pointer:
feynman serve,watch,jobs,rank, andpapernow print that the command was removed after 0.3.49 and exit with status 1 instead of starting a chat with that word as the prompt. - Local state: Feynman no longer creates
~/.feynman/active-org.jsonor~/.feynman/orgs/. Existing workbench data in those folders is left in place; delete it if you no longer need it.
Everything removed is preserved in the repository at the archive/pre-deslop-0.3.49 git tag. To recover a piece, check it out from that tag, for example git checkout archive/pre-deslop-0.3.49 -- src/workbench workbench-web, or install @companion-ai/[email protected] to keep using the workbench.
Paper search
- Semantic Scholar source:
feynman_science_database_searchgainssource: "semanticscholar". By default it runs a bulk search sorted by citation count and keeps the top results (up to 20), which found 7 of 9 seminal papers in the search benchmark versus 2 for OpenAlex keyword search.sort: "relevance"uses relevance search andsort: "pub_date"returns newest first. SetSEMANTIC_SCHOLAR_API_KEY(free on request) to use your own rate limit; without it, a 429 from the shared anonymous pool is retried once and then reported with instructions. - OpenAlex semantic search and key guidance: prefix an
openalexquery withsemantic:to use OpenAlex's embedding search (search.semantic), which found the test-time-compute paper at rank 1 where keyword search missed it.OPENALEX_API_KEYis still sent as theapi_keyparameter when set; when it is missing, results and 401/403/429 errors now say how to get a free key. - Researcher and verifier guidance: the researcher now routes by need (Semantic Scholar for general ML/CS papers, PubMed and Europe PMC for biomedicine, OpenAlex for citation graphs and semantic search,
web_searchfor web sources with keyless Parallel MCP as a fallback, direct ID lookup for known papers) and runs 2–4 reworded queries per question instead of trusting one. The verifier cross-checks each cited paper's DOI or arXiv ID against two indexes and flags title/ID mismatches. Both agents can now callfeynman_science_database_search. If you customized~/.feynman/agent/agents/researcher.mdorverifier.md, Feynman keeps your copy, so merge these changes by hand.
alphaXiv
- Updated the bundled alphaXiv client to
@companion-ai/[email protected], which now ships the fixes Feynman used to patch in at install time: opening the login browser from WSL, printing the login URL when no browser opens, and falling back to REST search whendiscover_papersis unavailable. It also adds a paste-the-URL login for headless sessions, fixes a hang in parallel searches, and writes the token file with0600permissions. Feynman no longer patches alpha-hub. - Updated
@companion-ai/alpha-hubto 0.1.6. Expired alphaXiv tokens are now refreshed before paper tool calls instead of failing with "Invalid Authorization", concurrent calls share one refresh, logging out can no longer be undone by an in-flight refresh, the auth file is written atomically with0600permissions, andfeynman alpha statuschecks the login with the alphaXiv server.
v0.3.49 - 2026-09-23
Repository and package home
- Feynman is back at
Companion-Inc/feynmanon GitHub and@companion-ai/feynmanon npm. Installers, skills downloads, self-update checks, package metadata, research-source request identities, and docs use the Companion locations directly. @companion-ai/feynman0.3.47 installs now see this update throughfeynman's normal update notice. If you installed the interim@advaitpaliwal/feynman0.3.48 package, migrate once withnpm uninstall -g @advaitpaliwal/feynman, thennpm install @companion-ai/feynman. The command remainsfeynman, and native install commands are unchanged.
Telemetry privacy
- Research-runtime traces no longer include OpenTelemetry's automatic process and host attributes, which carried the command line (including the system prompt and any prompt passed as an argument), host name, and user name. Telemetry now goes to the new Feynman PostHog project;
FEYNMAN_TELEMETRY=offorDO_NOT_TRACK=1still disables it.
Startup and Windows reliability
feynman --versionanswers immediately instead of first verifying the whole bundled research runtime, and healthy launches skip one redundant full runtime validation pass.- Fixed macOS and Linux standalone bundles whose
node_modules/.bincommand links pointed at the build machine, which also blocked this release. - Windows: patching the bundled Undici proxy runtime copies real files instead of recreating symlinks, so commands no longer fail with EPERM on non-elevated accounts; transient antivirus locks on freshly written esbuild binaries are retried.
- Removed Feynman's own
/thinkingcommand; Pi's built-in/thinkingnow handles thinking levels without a startup conflict warning.
Research runtime refresh
- Updated the coordinated Pi runtime to 0.85.1, retaining Feynman's provider identity checks, research-session continuity, bounded compaction, private state files, and tool/telemetry safeguards.
- Updated native bundles to Node 24.20.0 and the research runtime compiler to esbuild 0.28.2. Kept portable npm installs within the existing package budget by removing redundant compiler binaries and dependency source maps, not platform support.
- Updated web research to pi-web-access 0.28.0 with bounded batch searches, retrievable response IDs, citation preservation, and session-scoped page-answer models. Browser cookies and new paid providers remain opt-in.
- Updated pi-subagents to 0.65.1. Research delegation now uses async workflow scripts with
runs.run/runs.all; obsolete top-leveltasks/chainparameters and/chain//parallelcommands are replaced by the documented workflow interface. Existing user settings are preserved; fresh installs disable automatic missions and Fleet UI. - Moved the bundled paper tools to
@companion-ai/[email protected], including the current alphaXiv OAuth/MCP API and result parser. Updated LiteParse to 2.14.3 while retaining document integrity checks. - Refreshed the CLI, scientific viewers, telemetry, and website dependencies. The CLI builds with TypeScript 7; the website retains TypeScript 6 because its current Astro/ESLint integrations require the older compiler API. Preserved supported dependency majors and upstream-required pins rather than forcing incompatible upgrades.
v0.3.48 - 2026-09-06
Installation and source reliability
- Moved the canonical GitHub repository to
advaitpaliwal/feynman. Native installers, skills downloads, package source/issue metadata, and public documentation now use the new owner directly. - The canonical npm package is now
@advaitpaliwal/feynman. Migrate old npm installs withnpm uninstall -g @companion-ai/feynman, thennpm install @advaitpaliwal/feynman. Future npm updates usenpm install @advaitpaliwal/feynman@latest. The command remainsfeynman, and native install commands are unchanged. - Historical release attestations retain their original source identity; new releases are verified against the new repository owner without relaxing provenance checks.
- Updated affected URL/query parsing dependencies in the CLI and bundled research runtime, plus the website's browser-target resolver, to patched versions.
v0.3.47 - 2026-08-26
Research continuity
- Resuming a valid Pi session whose JSONL file lacks a trailing newline now repairs the append boundary before new research messages are persisted, preventing the next record from being fused into the previous one.
/btwand/btw:summarizenow copy extension-registered providers, native providers, and temporary runtime API keys into their isolated childModelRuntime. Side research can use the same custom provider that is already active in the main session.
Web research
- Updated
pi-web-accessto0.25.0. Researchers can route search and fetch calls through an explicit HTTP(S) proxy, retrieve bounded GitHub issue and pull-request documents with comments and review threads, use Defuddle when ordinary HTML extraction is insufficient, and select Chromium browser/profile cookies explicitly. - Gemini generate-content paths can use Google Application Default Credentials for Vertex AI, and Kimi Code Plan accounts can be selected explicitly for web search. Stored-content passage lookup also tolerates bridge defaults when
findTextis supplied.
Observability
- Generic HTTP OTLP collectors configured through one shared endpoint now receive traces, metrics, and logs at their signal-specific
/v1/*paths, including collectors on default HTTP and HTTPS ports. Explicit per-signal endpoints remain exact and retain their own headers and protocols; Feynman's PostHog AI trace endpoint is unchanged. - Existing
0.3.45pi-otel package roots migrate through the reviewed legacy digest. Embedded package setup and runtime-workspace preparation preflight every discovered pi-btw and pi-otel root before applying their combined patch plan, so an unsupported later root cannot leave earlier research packages partially updated. - Session shutdown now flushes the telemetry SDK in its own handler, while
/oteldashboard and collector overrides clear stale per-signal routing before rewiring exporters.
Proxy and credential safety
- Explicit proxy credentials, target URLs, and provider request headers are delivered to curl over stdin instead of appearing in process arguments. GitHub repository clones now follow the same scoped proxy,
NO_PROXY, and forced-direct decision as GitHub API requests. - Vertex ADC setup documentation no longer combines
geminiAuth: "adc"with an API key that would select API-key mode.
Validation
- Added exact source, published-upgrade, patch-plan transaction, package-tree, runtime-archive, executable OTLP handler, stdin-only proxy credential, GitHub clone proxy, installed-runtime OTLP behavior, GitHub document, Gemini ADC, Kimi credential, BTW provider, and unterminated-session regressions.
- Runtime archives omit npm's pre-patch hidden lock metadata and verify its absence, so
npm lsreads the committed exact lock instead of a stale nested Undici version.
v0.3.46 - 2026-08-26
Superseded release
- Do not install
0.3.46. Its canceled workflow was retried and published the superseded6bbb6e8tree with a pi-otel shutdown failure, explicit proxy/provider credentials in process arguments, and stale npm runtime metadata. Upgrade to0.3.47or later.
v0.3.45 - 2026-08-26
Release reliability
- Windows publication smoke tests now use the supported .NET ZIP extractor instead of the pathologically slow PowerShell
Expand-Archivecmdlet, so large native research bundles complete within the release job budget. - Source-checkout runtime archive rebuilds now use the same fifteen-minute process budget as exact locked runtime restores, avoiding premature timeouts on slow clean environments while retaining the existing transactional exact-lock checks.
Validation
- Added workflow and runtime regressions that bind Windows native extraction and source-archive rebuilding to their supported timeout contracts.
v0.3.44 - 2026-08-26
Research continuity
- Stopping a tool run now ends the active Pi loop before queued steering or follow-up research input can be drained into an already-aborted model call. The queued input remains available for the next turn instead of producing a second spurious cancellation.
Compaction integrity
- Small-context local and proxy models now bound compaction reserve and retained-history budgets to the model's actual context window, preventing empty or short sessions from compacting continuously.
- Empty or structurally unusable summaries no longer replace research history. OpenAI Responses providers such as Grok also omit
tool_choicewhen a compaction request has no tools.
Model reliability
- OpenAI-compatible structured reasoning deltas are accumulated without reparsing and reserializing the complete history for every streamed detail, preventing long reasoning streams from blocking the event loop while preserving same-model replay.
- OpenAI models reached through Amazon Bedrock now receive images returned by research tools as sibling user-image blocks instead of unsupported images nested inside
toolResult.content. Text stays attached to its tool result, image-only results retain an explicit placeholder, and Anthropic Bedrock models keep their native nested-image shape.
Runtime reliability
- Non-interactive Pi extension handler work now has a cumulative 30-second budget. A handler that never settles reports its extension and event, expires its local context, safely absorbs late settlement, and lets later handlers and the research session continue.
- Timed-out model-tool and user-shell policy handlers still allow later policy handlers to run, then fail closed. User-shell interception returns an explicit non-executing result, so both TUI and RPC paths do not run the command after a policy timeout.
- Project trust, OAuth, and interactive dialogs preserve their supported behavior: documented UI prompts pause the remaining handler budget instead of resetting it, parent cancellation settles even a non-cooperative dialog, and OAuth callbacks remain outside the bounded event runner.
Document research
- Updated the bundled LiteParse runtime to
2.14.0. OCR rasterization now runs in bounded worker-sized rounds, and dense PDF layout deduplication avoids quadratic work. Existing parse, search, and screenshot interfaces are unchanged.
Validation
- Added executable abort-queue, Responses payload, structured-reasoning scale, small-context compaction, and summary-usability regressions across the maintained Pi runtime.
- Added executable extension-handler deadline coverage for downstream progress, timeout reporting, expired contexts, late rejection handling, fail-closed TUI/RPC user-shell interception, cumulative dialog timing, parent cancellation, project trust, and tool permission dialogs.
- Added exact source, root/nested runtime, package-tree, and runtime-archive verifier coverage for Bedrock tool-result images across bare, regional, and global OpenAI model IDs, with an Anthropic control.
- Re-ran installed document parsing, page-count, search, screenshot, package-artifact, runtime, and clean-consumer verification against LiteParse
2.14.0.
v0.3.43 - 2026-08-25
Installation reliability
- Upgrading from an older Feynman installation no longer crashes while migrating a legacy
pi-subagentspackage's agent diagnostics source. Fresh native-bundle installs and updates now tolerate the older management-source layout while preserving malformed-agent diagnostics.
Validation
- Added an executable source regression for the
[email protected]management layout that previously raisedmissing management list diagnosticsduring--version.
v0.3.42 - 2026-08-25
Reasoning integrity
- Same-model research turns now preserve structured reasoning metadata through session persistence and model replay instead of flattening or dropping it.
- When research history crosses a provider boundary, Feynman strips provider-private reasoning fields before forwarding it, preventing incompatible metadata from leaking into the next model's context.
Runtime reliability
- Runtime preparation now repairs stale Pi AgentCore copies to the current maintained patch before verification, so restored and installed research runtimes cannot retain an older patch shape.
Validation
- Reasoning and AgentCore patch validators now fail closed on missing, mixed, or stale transformations across source, bundled, restored, installed, and package-artifact copies.
v0.3.41 - 2026-08-25
Research continuity
- Custom research messages queued while a Pi turn is active now wait until the turn settles before they are persisted and emitted. Tool results remain adjacent to their calls, and
triggerTurn: falsenotifications no longer corrupt resumable session history. - Extension-supplied research prompts now preserve interleaved text and image order through idle, steering, and follow-up delivery, so captions and questions stay attached to the intended figure.
- Large rendered tool diffs no longer hit V8's argument-count limit. Feynman's Pi runtime also resolves
fdandrgreleases through GitHub's public redirect without spending anonymous API quota.
Research images
- JPEG conversion and provider-bound resizing now continue past XMP APP1 metadata to apply a later EXIF orientation block. Figures, scans, photographs, and microscopy images no longer remain sideways when XMP precedes EXIF.
Model reliability
- OpenAI-compatible Gemini 3 streams now preserve the first Google thought signature and encrypted reasoning details together across persisted tool-call replay.
- Foreign OpenAI-compatible tool-call IDs now retain the full hash when they must be sanitized and bounded, reducing cross-provider replay collisions.
- OpenRouter's structured
in_flight_budget_exhausted402 responses can use theirRetry-Afterbudget without replacing ordinary 429 and server-error retries or overriding an explicit provider no-retry response. - OpenAI-compatible compaction no longer sends
tool_choice: "none"when no tools are present, avoiding requests that strict gateways reject before summary generation.
Runtime reliability
Validation
- Ported the focused Pi fixes from commits
240eb29c(following contributor precursor7b1dcfd),8c16a558,6d05adb,94f6e7c,d8def812,fe37e9f9,27115254, and86c42324, plus the structured OpenRouter retry correction, across source, bundled, restored, installed, and package-artifact copies. Added fail-closed source-map checks, restored-runtime coverage, provider and image regressions, and clean installed-package verification.
v0.3.40 - 2026-08-24
Research continuity
- Image-only steering and follow-up messages are now removed from Pi's pending queue state when they are delivered. Research sessions that add screenshots, paper figures, or other image context no longer remain falsely marked as waiting on input after the model receives the image.
Validation
- Reproduced the defect on the bundled Pi
0.84.2: the agent queue was empty after image delivery whilependingMessageCountremained1and no clearingqueue_updateevent was emitted. Ported the focused fix from commitb67b3dbacross source, bundled, restored, installed, and package-artifact copies, with executable steering and follow-up regressions plus fail-closed patch verification.
v0.3.39 - 2026-08-24
Research continuity
- Pi no longer persists a partial compaction, split-turn, or branch summary when summary generation reaches its output-token limit. The incomplete checkpoint now fails explicitly so long research sessions retain the last complete context instead of silently replacing it with truncated history.
Reliability
- Updated
posthog-nodeto5.51.1. On Node 24.16 and later, each telemetry flush now sends gzip bytes directly instead of retaining a nativeBlobReaderfor the life of the process.
Validation
- Backported Pi commit
97fa14eacross source, bundled, restored, installed, and package-artifact copies, with executable history, split-turn, and branch-summary regressions. Disabled stale upstream source-map directives in the forward-patched files so diagnostics cannot resolve the new guards to unrelated pre-patch TypeScript lines. Matched the PostHog fix to upstream commit3593c43and added a transport regression that requires aUint8Arraygzip body instead of aBlob.
v0.3.38 - 2026-08-24
Research artifacts
- Congress.gov and GovInfo bill parsing now excludes paired white-on-white GPO operator and print-tracking stamps from parsed text, JSON text items, and document search. Removal requires matching metadata, geometry, and exact rendered-white regions, so visible bill text and visible text that merely resembles a stamp remain available.
Research runtime
- Pi's edit tool now preserves the original CRLF, LF, and CR terminators outside each replacement. Exact and fuzzy edits no longer create unrelated full-file diffs in mixed-line-ending research code or data.
Validation
- Reproduced the hidden-stamp path with official 2008 and 2026 GPO bill PDFs and verified consistent parsed artifacts and searches with visible body-text, same-geometry black, white-on-dark, and white-on-RGB-245 controls.
- Added exact, fuzzy, multiline, bare-CR, restored-runtime, package-artifact, and clean installed-package regressions for the maintained Pi and pi-docparser patches.
v0.3.37 - 2026-08-23
Research visualization
- Updated IGV to
3.8.5. Embedded VCF, BED, and GFF genome previews now load IGV's legacy URL-mapping catalog fromigv.orginstead of raw GitHub, avoiding unnecessary blocked-origin warnings under restrictive content-security policies.
Validation
- Matched the installed package to the published
3.8.5npm artifact and upstream commit1ff36cd, with an executable regression for the supported mapping origin.
v0.3.36 - 2026-08-23
Research runtime
- Cross-platform runtime repair now allows up to fifteen minutes for the exact locked npm restore. This keeps slow Windows and Node 25 clean installs from terminating a valid research-runtime rebuild at the previous five-minute process limit.
Validation
- Reproduced the published
0.3.35failure on Windows with Node 25 after npm exhausted the five-minute child-process budget, while the same package passed the other five Node/OS consumers and all three native installers. - Added an exact timeout regression and retained fail-closed lock, package-graph, and post-install verification.
v0.3.35 - 2026-08-22
Research runtime
- Installed packages no longer accept a partial bundled-runtime extraction merely because the top-level research extensions happened to arrive first. Feynman verifies the complete staged tree before publishing it, retains only known Windows npm links whose targets exist, and runs fallback from the archive's exact npm lock with maintained runtime patches applied before publication.
- Windows runtime restoration now recreates legacy Pi package aliases as traversable directory links before launch, with a copy fallback when links are unavailable.
- Configured provider-qualified research subagents now fail explicitly if the child reports that it actually launched on a different active model, instead of silently completing with misleading model metadata.
- Research prompts beginning with
-now pass safely through Pi's standard--end-of-options delimiter instead of being mistaken for runtime options. - Updated
pi-web-accessto0.24.2. Automatic search prefers Codex-backed OpenAI search when the active model isopenai-codex, keeps Exa first for other models, and reads Windows Chromium cookie expiries without overflowing JavaScript numbers.
Workbench security
- Updated Ketcher to
3.17.2, which renders monomer labels from opened chemistry artifacts as text instead of interpolating them as HTML.
Validation
- Added atomic restore, completion-marker, package-lock-graph, missing-transitive-file, exact-lock fallback, pre-publication patch, crash-backup, stale-lock, stale-stage cleanup, Windows npm-link and Pi-alias repair, terminated-process, child-model verification, dash-leading prompt, exact
[email protected]source, model-routing, Windows-cookie, and Ketcher monomer-label regressions.
v0.3.34 - 2026-08-22
Research runtime
- Existing Pi
auth.jsonand dynamicmodels-store.jsonfiles now retain administrator-managed modes and ACLs when Feynman updates them. On POSIX systems, newly created state files still use owner-only0600permissions. - Research subagent guidance now directs explicit model selection through
feynman model listand tells the parent to use an exact approvedprovider/model. Raw unscoped registry output is not added to the tool. - Bundled and restored alphaXiv research runtimes now retain structured search-result parsing after Feynman rebuilds their runtime archive.
- Clean package builds now publish the bundled runtime archive only after compression closes, preventing intermittent partial-archive reads on Node 25.
Validation
- Backported Pi's focused managed-state permission fix from commit
c49906eand the Feynman-safe guidance portion of pi-subagents commit62e0934. - Added exact transformation, fail-closed, fresh-file, existing-mode, launch-root, restored-runtime, installed-package, registered-tool, runtime-archive parser, and atomic archive-publication regressions.
v0.3.33 - 2026-08-22
Research evidence
- arXiv metadata now accepts only the requested paper's Atom entry plus exact HTTPS arXiv paper and PDF links instead of trusting labels or URL substrings from untrusted responses.
- Europe PMC full text decodes XML entities exactly once, preserving nested encodings instead of changing their research meaning.
- UCSC track descriptions now remove nested provider markup while preserving scientific comparisons in research results.
- Updated
fast-xml-parserto5.11.0for unsafe entity validation, multiple-DOCTYPE rejection, and malformed XML handling.
Workbench security
- OAuth access tokens, refresh tokens, and pending PKCE state now use atomic writes. On POSIX systems, current and migrated destination stores use
0600files inside0700workspace-state directories; workspace-controlled symlinks are rejected, and legacy workspace sources are never permission-mutated during migration. - Unexpected workbench request and OAuth callback failures now return generic responses. Local diagnostics retain only a standard error class and a bounded message fingerprint, not private paths or provider details.
- Malformed launch cookies stay unauthorized without disrupting the workbench, invalid streaming requests fail before HTTP success, and interrupted streams end with an explicit terminal error instead of silent success.
- End-to-end release workflows now declare read-only repository permissions explicitly.
Reliability
- Updated
posthog-nodeto5.50.0, including fixes for queue flushing, response-body timeouts, compression memory growth, shutdown, and telemetry value serialization. - Added executable regressions for XML entities, arXiv link origins, OAuth store permissions, generic server errors, UCSC markup, and workflow permissions.
v0.3.32 - 2026-08-21
Web research
- Updated
pi-web-accessto0.24.1. Direct page retrieval now uses the upstream compatibility identity so more public sources return readable content. - GitHub source retrieval now validates repository identities and isolates clone-cache destinations by digest before cleanup.
pdf.maxPagescan bound Datalab, Gemini, and local PDF extraction. It defaults to100.openaiSearchProviderscan choose the ordered Pi provider list used for OpenAI-compatibleweb_searchcalls.- Automatic search now prefers Codex-backed OpenAI retrieval when the active model is
openai-codex; other models try Exa before OpenAI. - Opt-in Chrome and Edge research on Windows now reads modern large cookie-expiry values safely in addition to using the corrected PowerShell 5.1 DPAPI path.
Validation
- Matched every patched source fixture to the published
[email protected]package and GitHub tagv0.24.1. - Preserved Feynman's exact config path, private cache, session model scope, Firecrawl loopback redirect confinement, browser-cookie opt-in, request deadlines, and Windows PowerShell 5.1 DPAPI correction.
- Added executable retrieval-header, GitHub identity, PDF page-limit, model-aware provider-priority, large Windows cookie-expiry, restored-runtime, and installed-package regressions.
v0.3.31 - 2026-08-21
Research agents
- Research subagents now stop after a context-window overflow instead of retrying the same oversized input on fallback models.
- Completed subagent tools no longer remain marked active when Pi backfills a result without a separate execution-end event.
- Logical subagent failures now reach the model as failed tool results. The model no longer treats an invalid or failed research-agent action as success.
Web research
- Opt-in Gemini Web research on Windows can now read Chrome and Edge
v10cookies through current-user DPAPI. - Chromium
v20app-bound cookies remain blocked and now return a clear diagnostic instead of a false authentication success.
Validation
- Ported only the focused upstream
pi-subagentscontext-overflow, tool-result backfill, and logical-failure corrections into the bundled research-agent runtime. - Added exact-source, restored-runtime, installed-package, model-loop, tool-result backfill, logical-failure, and native Windows DPAPI regressions.
v0.3.30 - 2026-08-21
Web research
- Readable page extraction now replaces inline
data:URI payloads with bounded omission markers before content reaches model context, the fetched-content cache, or session persistence. Raw mode still returns the exact textual response body. - Self-hosted Firecrawl API endpoints may use
localhost,127.0.0.0/8, or::1. The exception stays limited to the configured API origin, including redirects, and does not permit loopback research targets. - Linux curator launches now detach
xdg-open, so the browser process cannot hold a completed web search open.
Validation
- Ported three focused post-
0.24.0fixes frompi-web-accesswhile preserving Feynman's exact config path, private cache, session model scope, and existing provider controls. - Added executable readable/raw extraction, Firecrawl loopback and redirect isolation, Linux launch-failure, restored-runtime, and installed-package regressions.
v0.3.29 - 2026-08-21
Biomedical literature
- Concurrent PubMed, ClinVar, GEO, and other NCBI requests now share one paced queue. Literature-review turns no longer drop NCBI evidence after a burst of
429 Too Many Requestsresponses. NCBI_API_KEYnow reaches E-utilities while remaining redacted from reported provenance. Keyed requests use the higher NCBI budget, andNCBI_MIN_REQUEST_GAP_MScan set a wider delay for shared IP addresses.- PubMed request timeouts now cover the response body as well as the initial headers.
Research runtime
- Summary-only compaction and branch requests now disable tool calls across Pi providers. Feynman also rejects unexpected tool-call responses before they can enter a research summary.
- Provider-neutral tool choice now reaches Anthropic, Azure OpenAI, Bedrock, Google, Mistral, OpenAI, and Codex requests.
- Updated
pi-web-accessto0.24.0for current provider routing, provider base URLs, redirect credential stripping, and summary-model thinking suffixes. Feynman's private cache, exact config path, model scope, browser-cookie opt-in, and request deadlines remain intact.
Validation
- Reproduced the anonymous 12-search NCBI burst on
0.3.28at0/12, then verified12/12successful calls with pacing. - Added executable history, split-turn, and branch-summary guards across source, package archives, and installed runtimes.
- Matched every patched
[email protected]fixture to the published npm package before applying Feynman's maintained patch set.
v0.3.28 - 2026-08-18
Research agents
- Delegated research now treats provider subscription usage-limit errors as retryable. Configured fallback models continue instead of ending the run.
Model inputs
- Baseten GLM 5.2 and GLM 5.2 Fast now accept image inputs. Paper figures and other attached research images reach these models.
- Pi's model-data manifest now matches every backported catalog shard and its final model structure.
Validation
- Backported the two focused upstream corrections across local, packaged, restored, and installed runtime copies.
- Added executable fallback behavior plus complete catalog hash and structure checks across source, package archives, and installed runtimes.
v0.3.27 - 2026-08-17
Provider reliability
- Google and Vertex models now honor model-specific thinking-level maps. Extended or remapped levels produce the supported provider level and use its matching token budget.
- Bedrock gateway response callbacks now receive the raw Smithy response headers. Provider routing and request headers no longer disappear before Feynman can record them.
Model catalogs
- Removed deprecated Xiaomi MiMo model IDs while keeping the current MiMo 2.5 models across direct and token-plan providers.
- Added the current China Z.AI Coding Plan models, including GLM-4.6V, GLM-5.1, and GLM-5V-Turbo. Matching API-priced models now report their reference costs.
Validation
- Backported four focused fixes from Pi after
0.84.2and applied them to root, nested, packaged, and restored runtime copies. - Added direct Google, Vertex, Bedrock, Xiaomi, and Z.AI regressions plus installed-package and archive checks.
v0.3.26 - 2026-08-17
Document research
- Updated the bundled LiteParse runtime to
2.13.1. Multi-line table headers now keep in-table cells between established columns instead of silently dropping them. The existing parse, search, and screenshot tools keep their current interface.
Validation
- Added an installed-runtime regression that reproduces the lost table-header cell and checks the corrected Markdown table.
- Re-ran the installed document parse, search, and screenshot flow against the bundled runtime.
- Fixed cross-Node runtime repair to preserve the bundled exact package manifest and overrides. Node 22 consumers now keep LiteParse
2.13.1instead of reinstalling pi-docparser's older transitive default.
v0.3.25 - 2026-08-16
Research agents
- A malformed custom agent definition no longer blocks unrelated valid research agents from loading or running.
- Direct requests for a malformed agent now report its invalid configuration instead of using a lower-priority definition.
- Agent listings and doctor diagnostics now identify malformed definitions without stopping discovery.
- The default subagent tool now uses concise split prompt metadata, reducing always-loaded instructions while keeping explicit full, compact, and custom modes.
Package reliability
- Existing
[email protected]core pins now upgrade to the bundled0.23.0release before launch.
Validation
- Backported the focused upstream
pi-subagentsmalformed-agent isolation fix and added installed-runtime and stale-settings regressions.
v0.3.24 - 2026-08-15
Document research
- Updated the bundled LiteParse runtime to
2.13.0. Document parsing now improves garbled-text detection for mixed-font papers and uses layout-aware block classification for richer structured extraction. The existing parse, search, and screenshot tools keep their current interface.
Validation
- Re-ran the installed document parse, search, and screenshot flow against the bundled runtime.
v0.3.23 - 2026-08-15
Provider login reliability
- GitHub Copilot sign-in now enables model policies sequentially instead of sending a burst of parallel requests.
- If Copilot rate-limits model discovery, Feynman honors
Retry-Afterand retries once instead of ending sign-in.
Validation
- Added exact source, packaged-runtime, and login regressions for the Copilot rate-limit path.
v0.3.22 - 2026-08-14
Web research
- Updated
pi-web-accessto0.23.0. Researchers can use Firecrawl search and opt-in authenticated browser fetch profiles. - Preserved Feynman's exact web-search config path, private fetched-content cache, resolved Pi model scope, browser-cookie opt-in, raw-result default, and bounded primary-search deadline.
Research runtime
- Updated the bundled Pi runtime to
0.84.2. Fullscreen transcript search now supports match navigation and configurable match colors. - Managed tool downloads now report progress after the TUI mounts, and model catalog refreshes no longer restart when a selector opens during startup.
- Optional non-nullable tool arguments that arrive as
nullare now omitted before execution, while other malformed arguments remain rejected.
Validation
- Added exact-source gates for the
[email protected]contract and refreshed the packaged runtime lock and archive.
v0.3.21 - 2026-08-13
Document research
- Updated the bundled LiteParse runtime to
2.12.0. Document parsing now handles large documents more reliably and fixes rotated-page edge clipping and Markdown inline-code escaping. The existing parse, search, and screenshot tools keep their current interface.
Validation
- Re-ran the installed document parse, search, and screenshot flow against the bundled runtime.
v0.3.20 - 2026-08-12
Current research
- Added the local current date to parent research turns and
researcherchild sessions. - Required current-source checks for recent claims and stopped models from rejecting valid post-training data by date alone.
Package reliability
- Reconciled Feynman-managed package sources to the exact bundled versions before launch.
- Removed stale managed shadow installs while preserving custom package selectors, package filters, and optional packages.
Validation
- Added clean stale-settings, stale-install, broken-symlink, custom-package, and installed model-context regressions.
v0.3.19 - 2026-08-11
Web research
- Updated
pi-web-accessto0.22.0. Researchers can use Bocha as a configured search route. - Added
maxInlineContentCharsfor larger fetched-page and stored-content slices. The default remains 30,000 characters, with a 200,000-character cap.
Reliability
- Adopted upstream fetched-content cache hardening and removed Feynman's temporary storage replacement.
- Preserved Feynman's exact config path, private cache location, model scope, browser-cookie opt-in, raw-result default, and 90-second primary-search deadline.
Validation
- Added exact-source gates for Bocha routing, configurable content limits, cache hardening, and the full Feynman patch set.
v0.3.18 - 2026-08-11
Research agents
- Loaded Feynman's research-tool extension explicitly in every bundled
researcherchild session. - Kept Hugging Face dataset and repository tools in the strict researcher allowlist without relying on ambient child discovery.
Reliability
- Preserved custom researcher extension overrides while adding the bundled provider to default settings.
- Made the published subagent smoke reject unavailable child-tool diagnostics even when the parent model repeats a child result.
v0.3.17 - 2026-08-11
Web research
- Exposed the stored response ID in every single-URL
fetch_contentresult, including short pages and failures. Researchers can now pass the exact ID toget_search_contentinstead of guessing from hidden tool details. - Bounded the fetched-page cache to 128 entries and 128 MiB. Feynman removes expired entries first, then evicts the oldest entries until both limits hold.
Security and reliability
- Normalized fetched-content cache permissions to
0700directories and0600files on macOS and Linux. - Rejected cache-directory and cache-entry symlinks, removed stale extension-owned temporary files, and moved writes to exclusive random temporary files with durable atomic replacement.
- Made concurrent pruning tolerate entries that another Feynman process already removed.
Validation
- Ported the focused storage repair from upstream
pi-web-accessPR#241at commitb3e784f, while retaining Feynman's exact custom configuration path. - Added regressions for model-visible response IDs, quota eviction, temporary-file cleanup, permissions, symlink rejection, and concurrent deletion.
v0.3.16 - 2026-08-10
Web research
- Updated
pi-web-accessto0.21.0. Full fetched pages now live in a private external cache instead of session JSONL, so search-heavy sessions stay bounded and restore without loading page bodies into the transcript. - Added per-tool and per-command registration gates, direct-image and PDF extraction gates, and a configurable summary-generation deadline.
- Documented the exact
get_search_contentargument constraints and added/web-resultsfor browsing stored web results without conflicting with session search.
Reliability
- Kept the fetched-content cache beside Feynman's exact web-search configuration, including custom
FEYNMAN_WEB_SEARCH_CONFIGpaths. - Preserved Feynman's project-local PDF scratch files, session model scope, browser-cookie opt-in, raw-result default, and bounded primary search deadline.
- Restored automatic package reconciliation for workspaces that retained the
0.3.15core package pins.
Validation
- Verified the exact upstream
0.21.0source through all437tests, typecheck, production audit, and package inspection. - Added regressions for external cache persistence, bounded session metadata, the
/web-resultsgate translation, current feature markers, and installed tool and command registration gates.
v0.3.15 - 2026-08-10
Model selection
- Fixed the Pro-class cost guard so exact DeepSeek V4 Pro model IDs remain selectable across Pi providers. These open-weight models use ordinary provider pricing even though their product name contains
Pro. - Kept premium service tiers such as Gemini Pro and
o1-problocked. Feynman does not provide a broad environment-variable bypass for future Pro-class models. - Preserved an existing DeepSeek V4 Pro default during settings repair, included it in model lists and recommendations, and allowed explicit CLI and PaperRank synthesis selection.
Validation
- Added regressions for Pi's direct, vendor-prefixed, and Fireworks DeepSeek V4 Pro IDs across catalog, recommendation, explicit-model, default-setting, and settings-normalization paths.
v0.3.14 - 2026-08-10
Web and document research
- Updated
pi-web-accessto0.20.0. Researchers can use keyless DuckDuckGo HTML search as an explicit provider or fallback route. - Added optional Datalab PDF-to-Markdown extraction before Gemini and local PDF.js. Datalab retains tables, multi-column order, headings, links, and math, while the local parser remains the no-key fallback.
- Fixed Gemini Web requests that failed when Google response headers exceeded the host agent's default HTTP/1.1 header limit.
Reliability
- Preserved Feynman's project-local fetch cache, exact web configuration path, session model scope, browser-cookie opt-in, and bounded search deadline across the upstream upgrade.
- Updated root and packaged runtime IP parsing to
10.5.0, so IPv6 URL parsing fails gracefully for non-IPv6 hosts instead of throwing. - Restored automatic package reconciliation for workspaces that retained the
0.3.13core package pins.
Validation
- Verified the exact upstream
0.20.0source through all425tests, typecheck, production audit, and package inspection. Added installed-runtime checks for DuckDuckGo and Datalab.
v0.3.13 - 2026-08-09
Reliability
- Kept Pi agent-managed
brace-expansionversions at or above the current secure5.0.9floor intact. A newer registry release can no longer stop Feynman during launch, while stale5.0.6through5.0.8trees still upgrade to the verified5.0.9package. - Kept malformed and older unsupported versions fail-closed instead of weakening the launch-time security repair.
Validation
- Added source, package-lock, installed-tree, and exact agent-managed runtime regressions for future
brace-expansionversions.
v0.3.12 - 2026-08-08
Research runtime
- Updated the bundled Pi runtime to
0.84.1. Provider authentication preflights, bounded blocked-tool termination, provider refresh transactions, and active-run reset protection now use Pi's current contracts. - Updated Workbench chat for Pi's delta-only RPC stream. Live assistant text now accumulates correctly while the final
message_endremains authoritative.
Document research
- Updated
pi-docparserto4.0.0. Native PDFium and OCR work now runs in isolated, cancellable child processes, so parser crashes and memory failures become bounded tool errors instead of terminating the research session. - Added strict page, worker, DPI, search, screenshot, and output limits. Parse publication is atomic, JSON output has a stable
{ pages, text }shape, screenshots default to page 1, and each call accepts at most four explicit pages. - Removed the ImageMagick requirement for supported image inputs and updated LiteParse to
2.11.1. The document runtime now includes stronger table extraction, RTL/LTR text ordering, and source-provenance metadata support. Document parsing requires Node.js22.19.0or newer; Feynman's supported Node floor already satisfies it. - Added LiteParse's platform-native packages as optional npm dependencies, so one published Feynman tarball can parse documents on supported macOS, Linux, and Windows consumers.
Web research
- Updated
pi-web-accessto0.19.0.fetch_contentcan now return raw textual HTTP responses, answer a question against one page while retaining its source text, retrieve direct PNG/JPEG/WebP/GIF images, and paginate long content on cleaner boundaries. - Added exact, case-insensitive, and fuzzy passage lookup over stored page content through
findTextandfindMode, plus current Jina Search, Kagi, Ollama Cloud, xAI, Bright Data, SerpBase, and authenticated SearXNG routes. - Adopted current Kagi Search and Extract contracts, Gemini relay routing for local video requests, xAI quota fallback classification, and
:maxscoped summary-model matching. - Preserved routed-provider model selection and hardened Git clone cancellation from upstream, including non-interactive credential handling and process-tree termination.
Reliability
- Fixed
feynman alpha asksending obsoleteurls/urlarguments to alphaXiv. Paper Q&A now sends the currentpaperplusqueriesschema. - Kept PDF scratch Markdown in the active project's
.feynman/cache/fetch-content, kept browser-cookie access opt-in, retained the bounded primary search deadline, and adopted upstream's per-call curator isolation and no-browser timeout rather than carrying superseded local patches. - Bound page-answer, search-rewrite, and curator summary model selection to Pi's resolved session model scope, including
--modelsoverrides, instead of rereading an adjacent settings file. - Bound web-search configuration reads and writes to the same Feynman-managed path, including custom
FEYNMAN_WEB_SEARCH_CONFIGlocations, and create that file's parent before saving. - Updated Feynman's direct, nested Pi, and packaged runtime copies of Undici to
8.10.0for current idle-connection, readable-body, retry, HTTP/2, proxy IPv6, and DNS-origin fixes. - Updated PDF.js to
6.2.108and the website's audited JS-YAML and Nano ID trees to close current malicious-document and denial-of-service advisories. - Removed macOS ACL, file-flag, Apple metadata, and extended-attribute records from bundled runtime archives so those host records no longer change package bytes.
- Updated audited Hono,
fast-uri,ip-address,express-rate-limit, and websitebrace-expansionoverrides after new registry advisories, and removed a streamed checksum-file handle from the Windows installer verifier. - Restored automatic package reconciliation for workspaces retaining the
0.3.11,0.3.10, or older0.3.6bundled package defaults.
Validation
- Added an installed document-tool gate that loads the shipped TypeScript extension through Pi's bundled Jiti, then executes
document_parse,document_search, anddocument_screenshotagainst a generated PDF.
v0.3.11 - 2026-08-01
Research agents
- Updated
pi-subagentsto0.40.0so delegated research runs have stable child identities, explicit signal-termination status, separate process and output-availability state, and clearer model and thinking-level visibility. - Added session-scoped agent capability ceilings, chain approval checkpoints, reported token and cost budgets, and child-runtime extension acknowledgements for safer, more auditable multi-agent research workflows.
- Restored automatic package reconciliation for workspaces that retained either the
0.3.10or older0.3.6bundled package defaults.
v0.3.10 - 2026-08-01
Runtime
- Updated the bundled Pi runtime train from
0.82.1to0.83.0, including Pi's provider, session, package-install, headless OpenRouter sign-in, and extension model-scope improvements. - Migrated Feynman's bundled extension runtime to Pi's TypeBox
1.3.7contract. Extension authors must replace removedType.Base,Type.Awaited,Type.Promise,Type.AsyncIterator,Type.Iterator,Type.Options, andValue.MutateAPIs before upgrading. - Updated
pi-web-accessto0.17.1for bounded streamed fetches, Gemini-compatible provider schemas, and current search/extraction fixes, and updatedpi-subagentsto0.38.0for startup retries and bounded progress snapshots.
Reliability
- Retained Feynman's fail-closed manual-compaction and eager parallel-result durability repairs because the owning upstream Pi issues remain open, and bound every Pi package plus artifact verification to the coordinated
0.83.0train. - Adopted Pi's native llama.cpp streaming-usage fix while preserving Feynman's automatic repair of older cached model metadata, so upgrades retain token accounting without deleting
models-store.json. - Reapplied the narrow Pi shrinkwrap repairs for
brace-expansion5.0.9and Undici8.9.0; upstream Pi0.83.0still ships the affected5.0.7and8.5.0copies. - Fixed
feynman updatewriting user-package upgrades to a shadow npm prefix while Pi continued loading an older managed copy. Updates now target the resolved package root, reconcile stale exact-pinned core packages against Feynman's configured versions, preserve range and registry-tag selectors as unpinned sources, verify that attempted updates actually completed, and accept names such asfeynman update pi-subagents; the in-app notice now points to that supported command. - Fixed the Windows one-line installer failing on valid long archive entries. Extraction and rollback cleanup now run through a unique short temporary drive on the install volume while preserving the transactional replacement boundary.
- CLI analytics, log, and trace sends now make one attempt before opening a silent per-process circuit breaker, rather than printing PostHog transport errors into research output. The bundled Pi tracer also performs a silent status-checked HTTP preflight and skips exporter startup when Feynman's collector is blocked or returns an error. Set
FEYNMAN_DEBUG=1for the single CLI diagnostic notice orFEYNMAN_TELEMETRY=offto disable telemetry explicitly. - PaperRank model synthesis now rejects terminal provider errors and output-token truncation even when a failed stream contains partial text, so incomplete output cannot be labeled or written as a generated synthesis.
- Restored Feynman's 15 built-in research tools to
/toolsand/capabilitieswhen Pi reports their source as the top-levelresearch-tools.tsextension, including on Windows paths.
Validation
- Added mixed-version and older/newer Pi rejection coverage, installed-package checks for all 15 Feynman tools and 9 extension commands, compilation of every installed tool schema, optional-array and malformed-null rejection through Pi's TypeBox 1.3 runtime path, managed/global package-update checks, long-path Windows installer fixtures, cached llama.cpp migration and streaming accounting checks, and exact runtime-lock and package-artifact verification.
v0.3.9 - 2026-07-29
Reliability
- Prevented Workbench and other RPC prompts submitted during manual compaction from being acknowledged and then lost. Pi now rejects the prompt before a success acknowledgment with a retryable error.
- Persisted each completed parallel tool result before slower siblings finish, so successful research evidence survives an abort or restart. Restored sessions and provider requests continue to present results in the assistant's original tool-call order.
- Replaced eagerly persisted tool results in place when an extension modifies the finalized message, preventing duplicate session entries and duplicate tool-usage accounting.
- Restored token accounting for the built-in llama.cpp provider by requesting streaming usage from compatible llama-server releases. Existing cached llama.cpp model metadata is repaired in place, so users do not need to delete
models-store.jsonor repeat provider setup. - Fixed plain HTTP API and MCP traffic behind
HTTP_PROXYusing aCONNECTtunnel that compatible proxies reject. HTTP targets now use absolute-form forwarding while HTTPS targets continue to tunnel. - Replaced deprecated Windows shell-with-arguments launches in native builds and stale-upgrade verification with explicitly escaped
ComSpecinvocations.
Package Stack
- Updated Feynman's direct and nested Pi Undici runtime from
8.5.0to8.9.0. The narrow Pi manifest, shrinkwrap, and installed-tree repair can be removed after a supported Pi release requires Undici8.7.0or newer.
Validation
- Strengthened the installed-package and native-bundle stale-Pi gate with representative shrinkwrap metadata and its vulnerable nested dependency, a complete persistent-fixture mutation allowlist, exact security-tree checks, and byte-idempotent second-launch verification.
- Added real RPC and proxy-server regressions, reopened-session checks while parallel work remains pending, real file-store and concurrent-refresh llama.cpp migration coverage, a mock SSE token-accounting check, and package-artifact mechanism checks for every temporary Pi correctness patch plus exact Pi shrinkwrap dependency, resolved URL, and integrity metadata.
v0.3.8 - 2026-07-29
Reliability
- Fixed standalone upgrades failing at launch with
Unsupported Pi editor layoutwhen an older Pi core dependency remained in the user's package directory. Startup now leaves stale Pi core entrypoints untouched while applying the narrow nested dependency security repair and continuing to patch installed extensions, which Pi loads against Feynman's current bundled runtime.
Validation
- Added an installed-package and native-bundle upgrade smoke that stages representative Pi
0.80.6core entrypoints, proves those entrypoints remain unchanged, verifies extension patching stays idempotent, and launches Feynman through RPC twice before a release can publish.
v0.3.7 - 2026-07-28
Reliability
- Fixed
npm install @companion-ai/feynmanproducing an unusable CLI when npm left the direct OpenTelemetry API hoist target empty beside Feynman's bundled Pi packages. The package now bundles its exact direct telemetry API so global installs can start reliably.
Validation
- Added clean global-install version and help smokes to every supported Linux, macOS, Windows, and Node
22/24/25package-consumer gate, plus post-publication verification of the registry package.
v0.3.6 - 2026-07-28
- Raised the npm-install Node 22 floor to
22.22.0, matching the direct telemetry runtime's actual engine contract; standalone installers continue to bundle Node24.18.0.
Reliability
- Fixed alphaXiv login after its OAuth migration by shipping the current OAuth2 endpoints and validating the loopback callback state before exchanging authorization codes.
feynman alpha statusnow refreshes expired credentials and verifies them against the live user-info endpoint instead of treating any cached token as logged in. - Fixed Windows one-line installs by extracting release archives into temporary staging before replacing the installed bundle.
- Fixed workbench state switching between newly minted local organizations when concurrent processes read
active-org.jsonduring a rewrite. Valid manifests are no longer rewritten, and required writes are atomic. - Option+Enter now inserts a newline in Feynman's REPL input. Shift+Enter preserves Pi's follow-up action in terminals that report modified Enter keys, Ctrl+J remains a portable newline alternative, and existing user-modified keybindings remain untouched.
- Added
/thinking [level]so reasoning effort is discoverable and directly adjustable inside the REPL while Shift+Tab remains available. The picker follows the active model's supported levels, includingmaxwhere Pi exposes it. fetch_contentnow writes extracted PDF scratch Markdown under the active project's.feynman/cache/fetch-contentinstead of~/Downloads. SetFEYNMAN_FETCH_CACHE_DIRto override the location.- Unknown CLI flags now point to
feynman help, andfeynman updatehelp clarifies that extensions update with their packages rather than through a separate--extensionsflag.
Package Stack
- Added
pi-btwto Feynman's default Pi package stack so/btwside conversations are available during long-running research turns without requiring a separate package install. - Updated
pi-subagentsto0.37.2so child runs that disable inherited project context follow Pi's current context-file contract, while reducing repeated TUI and skill-file scans. - Updated
pi-web-accessto0.15.0, adding simultaneous all-provider search with partial-failure diagnostics, TinyFish search and extraction, and configurable OpenAI Responses-compatible search gateways. - Refreshed the bundled Pi runtime packages from
0.80.3to0.82.1, migrated Feynman's model/auth integration to Pi's asynchronousModelRuntime, and kept the runtime fallback pins aligned with the installed package set. - Repaired the current Pi and MCP production dependency advisories in the packaged runtime by replacing Pi's vulnerable nested
brace-expansioncopy with5.0.8, updating MCP SDK to1.30.0, and pinning its compatible Hono server dependency to2.0.12. The Pi repair can be removed after upstream updates its shrinkwrap; the Hono pin can be removed after MCP no longer permits the vulnerable v1 range. - Pinned the bundled runtime's complete dependency graph in a committed lockfile, upgraded its coordinated OpenTelemetry train to
2.10.0/0.221.0, and made pruning changes and archive digests invalidate stale runtime artifacts. Startup now verifies every package named by the bundled runtime manifest, so a stale Pi copy is restored even when it is not itself a user-configured extension. - Runtime and standalone archives now bind relative build inputs and the complete patched tree, reject stale or transplanted manifests, normalize archive metadata, and omit macOS AppleDouble metadata that previously doubled package size.
- Added pre-merge Linux package/consumer plus Windows PowerShell installer replacement gates. Release publication now promotes the exact verified tarball only after native bundles pass.
- Added explicit release-package budgets of 125 MiB compressed, 360 MiB unpacked, and 42,000 files around the current bundled research runtime so accidental package growth fails before publication.
- Pinned release executors and the bundled Node
24.18.0archives, added Linux arm64 release builds, and made every standalone installer verify the publishedSHA256SUMSentry before replacing a working installation.
Science Workbench
- Expanded
feynman serveinto a standalone open-science workbench surface with Feynman-owned project/session/frame state, project metadata, Pi chat, frame message rows, frame backfill health records, Feynman Bio Tools, notebooks, compute inventory, artifacts, lineage, provenance, settings, memory categories, onboarding intent context, and redacted credential availability ledgers. - Added a Feynman-owned
~/.feynman/active-org.jsonand~/.feynman/orgs/<org_uuid>/app spine so the local workbench has an org-scoped home structure instead of a flat scratch directory. - Added a Feynman-owned org database at
~/.feynman/orgs/<org_uuid>/feynman-workbench.db, refreshed from the local workbench state with reference-shaped project, frame, message, artifact, artifact-version, execution, verification, memory, note, annotation, read-cursor, artifact-folder, compute-provider, MCP-grant, memory-category, routine-schedule, managed-endpoint, and capability-setting tables. - Added compact table envelopes in that database for the remaining reference-shaped workbench ledgers Feynman already owns in state, including agents, skills, credentials, OAuth tokens, events, notifications, session activity, claims, host logs, marketplace rows, and archive rows.
- Compute-provider rows in the org database now persist egress policy and Modal environment fields, including in-place upgrades for existing local databases. Split science connector attachments, split MCP grants, and custom MCP resource identifiers are mirrored through Feynman's owned ledger rows.
- Added a Feynman-owned chemistry sketcher tool that creates editable KET, Molfile, RXN, or SMILES artifacts under
outputs/chemistry-sketches/for the local Ketcher editor, instead of requiring a reference-app MCP runtime. - KET, RXN, CDXML, and CXSMILES chemistry artifacts now open as first-class molecule previews in the workbench. Feynman marks these scanner formats as previewable text artifacts, shows lightweight chemistry metadata, routes sketch files into the local Ketcher editor, and avoids trying to render Ketcher-only formats through RDKit.
- Moved app-owned workbench state into
~/.feynman/orgs/<org_uuid>/workbench/workspaces/<workspace-id>/, including workbench settings, chat sessions, uploads, memory, annotations, OAuth token references, notebook logs, Modal job scripts, managed Python/R environments, artifact snapshots, and cloud-export audit logs. Existing home-level~/.feynman/workbenchrecords and checkout-local.feynman/workbenchrecords are copied forward on first access. - Added Feynman-owned credential and setup-intent state so the workbench can show which research capabilities are available without exposing raw secrets or requiring another local app at runtime.
- Added Feynman-owned skill source and license-assent ledgers so the workbench can audit its bundled science skill pack without depending on an external marketplace service.
- Added Feynman-owned watch routine ledgers so
/watchplans and baselines appear as honest scheduled or blocked routine state in the workbench. - Added Feynman-owned contact-email and credential-ask decision ledgers so public database contact consent and provider credential readiness are auditable without exposing raw credential values.
- Added Feynman-owned compute poller lease rows so active compute jobs and pending terminations expose the same single-writer polling guard shape as the science workbench control plane.
- Added Feynman-owned review feedback rows so user-requested reviewer passes are auditable by frame, type, model, response id, and bounded context snapshot.
- Added Feynman-owned frame rows so projects, chat sessions, artifact runs, and upload areas expose a first-class control-plane frame spine through local state.
- Added Feynman-owned project metadata rows with local owner, created/updated timestamps, context, memory state, and upload-frame linkage.
- Added Feynman-owned frame message rows so persisted chat turns are auditable by frame id, message index, UUID, role, status, and structured message JSON.
- Added Feynman-owned frame backfill health records so failed historical frame imports can be tracked without inventing failures in clean workspaces.
- Chat-produced artifacts now attach to the producing session and project by snapshot/output provenance, so Run and Project file scopes, header metrics, artifact folders, versions, and verification evidence agree even when the file slug differs from the chat frame id.
- Files now show a host selector for local workspace artifacts, SSH/BYOC compute hosts, and cloud buckets derived from Feynman's owned compute and credential state.
- HTML report previews now support element-level annotation inside the sandboxed iframe, including selector/text capture, saved badges, and the same artifact annotation/refinement path used by text, image, and PDF anchors.
- Artifact Notes now open in workbench modals with target context, existing note count, add/edit/delete controls, Cmd/Ctrl+Enter save, note preview, and Open artifact navigation, backed by Feynman's owned target-note ledger.
- Cloud storage now opens a workbench modal from Customize > Storage, showing credential-backed S3/GCS/Azure/local targets, configured or missing status, target details, connection-reference feedback, delete, and a Credentials navigation action.
- Artifact Cloud export now opens a workbench modal that shows configured and missing storage targets, lets users choose the destination path, and records exports through Feynman's owned cloud-export audit log.
- Expanded Feynman Bio Tools with no-login KEGG
link:andconv:modes for batched pathway/reaction/database cross-links and outside ID conversions, including missing-ID reporting and endpoint provenance. - Expanded Feynman Bio Tools with no-login PanglaoDB support for curated single-cell marker genes by cell type or gene symbol, including canonical-marker filters, organ/species context, nicknames, and sensitivity/specificity scores.
- Expanded Feynman Bio Tools with no-login public sources for AlphaFold DB predicted structures, ArrayExpress/BioStudies functional-genomics studies, MGnify metagenomics studies, JASPAR transcription-factor matrices, and MyGene.info gene annotations.
- Expanded Feynman Bio Tools with richer no-login PubMed support for article metadata, PMID/PMCID/DOI conversion, related-article and PMC links, citation matching, copyright/license checks, and PMC full-text routing with bounded section snippets.
- Expanded Feynman Bio Tools with richer no-login ClinicalTrials.gov support for NCT detail records, sponsor-specific trial programs, eligibility filters, investigator/contact discovery, and endpoint summaries.
- Expanded Feynman Bio Tools with richer no-login bioRxiv and medRxiv support for preprint DOI lookup, date/category windows, published-preprint links, funder/ROR lookup, bioRxiv content statistics, and server-specific usage statistics.
- Expanded Feynman Bio Tools with no-login EBI structural and interaction sources for ChEBI compounds and ontology records, Complex Portal macromolecular complexes, IntAct molecular interactions, and EMDB cryo-EM map metadata.
- Expanded Feynman Bio Tools with no-login public atlas and regulatory sources for openFDA drug labels, adverse events, recalls, Drugs@FDA applications, application count aggregations, pharmacologic classes, generic-equivalent active-ingredient sets, Human Protein Atlas gene/protein expression rows, and eQTL Catalogue variant-gene association rows.
- Expanded Feynman Bio Tools with richer no-login ChEMBL support for compound name/SMILES similarity and substructure search, drug indications and warnings, calculated ADMET properties, ligand-target bioactivity filters, mechanism records, and target/gene search.
- Expanded Feynman Bio Tools with no-login GWAS Catalog support for curated SNP-trait associations, EFO trait search, study accessions, PMIDs, p-values, mapped genes, and ancestry/sample metadata.
- Expanded Feynman Bio Tools with exact human-genetics modes for GWAS Catalog association, trait, study, and SNP detail queries; eQTL Catalogue dataset and dataset-scoped association queries; and PheWeb/FinnGen variant, gene, phenotype-listing, and phenotype-search PheWAS workflows.
- Expanded Feynman Bio Tools with exact literature modes for OpenAlex work search/detail, citations, references, author search/detail, venue metadata, and arXiv search plus batch paper retrieval.
- Expanded Feynman Bio Tools with exact protein-annotation modes for InterPro/Pfam domain architecture, entry search/detail, Pfam clan and family member lookups, Human Protein Atlas gene/search records, and STRING mapping/network/similarity workflows.
- Expanded Feynman Bio Tools with exact research-resource modes for Antibody Registry search/detail/catalog/stat workflows and Grants.gov Search2 opportunity lookup by keyword, opportunity number, ALN, agency, status, eligibility, funding category, and funding instrument.
- Expanded Feynman Bio Tools with exact Rfam RNA modes for family metadata, accession/id conversion, seed alignments, covariance models, phylogenetic trees, sequence regions, PDB structure mappings, and batch sequence search.
- Expanded Feynman Bio Tools with exact omics-archive modes for ArrayExpress experiments/files/samples, GEO series search/detail, MetaboLights studies/files/data files, MGnify studies/analyses, and PRIDE project/protein-evidence workflows.
- Expanded Feynman Bio Tools with exact regulation modes for ENCODE experiment/biosample/file search and detail records, JASPAR matrix/version/catalog workflows, and UniBind dataset plus regional TFBS workflows through UCSC hub data.
- Expanded Feynman Bio Tools with exact variant modes for gnomAD short variant search/detail, gene variants, constraint, region variants, liftover, ClinVar mirror variants, structural variants, mitochondrial variants, CADD variant/position/range scores, direct ClinVar search/accession/rsID records, and dbSNP rsID/region lookup.
- Expanded Feynman Bio Tools with no-login BioMart support for Ensembl mart discovery, dataset listings, common attributes, filters, and constrained gene table retrieval through Feynman's built-in database search tool.
- Expanded Feynman Bio Tools with no-login MetaboLights support for public metabolomics study metadata, MTBLS accessions, assay context, study-folder files, and public data-file listings.
- Expanded Feynman Bio Tools with no-login UCSC Genome Browser support for assembly discovery, track search, chromosome sizes, bounded genomic region track rows, conservation score summaries, and ENCODE TFBS clusters.
- Expanded Feynman Bio Tools with exact genome modes for Ensembl lookup, xrefs, VEP variant consequence summaries, homology, sequence, and overlap-region retrieval plus UCSC
ucsc_list_tracks,ucsc_chrom_sizes,ucsc_track_data,ucsc_conservation, anducsc_tfbs_clustersquery names. - Expanded Feynman Bio Tools with no-login UniBind support for direct TF-DNA interaction dataset search, exact dataset model metadata, BED/FASTA/plot model links, and UCSC hub-backed TFBS region rows.
- Expanded Feynman Bio Tools with Europe PMC open-access full-text section lookup for PMCID/PMID inputs, returning section inventories, bounded snippets, figure/table/reference counts, and explicit not-open-access or missing-full-text statuses without exposing raw XML.
- Expanded Feynman Bio Tools with no-login ZINC support for purchasable compound lookup by ZINC ID, SMILES exact or analog search, supplier catalog-code resolution, random screening-set sampling, and 3D tranche repository locations.
- Expanded Feynman Bio Tools with PubChem compound search/detail, SMILES similarity, bioassay summary, and GHS safety modes; ChEBI search/entity/ontology modes; BindingDB target-ligand and compound-target modes; and Rhea reaction search/detail modes.
- Expanded Feynman Bio Tools with CIViC gene/variant/evidence/assertion/molecular-profile/disease/therapy modes, ClinGen validity/dosage/actionability/variant-classification modes, and Open Targets bounded GraphQL-compatible search plus disease-drug, disease-target, and drug wrapper modes.
- Expanded Feynman Bio Tools with GTEx dataset, tissue-site, sample, gene-resolution, expression, top-expressed-gene, and eQTL modes plus exact PanglaoDB marker-gene, gene-to-cell-type, and options modes.
- Expanded Feynman Bio Tools with exact genes/ontologies modes for MyGene query-many lookup, OLS ontology catalogue/search/term lookup, QuickGO GO annotations, UniProt TSV/FASTA/TXT entry retrieval, Reactome pathway mapping, and KEGG entry/search/link/ID-conversion workflows.
- Expanded Feynman Bio Tools with no-login CellGuide support for Cell Ontology cell-type lookup, marker genes, tissue occurrence, and CELLxGENE source collections.
- Expanded Feynman Bio Tools with no-login Antibody Registry support for antibody RRID search, catalog-number lookup, vendor filtering, registry stats, and per-antibody detail records.
- Expanded Feynman Bio Tools with credential-aware OpenAlex support for scholarly work search, work detail, DOI claimant resolution, incoming citations, outgoing references, authors, sources/venues, OA status, and rate-limit diagnostics.
- Expanded Feynman Bio Tools with cBioPortal cancer-model parity modes for study search/detail, clinical attributes, per-gene mutation rows, cross-study mutation frequency, and discrete CNA events, plus DepMap reference-name modes for model listing/detail/search, gene search, and CRISPR dependency rows.
- Added native workbench previews for audio, video, XLSX spreadsheets, Jupyter notebooks, and LaTeX/TeX artifacts alongside the existing report, JSON, PDF, genome, alignment, molecule, structure, tree, and tensor viewers.
Website and Docs
- Added the Science Workbench guide, homepage workbench section, command-reference entry, setup notes, and README wording for the standalone workbench path.
- Corrected the npm install Node.js range in the website docs to match the package engine range.
v0.3.5 - 2026-06-28
Pi Runtime
- Refreshed the bundled Pi runtime packages to
0.80.2, restoring the@earendil-works/pi-ai/compatentrypoint and extension-loader aliases used by optional packages such aspi-web-access(#183). - Feynman's package installer now derives legacy
@mariozechner/*alias versions from the current canonical@earendil-works/*runtime packages first, so stale legacy package roots cannot seed old Pi peer versions duringfeynman update. - Updated the Pi TUI patcher for the current upstream overflow-check layout so overwide rendered lines are clipped instead of crashing the session renderer.
Validation
- Added regressions for the current Pi TUI overflow block, release-note compat coverage, and legacy Pi alias derivation from current runtime metadata.
v0.3.4 - 2026-06-12
Research
- Added
feynman paperfor single-paper access resolution across OpenAlex, DOI, arXiv/alphaXiv, and Europe PMC, with optional source-specific text fetching and bounded artifacts that omit raw full-text bodies. - Added
feynman rank <topic>with PaperRank scoring for read-first triage, transparent citation/method/reproducibility evidence, graph context, optional critique or model synthesis, bounded JSONL outputs, and provenance. - Added
--reproduction-notesso completed reproduction outcomes are recorded separately from planned replication checks. When reproduction notes are supplied, PaperRank writes the reproduction ledger, notes template, and replication plan; ordinary read-first runs keep those extra artifacts out of the default output.
Model Catalog
- Fixed research model selection so recommended/default model paths, stale settings, model lists, and explicit CLI overrides reject Pro-class model IDs and keep OpenAI-only installs on the newest available non-Pro GPT model exposed by Pi.
- Added PaperRank model-selection provenance so CLI output, JSON output, generated synthesis Markdown, and rank provenance name the actual synthesis model and whether it came from the recommendation path or an explicit override.
- Updated setup/configuration examples and the LiteLLM fallback prompt to avoid GPT-4-era and premium-tier defaults.
Pi Runtime
- Refreshed the bundled Pi runtime packages to
0.79.10and updated production dependency overrides sonpm audit --omit=devis clean after the refresh. This inherits Pi's compaction-event context, exact-version update flow, nested-repofindfix, and OpenAI-compatiblereasoning_detailsstreaming fix. - Fixed session rename crashes when long slash-workflow names overflowed the custom header. Header workflow names are now clipped to their column in both wide and narrow layouts before descriptions are rendered.
- Removed the old
generative-ui,ui, andall-extrasoptional package/update targets. Optional packages now stay one-by-one and research-continuity focused.
v0.2.58 - 2026-05-16
Optional Packages
- Added a
hindsightoptional preset that installs@luxusai/pi-hindsight, giving users a first-class path to Hindsight-backed research-continuity memory without adding it to the default install. - Added
hindsightandpi-hindsightupdate aliases sofeynman update hindsightresolves to the same package source. - Updated the package-stack and setup docs to show Hindsight as an optional memory surface and note that it requires a Hindsight server or Hindsight Cloud account.
Validation
- Added regression coverage for the new optional preset, research-continuity package copy, removed bulk/UI presets, and update aliases.
v0.2.57 - 2026-05-15
Runtime Reliability
- Fixed the interactive prompt input color on macOS/iTerm profiles where typed text inherited a black terminal foreground against Feynman's dark editor background.
- Applied the editor foreground/background patch through the shared Pi patch module so package-local installs and the vendored runtime archive stay in sync.
Validation
- Added regression coverage for the patched Pi editor/theme source transformations, including idempotency.
v0.2.56 - 2026-05-13
Security
- Updated the
protobufjsdependency override from7.5.5to7.5.8, which pulls in the patched@protobufjs/utf8release and clears the current production audit advisory set.
Validation
- Re-ran the root production audit after the override refresh and confirmed it reports zero vulnerabilities.
v0.2.55 - 2026-05-13
Model Catalog
- Updated Feynman's research model preference order so the newest available non-Pro OpenAI GPT model can be recommended, auto-selected, and surfaced ahead of older OpenAI GPT models.
- Applied the same newest-available non-Pro GPT preference to OpenAI Codex when Pi exposes Codex directly.
- Updated first-run/default setup preferences so OpenAI-only installs choose the newest available non-Pro OpenAI GPT model when available.
Validation
- Added regression coverage for newest-available non-Pro OpenAI recommendation, model sorting, and default setup seeding.
v0.2.54 - 2026-05-11
Runtime Reliability
- Fixed packed npm installs that hoist package dependencies outside Feynman's package root. Feynman now falls back to its vendored
.feynman/npmruntime workspace when resolving Pi, sofeynman doctorand prompt launches work from a clean packed install. - Applied runtime node-module patches to both package-local dependencies and the vendored runtime workspace.
Validation
- Added regression coverage for packed-install Pi path resolution and vendored runtime patching.
- Added an isolated packed-install E2E that installs the generated tarball into a clean prefix/home and launches Feynman from that install.
v0.2.53 - 2026-05-11
Runtime Reliability
- Hardened alphaXiv search fallback again: if both the removed MCP search tools and
discover_papersare unavailable,alpha searchnow falls back to the public alphaXiv fast REST search endpoint. - Patched the Pi extension loader to alias both
@mariozechner/*and@earendil-works/*Pi runtime imports to Feynman's already initialized bundled runtime, preventing mixed-namespace TUI/theme crashes when expanding tool output. - Applied the extension-loader patch to the vendored runtime archive path, not only the local development
node_modulespath.
Validation
- Added regression coverage for upgrading the old
discover_papers-only alphaXiv patch and for dual-namespace Pi runtime aliasing.
v0.2.52 - 2026-05-09
Runtime Reliability
- Seed bundled runtime packages before package updates so missing undeclared extension dependencies such as
typeboxare repaired before extension load. - Include Pi's
typeboxruntime package beside installed Pi packages when Feynman has to run npm directly. - Include the new
@earendil-works/*Pi runtime package namespace beside the legacy@mariozechner/*namespace so updated Pi extensions such aspi-btwandpi-markdown-previewcan load. - Patched alphaXiv search in the bundled alpha-hub runtime to fall back to the newer
discover_papersMCP tool when alphaXiv no longer exposes the older search tool names. - Hardened model tool-call handling for common alias mistakes:
search_webnow maps toweb_search, and barefetch/WebFetch/read_url_contentmap tofetch_contentwith array URLs normalized. - Fixed the Windows docker probe in the research header so
cmd.exeno longer emits localized mojibake from Unix-only/dev/nullredirection.
Workflow Prompts
- Added a shared tool-discipline block to every workflow prompt so lead agents see canonical tool names before workflow-specific instructions.
Validation
- Added regression coverage for alphaXiv search fallback, Pi tool alias normalization, bundled runtime dependency installs, and prompt tool discipline.
v0.2.51 - 2026-05-09
Package Manager
- Hardened Pi package installs and updates so peer-only Pi runtime packages are materialized into Feynman's npm prefix beside installed Pi packages.
- This prevents optional or legacy Pi packages from failing at extension load time when they import Pi runtime modules that npm did not install because Feynman uses legacy peer dependency mode.
Validation
- Added package-manager coverage for installing Pi runtime peers beside Pi npm packages.
v0.2.50 - 2026-05-09
Skills Installer
- Added an explicit Codex skills target for standalone skill installs:
--codexon macOS/Linux and-Scope Codexon Windows. - Kept the existing default/user install behavior compatible while documenting the Codex, repo-local Claude/agent, and OpenCode target paths.
Validation
- Added installer coverage for the Codex target and target-specific docs.
v0.2.49 - 2026-05-07
Website
- Updated the website build stack to patched Astro 6/Vite 7.
- Migrated docs content collections to Astro's current content-layer config.
Validation
- Website build, typecheck, lint, and production audit passed.
- Root build, typecheck, full tests, package dry-run, native bundle build, and production audit passed after the website upgrade.
v0.2.48 - 2026-05-07
Fixes
- Restored Node.js 24 support for the Feynman CLI and npm package.
- Slimmed the default Pi package set to the core AI research essentials: alphaXiv access, subagents, document parsing, and web access.
- Moved memory and session search out of the default install path so optional package failures cannot block first launch.
- Kept session search gated to Node.js 22.x because its upstream sqlite dependency still depends on native prebuild coverage.
- Upgraded the TypeScript toolchain to 6.0 and updated the build config for its explicit
rootDirrequirement.
Documentation
- Updated package-stack, setup, install, and session-search docs to distinguish core researcher packages from optional extras.
Validation
- Full local tests passed: 157/157.
- Typecheck, root build, website build, native bundle build, production
npm audit --omit=dev, and package dry-run passed. - Package dry-run verified the bundled runtime workspace excludes memory and session search by default.
v0.2.47 - 2026-05-07
Documentation
- Clarified that Feynman's package, extension, and skill wiring follows Pi's upstream package model.
- Linked the Hugging Face Hub API and environment-variable docs from the README and website docs.
- Clarified that Hugging Face file reads refuse obvious model weights, archives, and dataset shards before download.
Validation
- Tightened the Hugging Face binary-file refusal regression test.
- Full local tests passed: 157/157.
- Typecheck, root build, website build, and production
npm audit --omit=devpassed.
v0.2.46 - 2026-05-07
Updates
- Added the
/recipeworkflow for ranked ML training recipes backed by papers, datasets, docs, implementation paths, and verification status. - Added read-only Hugging Face Hub inspection tools for dataset metadata, repo file listing, and small text file reads. These support recipe and replication grounding without requiring Hub write access, and refuse obvious weight/archive/shard reads before download.
- Updated
/replicateso ML-heavy targets perform a recipe extraction pass before execution planning.
Documentation
- Added website docs for the
/recipeworkflow and Hugging Face Hub tools. - Updated README, quickstart, command references, agent docs, replication docs, and package-stack docs for the new workflow and tools.
Validation
- Added unit coverage for Hugging Face tool registration, endpoint formatting, auth headers, file listing limits, truncation, and binary-file refusal.
- Full local tests passed: 157/157.
- Typecheck, root build, website build, CLI help, and live Hugging Face endpoint smoke checks passed.
v0.2.45 - 2026-05-07
Updates
- Updated the bundled Pi runtime packages to
@mariozechner/[email protected]and@mariozechner/[email protected]. - Updated
@clack/promptsto1.3.0for the setup/onboarding prompt surface.
Validation
- Full local tests passed: 154/154.
- Typecheck, root build, website build,
feynman doctor, and productionnpm audit --omit=devpassed. - JSONL RPC smoke passed with
get_stateand abashcommand returningFEYNMAN_RPC_OK. - Release CI published npm
0.2.45, built all native bundles, and created the GitHub release.
v0.2.44 - 2026-05-06
Fixes
- Updated transitive dependency override pins to patched versions so production
npm auditreports zero vulnerabilities. - This removes advisories in
basic-ftp,fast-xml-parser,hono, andip-addresswhile keeping the dependency changes scoped to existing transitive packages.
Validation
- Production
npm audit --omit=devpassed with zero vulnerabilities. - Full local tests passed: 154/154.
- Typecheck, root build, website build, and
feynman doctorpassed.
v0.2.43 - 2026-05-06
Fixes
- Restricted
.feynman/web-search.jsonpermissions to user-only (0600) after Feynman writes web-search provider configuration. - This protects stored web-search API keys such as Exa, Perplexity, and Gemini keys from permissive local umasks.
Validation
- Added POSIX regression coverage for saved web-search config permissions.
- Full local tests passed: 154/154.
- Typecheck and build passed.
v0.2.42 - 2026-05-06
Fixes
- Fixed runtime RPC startup in projects with
.feynman/settings.jsonpackage entries by patching Pi's project npm install path to use peer-dependency-compatible installs. - This prevents project-scoped package sync from failing on packages such as
@aliou/pi-processesbefore the RPC session can start.
Validation
- Added regression coverage for the embedded Pi package-manager patch.
- Real
v0.2.41release RPC testing reproduced the missing project-package install failure that this release fixes.
v0.2.41 - 2026-05-06
Fixes
- Fixed startup package seeding so copied bundled packages are treated as satisfied instead of falling through to repeated global npm installs.
- Seeded bundled packages before interactive setup reports missing packages, avoiding unnecessary first-run package prompts when the standalone bundle already has the runtime workspace.
- Restricted supported Node.js runtimes to Node 20.19.x through Node 22.x because sqlite-backed Pi packages such as session search are not reliable under Node 24.
- Updated release CI to build, test, publish, and package native bundles with Node 22.
Documentation
- Added research-only biomedical literature review guidance with PICO/PICOS framing, evidence-type separation, privacy boundaries, and non-clinical-advice wording.
- Updated npm install docs to show the new supported Node engine range.
Validation
- Full local tests passed: 151/151.
- Typecheck and root build passed.
v0.2.40 - 2026-04-19
Fixes
- Fixed local-model web-search failures where a model calls non-existent search aliases such as
google:search; Feynman now maps those aliases to Pi's realweb_searchtool when it is available. - Granted the bundled researcher and verifier agents access to Pi web-access tools (
web_search,fetch_content, andget_search_content) so their prompts and allowed tools match. - Made
feynman doctorandfeynman search statusexplicitly show whenweb-search.jsonhas not been created and how to initialize it. - Stopped treating expired OAuth credentials as authenticated model availability, so
doctor,model list, and onboarding guide users to re-login instead of failing later in chat. - Added a package-workspace setup lock so concurrent Feynman invocations do not race while restoring
.feynman/npm.
Validation
- Full local tests passed: 137/137.
- Typecheck, build, vendored runtime regeneration, runtime archive inspection, sequential CLI smoke, and parallel CLI smoke passed.
v0.2.39 - 2026-04-19
Fixes
- Fixed TUI-selected thinking/reasoning effort persistence. Feynman no longer passes an implicit
--thinking mediumon every launch, so thinking levels saved by Pi afterShift+Tabsurvive restarts. - Explicit
--thinking <level>andFEYNMAN_THINKING=<level>still override the saved default for that launch.
Validation
- Added regression coverage that Feynman only passes a launch thinking override when it was explicitly configured.
- Full local tests passed: 126/126.
- Typecheck and build passed.
v0.2.38 - 2026-04-19
Fixes
- Fixed
feynman update memoryandfeynman update session-searchso friendly core-package aliases resolve to the correct npm package sources and use Feynman's npm install path with peer-dependency compatibility flags. - Fixed
feynman summarize ... --window-size ...and related summarize tuning flags when the flags appear after the source positional. - Fixed
feynman setup previewso it actually runs the preview dependency check, matching the legacy--setup-previewalias. - Made optional
generative-uiinstall/update failures degrade cleanly on macOS toolchains where upstreamglimpseuicannot compile, without dumping thousands of Swift compiler lines. - Reduced deepresearch TUI redraw churn by freezing the Feynman header's Last Activity snapshot during live streaming work instead of recomputing it every render.
- Fixed bundled skills that referenced prompt templates through broken installed relative paths.
- Fixed the embedded Pi patcher so repeated runtime preparation does not duplicate the TUI stdin error handler.
Documentation
- Documented
feynman setup preview. - Documented the existing
Shift+Tabthinking-level hotkey and/hotkeysdiscovery path.
Validation
- Full local tests passed: 124/124.
- Typecheck, build, and clean website build passed.
- Local CLI matrix passed for help, doctor, status, model list/tier, search status/set, alpha status, setup preview, packages list/install, and package update aliases.
- End-to-end workflow runs completed for chat, summarize, review, compare, audit, draft, lit, deepresearch with confirmation, replicate, watch/jobs, log, and a bounded autoresearch loop.
v0.2.37 - 2026-04-19
Fixes
- Hardened
/deepresearchreviewer/audit fix handling so Feynman may only claim a patch landed after the edit/write tool succeeds and an explicit on-disk check proves the old unsupported content is gone and the corrected content exists. - Added provenance requirements for failed edit recovery so verification notes cannot mark an issue fixed before the final candidate actually reflects the fix.
- Corrected MiniMax model preference casing to match Pi's exposed model IDs.
Performance
- Resolved preview/runtime executables in parallel before launching Pi, reducing synchronous startup work while preserving Windows, macOS, and Linux fallback behavior.
Fork Review
- Scanned all public forks and selectively adopted the low-risk startup/model-test improvements. Rejected product-specific or bloated fork changes such as Claude CLI bypass mode, ValiChord, Overleaf export, and an external
parallel-clidependency.
Validation
- Full local tests passed: 121/121.
- Typecheck, build, local CLI doctor, and real one-shot launch smoke test passed.
- Fork scan compared 676 accessible forks: 666 behind, 2 identical, 8 with unique commits inspected.
v0.2.36 - 2026-04-18
Fixes
- Hardened
/reviewso it writes a durable plan, evidence notes, andoutputs/<slug>-review.mdinstead of stopping after a planning/narration response. - Added blocked-review fallback behavior for PDFs or external sources that cannot be parsed, so failed extraction still produces an explicit review artifact with
Verification: BLOCKED. - Fixed subagent child-process spawning under Feynman's Pi wrapper so writer/reviewer subagents no longer treat
--modeas a module path. - Made optional package presets platform-aware so Linux users do not see or attempt to install the macOS-only
generative-uipackage. - Added the Release Notes entry to the website docs sidebar.
Documentation
- Updated research review docs to describe the concrete output files and blocked-extraction behavior.
- Updated package docs to clarify that memory and session search are core packages and
generative-uiis macOS-only upstream.
Validation
- Added regression coverage for the
/reviewdurable-artifact contract. - Added regression coverage for platform-aware optional presets and Feynman-aware subagent spawning.
- Real installed-global review, package-list/install, subagent, and extension-load checks were run before release.
v0.2.35 - 2026-04-18
Fixes
- Restored the
/deepresearchconfirmation gate: the workflow now writesoutputs/.plans/<slug>.md, summarizes the plan, and waits for explicit user approval before searching, drafting, citing, or delivering final artifacts. - Changed top-level workflow invocation so
feynman deepresearch ...behaves like the REPL workflow in a real terminal instead of forcing one-shot execution. - Added a Feynman wrapper around Pi's CLI entrypoint so completed print-mode runs exit cleanly after Pi finishes.
- Tightened direct-mode
/deepresearchartifact paths so research notes and verification files are written underoutputs/.drafts/.
Features
- Added section-focused
alpha_get_paperextraction withsection/sectionsfilters for abstract, introduction, methodology, experiments, results, discussion, limitations, and conclusion. - Added configurable
/summarizecontext-window controls via flags andFEYNMAN_SUMMARIZE_*environment variables.
Documentation
- Added public
RELEASES.mdand website release notes so each release has visible fix and feature history. - Updated deep research docs to describe the plan-confirmation workflow and current PDF-safety behavior.
Validation
- Real installed-global REPL test: typed
/deepresearch what is BM25, verified that only the plan existed before approval, then repliedyesand verified final report, provenance, draft, cited draft, research notes, and verification artifacts. - Full local tests passed: 117/117.
- Typecheck, build, website build, local pack, and local global install checks passed.
v0.2.34 - 2026-04-18
Fixes
- Tightened
/deepresearchso direct-mode research must use at least three distinct search terms or angles before drafting. - Required direct-mode
/deepresearchto record the exact search terms in the direct research artifact. - Added regression coverage for the multi-query deep research contract.
Validation
- Real RPC smoke test for
/deepresearch what is BM25completed and wrote the required plan, draft, cited draft, final report, and provenance artifacts. - Release CI published npm and native bundles for macOS arm64/x64, Linux x64, and Windows x64.
v0.2.33 - 2026-04-18
Fixes
- Rewrote
/deepresearchfrom a long protocol-style prompt into a shorter execution checklist so local models are less likely to echo instructions instead of doing work. - Made narrow direct-mode research complete without spawning verifier or reviewer subagents.
- Avoided the crash-prone PDF parser path in
/deepresearchunless PDF extraction is explicitly requested.
Validation
- Real RPC
/deepresearch what is BM25completed with required artifacts andagent_end. - Full local tests, typecheck, build, audits, website build, and pack dry-run passed before release.
v0.2.32 - 2026-04-18
Fixes
- Fixed Pi subagent parallel output propagation so top-level task
outputpaths are honored. - Added foreground and async regression coverage for subagent output handoff behavior.
- Hardened deep research prompts around durable artifacts and provenance.
v0.2.31 - 2026-04-17
Fixes
- Fixed Feynman runtime auth environment propagation so launched Pi sessions can see the expected model provider credentials.
- Revalidated setup and runtime startup paths after the auth fix.
v0.2.30 - 2026-04-17
Fixes
- Fixed Pi subagent task output handling in the runtime patch layer.
- Preserved bundled research-agent file handoffs for multi-agent workflows.
v0.2.29 - 2026-04-17
Maintenance
- Updated bundled Pi runtime packages.
- Rebuilt native release artifacts against the refreshed runtime package set.
v0.2.28 - 2026-04-17
Maintenance
- Removed runtime hygiene extension bloat and kept the bundled runtime closer to upstream Pi behavior.
- Reduced custom extension surface area to keep the research agent simpler.
v0.2.27 - 2026-04-17
Fixes
- Added Pi event guards for workflow state transitions.
- Improved workflow state tracking around long-running research operations.
v0.2.26 - 2026-04-17
Fixes
- Switched research context hygiene onto Pi runtime hooks instead of extra custom runtime logic.
- Improved compatibility with upstream Pi runtime behavior.
v0.2.25 - 2026-04-17
Fixes
- Fixed workflow continuation and provider setup gaps.
- Improved setup flow behavior for model-provider configuration.
v0.2.24 - 2026-04-16
Fixes
- Linked bundled runtime dependencies for core Pi packages.
- Addressed missing dependency errors for installed core packages.
v0.2.23 - 2026-04-16
Features
- Added LM Studio setup support for local model workflows.
- Added blocked-research artifact handling so interrupted runs keep useful state.
v0.2.22 - 2026-04-16
Features
- Added first-class LM Studio setup.
- Improved local model onboarding defaults.
v0.2.21 - 2026-04-16
Fixes
- Fixed extension repair behavior.
- Added the Opus 4.7 model overlay.
v0.2.20 - 2026-04-16
Release
- Restored publish workflow behavior after a duplicate npm version blocked release.
- Native bundles remained available through GitHub releases.
v0.2.19 - 2026-04-16
Fixes
- Skipped release publication when the npm version already exists.
- Prevented repeat publish attempts from failing the pipeline after npm publication succeeds.
v0.2.18 - 2026-04-16
Release
- Prepared the release automation baseline used by the current npm and native-bundle pipeline.
Website Src Content Docs Reference Slash Commands (`website/src/content/docs/reference/slash-commands.md`)
title: Slash Commands section: Reference order: 2
Slash commands are available inside the Feynman REPL. They map to research workflows, project utilities, and commands from the bundled Pi packages. Type /help inside the REPL for Feynman's grouped command list.
Research workflows
| Command | Description |
|---|---|
/deepresearch <topic> |
Run a thorough, source-heavy investigation and produce a research brief with inline citations |
/lit <topic-or-lab-or-author> |
Run a literature review on a topic, lab, PI, or author |
/review <artifact> |
Run an internal research critique with likely objections, severity, and a concrete revision plan |
/audit |
Compare a paper's claims against its public codebase for mismatches, omissions, and reproducibility risks |
/replicate |
Plan a replication workflow for a paper, claim, or benchmark; execute only after an explicit environment choice |
/recipe <task-or-paper> |
Find ranked, implementable ML training recipes backed by papers, datasets, docs, and code |
/compare <topic> |
Compare multiple sources and produce a matrix of agreements, disagreements, and confidence |
/draft <topic> |
Turn research findings into a paper-style draft |
/autoresearch |
Run a bounded experiment loop against a benchmark, keeping what works |
/summarize |
Summarize a paper, report, README, local artifact, or PDF with the source kept on disk instead of in context |
Workflow prompts can call the bundled agents (researcher, reviewer, writer, verifier) through Pi's subagent tool when delegation helps; narrow tasks stay lead-owned.
Project and session
| Command | Description |
|---|---|
/log |
Write a durable session log with completed work, findings, open questions, and next steps |
/help |
Show grouped Feynman commands and prefill the editor with a selected command |
/init |
Bootstrap AGENTS.md and session-log folders for a research project |
/outputs |
Browse all research artifacts (papers, outputs, experiments, notes) |
/tools |
Browse public research tools with their source and parameter summary |
/service-tier |
View or set the provider service tier override for supported models |
Package commands
| Command | Package | Description |
|---|---|---|
/btw <question> |
pi-btw |
Ask a side question while the main research agent is busy |
/search |
pi-web-access |
Browse stored web search results from the current session |
/websearch [queries] |
pi-web-access |
Open the search curator to run and review searches yourself |
/curator [on|off] |
pi-web-access |
Toggle the search curator workflow |
/subagents |
pi-subagents |
Inspect configured agents |
/run <agent> [task] [--bg] [--fork] |
pi-subagents |
Run one agent |
/hotkeys, /new, /quit |
Pi | Show keyboard shortcuts, start a new session, quit |
Research delegation
The current runtime does not provide /chain or /parallel commands. Research workflows call subagent directly for one child, or write a workflow script for parallel or sequential work to outputs/.plans/<slug>-workflow.js and run it by calling subagent with that path. A file works with every model; an inline ```js workflow block with workflow: true fails when a model puts the block in its hidden reasoning instead of the reply.
return await runs.all([
{ key: "papers", agent: "researcher", task: "Read outputs/.plans/<slug>-papers.md.", output: "outputs/.drafts/<slug>-research-papers.md" },
{ key: "web", agent: "researcher", task: "Read outputs/.plans/<slug>-web.md.", output: "outputs/.drafts/<slug>-research-web.md" },
]);{ "workflow": "./outputs/.plans/<slug>-workflow.js", "async": true, "globalConcurrencyLimit": 4 }For sequential work, await runs.run(key, {agent, task, output}) before starting the next step. Legacy top-level tasks, chain, and parallel inputs are rejected. runs.all returns an ordered array, including ordinary child failures; inspect each result's ok and returned output references.
An async launch receipt is not completion: consume the result and verify child output paths before synthesis or dependent review. Ordinary background subagents notify their parent; bg_wait is for background work without a native completion notification.
Running workflows from the CLI
Every research workflow can also be run from the command line, for example feynman deepresearch "topic". See CLI Commands.
Website Src Content Docs Tools Alphaxiv (`website/src/content/docs/tools/alphaxiv.md`)
title: AlphaXiv description: Search and read arXiv papers through Feynman's alphaXiv integration. section: Tools order: 1
Feynman bundles an alphaXiv client (@companion-ai/alpha-hub) for searching arXiv papers, reading AI-generated paper reports or full text, asking questions about a paper, and reading a paper's linked code. alphaXiv covers arXiv papers; DOI-only papers are read through web fetch or Europe PMC instead.
Authentication
Sign in during feynman setup or at any time:
feynman alpha loginOn a machine without a browser (SSH, Docker, WSL without a display), feynman alpha login prints the sign-in URL. Open it in a browser on any machine and finish signing in. The browser then lands on a http://127.0.0.1:9876/callback?code=... page that fails to load; copy that full URL, paste it into the waiting terminal, and press Enter.
Check your authentication status:
feynman alpha statusAgent tools
alpha_search, alpha_get_paper, alpha_ask_paper, and alpha_read_code are available only when you are signed in; without an account, Feynman searches papers through Semantic Scholar, OpenAlex, and the other literature databases instead. Start a new Feynman session after feynman alpha login to get them.
| Tool | Purpose |
|---|---|
alpha_search |
Search papers. Modes: semantic (default), keyword, agentic, both, all |
alpha_get_paper |
Fetch a paper's AI-generated report, or raw full text with fullText, plus any local annotation. section or sections return only abstract, introduction, methodology, experiments, results, discussion, limitations, or conclusion when detectable |
alpha_ask_paper |
Ask a targeted question about a paper's PDF |
alpha_read_code |
Read files from a paper's GitHub repository; / gives an overview |
alpha_annotate_paper |
Write or clear a local note on a paper |
alpha_list_annotations |
List local paper notes |
The lead agent calls these tools directly. The bundled researcher agent does not load them; it runs feynman alpha ... through its shell instead, after checking feynman alpha status.
CLI
The same client is available from the terminal:
feynman alpha search "scaling laws"
feynman alpha get 2401.12345
feynman alpha ask 2401.12345 "What optimizer did they use?"
feynman alpha code https://github.com/org/repo src/model.pyStorage
The alphaXiv client keeps its login state and local paper annotations under ~/.ahub, separate from Feynman's ~/.feynman directory. Remove ~/.ahub to clear them during uninstall.
Without AlphaXiv
Feynman works without an alphaXiv login. Paper discovery then goes through feynman_science_database_search (Semantic Scholar, OpenAlex, arXiv ID lookup, PubMed, Europe PMC, bioRxiv/medRxiv, Crossref) and web search, and full text comes from fetch_content on arXiv or open-access pages.
Website Src Content Docs Tools Hugging Face (`website/src/content/docs/tools/hugging-face.md`)
title: Hugging Face Hub description: Inspect Hugging Face datasets and repository files during research workflows. section: Tools order: 3
Feynman includes read-only Hugging Face Hub tools for grounding ML recipes and replication plans. They help the researcher verify whether a dataset or repo actually exposes the files, splits, schema, and card metadata needed for implementation.
These tools are grounded in Hugging Face's public Hub API endpoint docs. Authentication follows the HF_TOKEN environment variable documented by huggingface_hub.
Authentication
Public Hub resources work without configuration. For private or gated resources, set an access token in your shell before launching Feynman:
export HF_TOKEN=hf_...If HF_TOKEN is unset, Feynman uses HUGGINGFACE_HUB_TOKEN. The token is sent with every Hub request.
Tools
The lead agent and the researcher agent can call these tools:
| Tool | Purpose |
|---|---|
hf_dataset_info |
Inspect dataset metadata, tags, access status (private, gated, disabled), card data, dataset_info features and splits, downloads, likes, and sibling files |
hf_repo_files |
List files in a model, dataset, or Space repository (default 200 entries, max 1000) before reading anything large |
hf_repo_read_file |
Read small text files from Hub repos, such as README.md, configs, examples, and scripts |
hf_repo_files and hf_repo_read_file default to dataset repos; pass repoType: "model" or "space" for others. The file reader returns 20,000 characters by default (max 60,000) and is intended for text files only. It is not a weight downloader or dataset bulk reader. It refuses model weight files, archives, and dataset shards such as .safetensors, .bin, .gguf, .parquet, .zip, and .tar before download.
Where it is used
The /recipe workflow uses hf_dataset_info to validate dataset availability and schema, and hf_repo_files and hf_repo_read_file to ground implementation details, before recommending a training recipe. The researcher agent can use the same tools in any workflow that delegates ML evidence gathering to it, such as /replicate.
For example, a recipe using a chat SFT dataset should verify that the dataset has a messages, text, or prompt/completion-style schema before calling it usable. If Feynman cannot check that schema, the final artifact should mark the dataset as unverified or blocked.
Boundaries
These tools are read-only. They do not create repos, upload files, start jobs, or manage private data. If an experiment needs execution on Hugging Face infrastructure, Feynman records that as a follow-up implementation decision.
Website Src Content Docs Tools Preview (`website/src/content/docs/tools/preview.md`)
title: Preview description: Render research artifacts to HTML or PDF with pandoc. section: Tools order: 4
Feynman writes research artifacts as Markdown. To read one as a rendered document, convert it with pandoc from the shell. Feynman has no in-REPL preview command.
Setup
Check for pandoc, or install it:
feynman setup previewIf pandoc is missing, this installs it with Homebrew on macOS, winget on Windows, or apt-get on Linux. If none of those is available or the install fails, install pandoc manually from pandoc.org. feynman doctor and feynman status report whether pandoc is found.
Rendering
pandoc outputs/scaling-laws.md -s -o outputs/scaling-laws.html
pandoc outputs/scaling-laws.md -o outputs/scaling-laws.pdfOpen the result in your browser or PDF viewer. PDF output needs a LaTeX engine such as TeX Live or MiKTeX in addition to pandoc.
Inside the REPL you can ask Feynman to run these commands for you.
Website Src Content Docs Tools Web Search (`website/src/content/docs/tools/web-search.md`)
title: Web Search description: Web search and page retrieval in Feynman through pi-web-access. section: Tools order: 2
Feynman's web research tools come from the bundled pi-web-access package. The lead agent, the researcher, and the verifier use them to find and read documentation, blog posts, news, repositories, and open-access papers alongside Feynman's paper databases.
Tools
| Tool | Purpose |
|---|---|
web_search |
Search with one query or a queries batch. Supports numResults, recencyFilter (day, week, month, year), domainFilter (prefix a domain with - to exclude it), provider, and includeContent to fetch page text for the results |
fetch_content |
Fetch one or more URLs as readable Markdown. Handles web pages, PDFs, GitHub repos, issues, and pull requests, images, and videos. mode: "raw" returns the exact text body; mode: "answer" with a prompt answers a question from the page |
get_search_content |
Read stored results from an earlier search or fetch by responseId, paged with offset and limit, or search them with findText |
source_check |
Gather passages for a claim into an evidence artifact for manual review; it does not decide support on its own |
Fetched page bodies are stored for one hour in ~/.feynman/agent/web-search-cache/ so get_search_content can page through them without re-fetching.
Default behavior
With no key and no configuration, web_search works through Exa's hosted MCP endpoint. In auto mode it tries a configured SearXNG endpoint first; when the active model uses openai-codex, it then tries Codex-backed OpenAI search; otherwise it tries Exa before OpenAI, then any other provider you have configured. Browser-cookie access for Gemini Web is off unless you opt in with allowBrowserCookies.
Configuration
Check the current search configuration:
feynman search statusSet a provider, optionally saving its API key:
feynman search set exa <api-key>
feynman search set perplexity <api-key>
feynman search set gemini <api-key>
feynman search set autofeynman search set accepts every search provider pi-web-access supports, including brave, tavily, kagi, serper, you, searxng (pass its base URL instead of a key) and duckduckgo (no key); run feynman search set with no provider to list them all. It also sets the search workflow to none (raw results, no curator window) and turns browser-cookie access off. feynman search clear resets the provider to auto and keeps saved API keys.
For fallback routes, proxies, PDF extraction and other advanced settings, edit ~/.feynman/agent/web-search.json directly. The pi-web-access README documents every field.
Commands
| Command | Description |
|---|---|
/search |
Browse stored web search results from the current session |
/websearch [queries] |
Open the search curator and run searches yourself |
/curator [on|off] |
Toggle the search curator workflow |
/google-account |
Show the Google account used for Gemini Web |
To turn one of these commands off, set commands.<name>.enabled to false in web-search.json (keys: websearch, curator, search, google-account).
Website Src Content Docs Workflows Audit (`website/src/content/docs/workflows/audit.md`)
title: Code Audit description: Compare a paper's claims against its public codebase for reproducibility. section: Workflows order: 5
The code audit workflow compares a paper's claims against its public codebase and reports mismatches, omissions, and reproducibility risks.
Usage
From the REPL:
/audit arxiv:2401.12345/audit arxiv:2401.12345 https://github.com/org/repoFrom the CLI:
feynman audit 2401.12345Pass the paper, and the repository URL if you already know it.
How it works
Feynman writes an audit plan (which paper, which repo, which claims to check) to outputs/.plans/<slug>.md, summarizes it, and continues without waiting for confirmation unless you asked to review the plan.
It then compares the paper's claimed methods, defaults, metrics, and data handling against the actual code. For non-trivial audits, the researcher agent gathers evidence and the verifier agent checks sources and adds inline citations.
Output
One report at outputs/<slug>-audit.md that calls out:
- Mismatches -- where the code differs from what the paper describes
- Missing code -- described components with no implementation in the repo
- Ambiguous defaults -- settings the paper leaves unclear
- Reproduction risks -- anything likely to stop a faithful rerun
The report ends with a Sources section listing the paper and repository URLs.
When to use it
Use /audit before building on a paper's results, before a replication, or to check your own paper against its code before release.
Website Src Content Docs Workflows Autoresearch (`website/src/content/docs/workflows/autoresearch.md`)
title: Autoresearch description: Start a bounded research experiment loop that iteratively optimizes against a benchmark. section: Workflows order: 10
The autoresearch workflow runs a bounded experiment loop: change something, run a benchmark, record the result, and keep or revert the change. It is for model, retrieval, prompt, architecture, or dataset experiments where the feedback signal is an explicit metric.
Usage
From the REPL:
/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8KFrom the CLI:
feynman autoresearch "Optimize prompt engineering strategies for math reasoning on GSM8K"Subcommands:
/autoresearch <text>-- start or resume the loop/autoresearch off-- stop the loop and keep its data/autoresearch clear-- delete all loop state and start fresh
How it works
- Gather -- If
autoresearch.mdandautoresearch.jsonlalready exist, Feynman asks whether to resume or start fresh. Otherwise it asks for what to optimize, the benchmark command, the metric name, unit, and direction, the files in scope, and a maximum iteration count (default 20). - Environment -- Feynman asks where to run: local, a new git branch, a virtual environment, Docker, Modal (if the
modalCLI is set up), or RunPod (ifrunpodctlis installed andRUNPOD_API_KEYis set). - Confirm -- Feynman shows the target, benchmark, files, environment, and iteration limit, and does not start until you approve.
- Run -- Feynman creates
autoresearch.md,autoresearch.jsonl, andautoresearch.sh, runs the baseline, then loops: edit, run the benchmark, log the result and decision, compare against the baseline, and keep, revert, or record the failed hypothesis. The loop continues until you interrupt it or the iteration limit is reached.
After the baseline and at meaningful milestones, Feynman appends a short entry to CHANGELOG.md with what changed, the observed metric, what failed, and the next step.
Output
The loop state lives in autoresearch.md, autoresearch.jsonl, and autoresearch.sh in the workspace. When reporting results, Feynman lists every configuration tried (kept, reverted, and failed) with its metric and describes how the result varies across settings and seeds, rather than claiming an effect from the single best run.
When to use it
Use /autoresearch for hyperparameter searches, prompt-strategy evaluation, architecture or retrieval tuning, and dataset or benchmark ablations. To answer a specific question from sources, use /deepresearch instead.
Website Src Content Docs Workflows Biomedical Literature Review (`website/src/content/docs/workflows/biomedical-literature-review.md`)
title: Biomedical Literature Review description: Use Feynman for research-only biomedical literature reviews with evidence grading and privacy boundaries. section: Workflows order: 3
Biomedical literature reviews need stricter source handling than general technical surveys. Use this workflow for research synthesis, manuscript preparation, journal club preparation, protocol scoping, or background reading. Do not use it for patient-specific diagnosis, treatment selection, triage, or medical advice.
Usage
From the REPL:
/lit PICO: adults with type 2 diabetes; intervention continuous glucose monitoring; comparator standard self-monitoring; outcomes HbA1c and hypoglycemiaFrom the CLI:
feynman lit "PICO: adults with type 2 diabetes; intervention continuous glucose monitoring; comparator standard self-monitoring; outcomes HbA1c and hypoglycemia"This runs the standard /lit workflow. For biomedical papers, the researcher agent searches PubMed first and Europe PMC for open-access full-text sections.
Frame the question
Start with a structured research question. For intervention questions, prefer PICO or PICOS:
- Population -- patient group, disease definition, setting, age range, severity, and key exclusions
- Intervention or exposure -- treatment, diagnostic test, risk factor, care model, or exposure
- Comparator -- placebo, usual care, standard test, alternative intervention, or no comparator
- Outcomes -- primary and secondary outcomes, safety outcomes, follow-up duration, and clinically meaningful thresholds
- Study design -- systematic reviews, randomized trials, cohort studies, case-control studies, diagnostic accuracy studies, qualitative studies, or guidelines
For non-intervention questions, state the study type directly. Examples: prognosis, diagnostic accuracy, adverse event signal, mechanism, epidemiology, implementation, or health economics.
Source priority
Ask Feynman to separate evidence by study design instead of treating every source as equal. A typical biomedical review should distinguish:
- clinical practice guidelines and consensus statements
- systematic reviews and meta-analyses
- randomized controlled trials
- prospective and retrospective cohort studies
- case-control studies
- diagnostic accuracy studies
- case series and case reports
- preprints, conference abstracts, and non-peer-reviewed material
- mechanistic, animal, or in vitro studies
When evidence conflicts, keep the disagreement visible. Do not collapse guideline statements, trials, observational studies, and mechanistic papers into one undifferentiated conclusion.
What to ask Feynman to report
For biomedical topics, include these instructions in the prompt when they matter:
- define inclusion and exclusion criteria before searching
- report search terms, time window, and source types
- separate clinical outcomes from surrogate outcomes
- identify effect sizes, confidence intervals, follow-up duration, and absolute risk when sources provide them
- distinguish efficacy, effectiveness, safety, feasibility, and cost
- flag single-study conclusions, small samples, unadjusted analyses, and indirect evidence
- identify whether claims come from peer-reviewed publications, preprints, registry records, guidelines, or secondary summaries
- report safety signals and adverse events when relevant
- state limitations and unresolved questions before giving a bottom-line synthesis
- state that the output is research synthesis, not medical advice
If Feynman cannot access a full text, trial registry, guideline, supplement, dataset, or source URL, the review should mark that check as blocked instead of inferring missing details.
Privacy and safety boundaries
Do not paste protected health information, identifiable patient details, imaging identifiers, hospital records, insurance records, or private clinical notes into a Feynman workflow. Use de-identified, aggregate, or fictionalized research questions instead.
Feynman outputs should be treated as research drafts. A biomedical review can help organize the literature, but it does not replace a systematic review protocol, clinical guideline process, institutional review, statistical analysis plan, or licensed clinical judgment.
Avoid prompts that ask for direct patient advice. If a topic touches diagnosis, treatment, screening, or safety, phrase the task as literature synthesis:
Summarize the research literature on...
Compare the evidence for...
Identify limitations and gaps in studies about...
Draft a background section for a research protocol on...Do not phrase it as:
What should this patient do?
Which treatment should I choose for this case?
Diagnose this patient.Website Src Content Docs Workflows Compare (`website/src/content/docs/workflows/compare.md`)
title: Source Comparison description: Compare multiple sources and produce an agreement/disagreement matrix. section: Workflows order: 8
The source comparison workflow puts papers, articles, or documents side by side and produces a source-grounded matrix of where they agree, disagree, and remain uncertain.
Usage
From the REPL:
/compare "sparse attention methods for long-context language models"/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111From the CLI:
feynman compare "topic or list of sources"Give a topic and let Feynman find the sources, or list the specific papers and documents to compare.
How it works
Feynman writes a comparison plan (sources, dimensions to evaluate, output structure) to outputs/.plans/<slug>.md, summarizes it, and continues without waiting for confirmation unless you asked to review the plan.
When the comparison set is broad, the researcher agent gathers source material. The verifier agent then checks sources and adds inline citations to the final matrix.
Output
One comparison at outputs/<slug>-comparison.md containing:
- Comparison matrix -- source, key claim, evidence type, caveats, and confidence for each source
- Agreement, disagreement, and uncertainty -- kept clearly separate
- Tables and diagrams -- a Markdown table for quantitative metrics and a Mermaid diagram for method or architecture comparisons when the sources support the structure
- Sources -- direct URLs for every source used
When to use it
Use /compare when results in the literature conflict, when choosing between competing approaches to the same problem, or when writing a related-work section that must characterize a debate accurately.
Website Src Content Docs Workflows Deep Research (`website/src/content/docs/workflows/deep-research.md`)
title: Deep Research description: Run a thorough, multi-agent investigation that produces a cited research brief. section: Workflows order: 1
Deep research investigates a topic and produces a research brief with inline citations and a provenance record. Broad topics use parallel researcher agents; narrow explainers stay with the lead agent and direct searches.
Usage
From the REPL:
/deepresearch What are the current approaches to mechanistic interpretability in LLMs?From the CLI:
feynman deepresearch "What are the current approaches to mechanistic interpretability in LLMs?"/deepresearch writes its plan, summarizes it, and continues. To review the plan before any searching, say so in the request (for example /deepresearch <topic>, show me the plan first).
How it works
- Plan -- Feynman writes
outputs/.plans/<slug>.mdwith key questions, evidence needed, a scale decision, a task ledger, a verification log, and a decision log, then continues (or waits for you if you asked to review the plan). - Scale -- Narrow questions and "what is X" explainers use direct search by the lead agent (at least three distinct queries). Comparisons of 2-3 items use 2
researcheragents, broad surveys 3-4, and complex multi-domain topics 4-6. - Gather -- Researchers run in parallel, each writing its findings to a file. Feynman prefers abstracts, HTML pages, official docs, and paper metadata, and reads full text only for the few papers the conclusions depend on. Failed or missing research is recorded in the plan rather than assumed to exist.
- Draft -- The lead agent writes the draft itself and removes or downgrades any claim that does not map to a source, note, or artifact.
- Cite -- When researchers were used, the
verifieragent adds inline citations and checks every URL. In direct-search runs, the lead agent does this itself. - Review -- When researchers were used, the
revieweragent checks the cited draft for unsupported claims, logical gaps, single-source critical claims, and overstated confidence; FATAL issues are fixed and re-reviewed before delivery. In direct-search runs, the lead agent writes the review itself. - Deliver -- The final brief and its provenance sidecar are written, and Feynman checks that every required file exists before responding.
If a tool or source fails, the run continues in degraded mode and still writes a final output marked Verification: BLOCKED or PASS WITH NOTES.
Output
| File | Contents |
|---|---|
outputs/.plans/<slug>.md |
Plan, task ledger, verification log |
outputs/.drafts/<slug>-draft.md |
Uncited draft |
outputs/.drafts/<slug>-cited.md |
Draft with inline citations and Sources |
outputs/.drafts/<slug>-revised.md |
Written only when review fixes need a full rewrite |
outputs/<slug>.md (or papers/<slug>.md for paper-style drafts) |
Final brief |
<slug>.provenance.md next to the final brief |
Date, sources consulted/accepted/rejected, verification status, research files |
The brief contains an executive summary, findings organized by question or theme, evidence-backed caveats and disagreements, open questions, and a Sources section.
Customization
Steer the run in your prompt. Narrow topics produce focused briefs; broad topics produce survey-style overviews. Constraints such as "focus on papers from 2025" or "only consider empirical results" narrow the search. Ask for comprehensive coverage if you want researcher agents on a topic that would otherwise be treated as a simple explainer.
Website Src Content Docs Workflows Draft (`website/src/content/docs/workflows/draft.md`)
title: Draft Writing description: Generate a paper-style draft from research findings and session context. section: Workflows order: 9
The draft writing workflow turns research findings into a paper-style draft with sections, explicit claims, and equations where they help. It is a natural follow-up to /deepresearch or /lit.
Usage
From the REPL:
/draft A survey of retrieval-augmented generation techniquesFrom the CLI:
feynman draft "A survey of retrieval-augmented generation techniques"How it works
Feynman writes an outline to outputs/.plans/<slug>.md with the proposed title, sections, key claims, source material, and a verification log for critical claims, figures, and calculations. It summarizes the outline and continues without waiting for confirmation unless you asked to review it.
When the draft can be built from notes already collected, the writer agent produces it and the verifier agent then adds inline citations and checks sources. Before delivery, Feynman sweeps the draft for claims stronger than their support, marks tentative results as tentative, and removes unsupported numbers.
Drafts follow Feynman's provenance rules: missing results, figures, tables, or benchmarks become labeled placeholders or proposed experiments, not plausible-looking data. Plots use only source-backed data, and the plotting script is saved next to the draft.
Output
One draft at papers/<slug>.md in Markdown, with LaTeX for equations, Markdown tables for quantitative comparisons, and Mermaid for architectures and pipelines. It includes at minimum:
- Title and abstract
- Problem statement
- Related work
- Method or synthesis
- Evidence or experiments
- Limitations
- Conclusion
- A
Sourcesappendix with direct URLs for all primary references
Iteration
Ask Feynman to revise specific sections, add detail, or restructure the argument. To render the draft as HTML or PDF, see Preview.
Website Src Content Docs Workflows Literature Review (`website/src/content/docs/workflows/literature-review.md`)
title: Literature Review description: Run a structured literature review with consensus mapping, gap analysis, and lab/PI corpus mode. section: Workflows order: 2
The literature review workflow maps a field: what researchers agree on, where they disagree, and what remains open. When the input names a lab, PI, author, or lab website, /lit runs as a publication-corpus review instead: it resolves the identity, collects reachable publications, and maps research trajectories across them.
Usage
From the REPL:
/lit Scaling laws for language model performanceFrom the CLI:
feynman lit "Scaling laws for language model performance"
feynman lit "Anthropic interpretability team"How it works
- Plan -- Feynman writes the scope (key questions, source types, time period, expected sections, task ledger, verification log) to
outputs/.plans/<slug>.md, summarizes it, and continues without waiting for confirmation unless you asked to review the plan. - Gather -- Wide sweeps use the
researcheragent, which writes<slug>-research-*.mdfiles; narrow topics are searched directly. For a lab or author, the lead agent first resolves the identity and writes a publication log tonotes/<slug>-publications.mdwith titles, years, venues, URLs or DOIs, and gaps. - Synthesize -- Findings are separated into consensus, disagreements, and open questions, with suggested next experiments or reading when useful. For a lab or author, Feynman also identifies 3-5 research trajectories and the 3-5 papers that most changed the corpus direction, ranked by contrastive originality, methodology strength, and relationship to prior art rather than author prestige.
- Cite -- The
verifieragent adds inline citations and checks every source URL. - Verify -- The
revieweragent checks the cited draft for unsupported claims, logical gaps, and single-source critical findings. FATAL issues are fixed and re-checked; MAJOR issues go into Open Questions. - Deliver -- Feynman writes the review and its provenance record and checks that both exist on disk.
Output
outputs/<slug>.md-- the literature review, with Mermaid diagrams for taxonomies, method pipelines, or trajectory maps when the sources support themoutputs/<slug>.provenance.md-- date, sources consulted, accepted, and rejected, verification status, and intermediate research files; for lab or author reviews, also the publication log path and unresolved corpus gaps
When to use it
Use /lit at the start of a project to see what has already been done, when preparing a related-work section, or to understand a lab's or author's body of work.
For biomedical and clinical topics, see Biomedical Literature Review for research-only framing, evidence-type separation, and privacy boundaries.
Website Src Content Docs Workflows Recipe (`website/src/content/docs/workflows/recipe.md`)
title: ML Training Recipe description: Find ranked, implementable ML training recipes backed by papers, datasets, docs, and code. section: Workflows order: 7
The recipe workflow turns a training or fine-tuning goal into a ranked set of implementable recipes. It is designed for ML engineering questions where the useful answer is not just "what papers exist?" but "which dataset, method, hyperparameters, code path, and checks should I try first?"
The recipe-shaped output is borrowed from Hugging Face's ml-intern.
Usage
From the REPL:
/recipe "fine-tune a small model for math reasoning"From the CLI:
feynman recipe "fine-tune a small model for math reasoning"You can use /recipe for tasks such as choosing an SFT dataset, reproducing a benchmark setup, selecting a practical training method, or turning a paper into an implementation plan.
How it works
The workflow writes a plan to outputs/.plans/<slug>-recipe.md and continues automatically. Broad tasks use the researcher agent for the paper and code sweep; narrow tasks are researched directly. Research starts from evidence of results, not from example scripts alone.
For each candidate, Feynman links the reported result to the recipe that produced it: dataset, split/schema, method, hyperparameters, compute assumptions, benchmark, and implementation code. Datasets are checked for availability, splits, and format; anything not directly checked is marked unverified. For the top-ranked recipe, key source URLs and dataset and code availability are verified before delivery, or labeled blocked or unverified.
Hugging Face grounding
When a candidate uses a Hugging Face dataset or repository, Feynman inspects it with read-only Hub tools:
hf_dataset_infochecks dataset metadata, tags, access status, card data, features, and splits.hf_repo_fileslists files in model, dataset, and Space repos.hf_repo_read_filereads small text files such as dataset cards, configs, examples, and scripts.
These tools use public Hub endpoints by default and use HF_TOKEN or HUGGINGFACE_HUB_TOKEN when present for private or gated resources.
Output
Research notes go to outputs/.drafts/<slug>-recipe-research.md. The final brief is outputs/<slug>-recipe.md, with a provenance sidecar at outputs/<slug>-recipe.provenance.md.
The brief includes:
- Recommendation -- The one recipe to try first and why
- Ranked recipe table -- Candidate recipes with paper/source, result, dataset, method, hyperparameters, compute, code/docs, and verification status
- Dataset notes -- Schema, splits, size, license/access constraints, and unchecked gaps
- Implementation plan -- Minimal steps to run the top recipe
- Known gaps -- Missing code, inaccessible data, unclear hyperparameters, benchmark mismatch, or unverified assumptions
- Sources -- URLs for every paper, repo, dataset, and doc page used
Feynman does not call a recipe state of the art, replicated, or production-ready unless the checks support it.
Website Src Content Docs Workflows Replication (`website/src/content/docs/workflows/replication.md`)
title: Replication description: Plan a replication of a paper's experiments and claims; execute only after choosing an environment. section: Workflows order: 6
The replication workflow builds a source-backed plan for reproducing a paper, benchmark result, or specific claim. It executes only after you choose an environment, and it does not call a result replicated unless the planned checks pass.
Usage
From the REPL:
/replicate arxiv:2401.12345/replicate "The claim that sparse attention achieves 95% of dense attention quality at 60% compute"From the CLI:
feynman replicate "paper or claim"How it works
- Extract -- The
researcheragent pulls implementation details from the paper and any linked code. IfCHANGELOG.mdexists, Feynman reads its recent entries first. - Recipe pass -- For ML training, fine-tuning, benchmark, or dataset-heavy targets, each claimed result is linked to the exact dataset, method, hyperparameters, compute assumptions, metric, and code path that produced it. Dataset availability and schema are checked when possible (see Hugging Face Hub); unchecked details are marked
unverified. - Plan -- Feynman lists the code, datasets, metrics, and environment needed, separates what is verified, inferred, and missing, and names the checks that will decide whether the replication succeeded.
- Environment -- Feynman asks where to execute: local, a virtual environment, Docker, Modal (if the
modalCLI is set up), RunPod (ifrunpodctlis installed andRUNPOD_API_KEYis set), or plan only. Nothing is installed or run before you choose. - Execute -- In the chosen environment, Feynman implements and runs the steps and saves notes, scripts, raw outputs, and results to disk.
- Log -- For multi-step or resumable work, Feynman appends entries to
CHANGELOG.mdafter progress, failed attempts, and verification outcomes. - Report -- The result ends with a
Sourcessection listing paper, dataset, documentation, and repository URLs.
When to use it
Use /replicate before building on a result you have not seen reproduced, or to test one specific claim. Choose "plan only" to get the replication plan without running anything.
Website Src Content Docs Workflows Review (`website/src/content/docs/workflows/review.md`)
title: Research Review description: Run an internal research critique with severity-graded feedback. section: Workflows order: 4
The review workflow runs an internal research critique of a paper, draft, or other research artifact. It is not an external peer review or a publication decision; it finds methodology, evidence, clarity, and reproducibility issues before you trust or revise the work.
Usage
From the REPL:
/review arxiv:2401.12345/review ~/papers/my-draft.pdfFrom the CLI:
feynman review arxiv:2401.12345
feynman review my-draft.mdPass an arXiv ID, a URL, or a local file path.
How it works
Feynman writes a plan to outputs/.plans/<slug>-review-plan.md with the artifact, the review criteria (novelty, empirical rigor, baselines, reproducibility, claims validity, figures and tables, metrics, related work, writing quality), and the checks needed. It then continues without waiting for confirmation unless you asked to review the plan first.
Feynman reads local files directly, parses PDFs with the available document tools, and fetches arXiv IDs and URLs. It inspects linked code, datasets, supplements, or citations when they are reachable and matter to the review. Evidence notes go to outputs/.drafts/<slug>-review-evidence.md before the final review is written.
For large artifacts, Feynman can delegate to the researcher and reviewer agents; smaller artifacts are reviewed directly.
If a PDF cannot be parsed or a source is unavailable, Feynman still writes the review, marks the affected sections Verification: BLOCKED, and keeps blocked checks separate from actual weaknesses in the work.
Output
One review at outputs/<slug>-review.md with:
- Summary Assessment
- Strengths
- Critical Issues
- Major Issues
- Minor Issues
- Reproducibility and Verification
- Inline Annotations -- tied to sections, claims, figures, or tables where possible
- Recommendation
- Sources
Customization
Focus the review in your prompt, for example "focus on the statistical methodology" or "check the claims in Section 4 against the experimental results."
--- METRICS ---
- Files Extracted: 29
- Estimated Token Budget: ~61446 tokens
- Canonical Reference: https://codewiki.google/github.com/getcompanion-ai/feynman