feynman Documentation

The open source AI research agent.

10,015 stars TypeScript TypeScript 29 files · ~61,531 tokens #ai-agent#arxiv#cli#literature-review#pi-coding-agent#research
RAW Doc

Technical Documentation: getcompanion-ai/feynman

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (`README.md`)

Install

macOS / Linux:

bash
curl -fsSL https://feynman.is/install | bash

Windows (PowerShell):

powershell
irm https://feynman.is/install.ps1 | iex

Or with npm and Node.js 22.22 or newer: npm install @companion-ai/feynman.

Then sign in to a model provider:

bash
feynman setup

The 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

bash
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

bash
git clone https://github.com/Companion-Inc/feynman.git
cd feynman
npm install
npm test

See 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):

json
{
  "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 }
      ]
    }
  }
}
sh
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's sources DOI. 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:

bash
npx shadcn@latest add button

This 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:

astro
---
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

bash
feynman

This 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:

bash
feynman --prompt "Summarize the key findings of Attention Is All You Need"

Feynman prints the response and exits.

Start a deep research run

bash
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:

bash
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:

bash
feynman --cwd ~/papers
> /review arxiv:2301.07041

You 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:

bash
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:

  1. 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.
  2. 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

  1. Anchor claims -- insert inline citations such as [1] after each factual claim, merging the numbering from multiple research files into one sequence.
  2. 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.
  3. Check meaning -- a citation counts only if the source supports the specific number, quote, or conclusion attached to it.
  4. 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.
  5. 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.
  6. 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

text
~/.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 state

agent/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:

json
{
  "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:

bash
feynman model login anthropic
feynman model list
feynman model set anthropic/claude-opus-5-5

feynman 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:

bash
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 kept

The 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:

bash
feynman --thinking high

Environment 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:

bash
export FEYNMAN_TELEMETRY=off
export DO_NOT_TRACK=1

feynman 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:

bash
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 else

Diagnostics

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.

On macOS or Linux:

bash
curl -fsSL https://feynman.is/install | bash

The 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:

powershell
irm https://feynman.is/install.ps1 | iex

This 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:

bash
npm install @companion-ai/feynman

This 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:

bash
npm uninstall -g @advaitpaliwal/feynman
npm install @companion-ai/feynman

Updating

Rerun the installer you originally used to get the latest tagged release. For npm installs:

bash
npm install @companion-ai/feynman@latest

feynman 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:

bash
curl -fsSL https://feynman.is/install | bash -s -- 0.5.3

On Windows:

powershell
& ([scriptblock]::Create((irm https://feynman.is/install.ps1))) -Version 0.5.3

Uninstalling

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:

bash
rm -f ~/.local/bin/feynman
rm -rf ~/.local/share/feynman
# optional: settings, sessions, and installed packages
rm -rf ~/.feynman
# optional: alphaXiv login
rm -rf ~/.ahub

On Windows PowerShell:

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 -Force

Then remove %LOCALAPPDATA%\Programs\feynman\bin from your user PATH.

For npm installs:

bash
npm uninstall -g @companion-ai/feynman

Skills only

To install only Feynman's research skills, without the terminal app, into ~/.codex/skills/feynman for Codex:

bash
curl -fsSL https://feynman.is/install-skills | bash

To 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:

bash
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 -- --opencode

On Windows:

powershell
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 OpenCode

These 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:

bash
feynman --version

Then 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.

bash
feynman setup

Model access

If no authenticated model is available yet, setup asks how to connect one:

text
Choose how to configure model access:
> OAuth login (recommended: ChatGPT, Claude Max, Copilot, ...)
  API key or custom provider (OpenAI, Anthropic, ZAI, Kimi, MiniMax, ...)
  Cancel

OAuth 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:

bash
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:

text
Base URL: http://localhost:1234/v1
API key: lm-studio

For 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:

text
API mode: openai-completions
Base URL: http://localhost:11434/v1
Send Authorization header: No
API key / resolver: local
Model id(s): llama3.1:8b

Custom 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:

bash
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:

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.

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:

bash
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 log

These 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:

bash
feynman -- "- summarize the strongest evidence first"

For one-shot mode, attach a dash-leading value directly to --prompt:

bash
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:

bash
rg -n "protein folding" ~/.feynman/sessions

Installing and managing packages

List core packages and optional presets:

bash
feynman packages list

Install a specific optional preset:

bash
feynman packages install memory

Updating packages

Update the optional packages you installed, through Pi's own pi update --extensions:

bash
feynman update

Update one package, by preset name or Pi package source:

bash
feynman update memory

Core 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.

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 Found from the provider says the model id or endpoint doesn't exist, and to check the model with /model and the baseUrl in models.json.
    • "The model refused to complete the request" says the model declined, and to rephrase or pick another model.
  • ip-address 10.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_WORKERS raises 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.json files 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 parallel call can set its own cwd and model.
    • 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_content returns short, complete static pages instead of reporting them as incomplete.
    • A default search provider list now falls back to searchRouting when every provider in it fails.
    • Linkup is a new search provider: feynman search set linkup <key>. Each search uses Linkup credits, so auto never picks it.
    • Most search providers can be routed through your own gateway with a BaseUrl setting; 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.json says so. When ~/.feynman/agent/auth.json isn't valid JSON, for example after a hand edit, every command used to print only Expected property name or '}' in JSON. Feynman now names the file and says to fix it, or move it aside and sign in again with feynman setup.
  • feynman --update points to feynman update, and feynman model setup points to feynman model login.

v0.5.50 - 2026-10-18

  • pi-subagents 0.79.1.
    • Sessions that have not delegated yet no longer send the bg_wait and subagent_supervisor tool 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 status show each subagent's model.
    • Read-only installs no longer log a "permission denied" error about the upgrade notice on every start.

v0.5.49 - 2026-10-17

  • pi-subagents 0.79.0.
    • Forked research subagents reuse the parent's prompt cache, and /subagent-cost reports 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.
    • subagent stays available after an update or /reload mid-session.
  • 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, so auto never picks it.
  • .env.example lists OPENALEX_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 \usepackage no 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.

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 set works with every search provider pi-web-access supports. It accepted only auto, exa, perplexity and gemini; 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 status and feynman doctor name 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 doctor read your models through Pi, so comments in models.json, a baseUrl set on one model, and a key saved with feynman model login count the same way they do when Feynman runs.
  • feynman doctor no longer warns about a custom provider whose key you saved with feynman model login rather than writing it into models.json.

v0.5.42 - 2026-10-13

  • Pi 1.2.0 and pi-subagents 0.78.0.
    • With an OpenRouter key, /model lists 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 -p warns 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 EPERM while an old lock is cleaned up.
    • Pressing Esc keeps 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 launches warning no longer prints on every parallel run.
  • feynman model login offers 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 (or DO_NOT_TRACK=1) now sets Pi's own PI_TELEMETRY=0 for its install reporting.
  • Feynman now honors Pi's own sessionDir setting and PI_CODING_AGENT_SESSION_DIR when you don't pass --session-dir.
  • feynman model set and 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 install works 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. feynman reopened the setup menu, and since 0.5.36 feynman -p refused 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.
  • --model accepts 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/model and provider:model still work. Pro-class models stay blocked.
  • After you sign in, the model list matches your account. feynman model login refreshes 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 ~/Applications on 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, get and the paper tools said to run alpha login, a command that isn't installed with Feynman. They now say feynman alpha login. (Alpha Hub 0.1.7.)
  • Security: Alpha Hub now requires @modelcontextprotocol/sdk 1.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. auto search 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_content answers end with the get_search_content call 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

  • /deepresearch no 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 /lit does. 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 /lit and /audit runs ended on one of these. Feynman bugs go to github.com/Companion-Inc/feynman/issues; Pi's /bug reports to Pi's developers.
  • Research runs on macOS and Linux no longer fail on python: command not found; Feynman tells the model to run python3.

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 login or feynman setup without an authorization code (seen mostly on Windows), Feynman printed only "Missing authorization code". It now gives the same advice as for invalid_grant: sign out of the provider's site or use a private window, then retry, and for ChatGPT it suggests feynman model login openai-codex.

v0.5.36 - 2026-10-12

  • A new user gets to a working model instead of a dead end. Launching feynman with no model opens a menu to set one up.
    • Typing a question there moved the selection onto Cancel: the menu treated h, j, k and l as 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 /login and files inside node_modules.
  • feynman help drops 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 subagent tool'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 /btw side-chat composer completes slash commands, and side threads no longer fail with Anthropic's "references unknown tool" error.
  • feynman -v prints the version, and --json, --work-dir and --path now point to --mode json and --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 need or author: 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_content answer 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/sdk 1.32.1, so GHSA-6qxp-vccf-f47h no longer appears in npm audit for a Feynman install.

v0.5.32 - 2026-10-09

  • A rejected sign-in now says what to do. When feynman model login or feynman setup ended with invalid_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 run feynman model login again. For ChatGPT it also suggests feynman model login openai-codex.

v0.5.31 - 2026-10-09

  • Feynman starts again if you once installed the old session-search package. Its entry stayed in ~/.feynman/agent/settings.json after 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 with grep or rg over ~/.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/sdk move to 1.32.1. pi-web-access still pins 1.27.1 for its separate npx pi-web-access MCP 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_search or fetch_content call 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_invalidated after a request is cancelled during a token refresh, and closing the terminal no longer reports a read EIO / setRawMode EIO crash. In fullscreen, Home/End now move within the input line; jump to the top or bottom of the transcript with Ctrl+Home/Ctrl+End.
  • Azure OpenAI is now azure. Pi renamed the provider from azure-openai-responses, and feynman model login now offers the new name. If you set up Azure before, run feynman model login azure again and rename the provider in ~/.feynman/agent/models.json and settings.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 set claude-haiku-4.5 as 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. If feynman status shows github-copilot/claude-haiku-4.5 and you did not choose it, run feynman model set to pick another.
  • alpha_ask_paper answers with the arXiv metadata and abstract, marked as a fallback, when alphaXiv does not answer (for example after the login expires), like alpha_search and alpha_get_paper already did.
  • -p is short for --prompt, as in Pi. --setup, --list-models, --new, feynman setup model, and feynman model now say which command was meant.
  • pi-web-access 0.36.0: web_search accepts lists that a model sent as a JSON string (nicobailon/pi-web-access#491), fetch_content asks docs sites for markdown first, Brave prepaid keys keep working, and a fetch_content call 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_found instead 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 PubMed 429, 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_search returns OpenAlex semantic search results and alpha_get_paper returns the arXiv metadata and abstract for an arXiv ID, each marked as a fallback. Run feynman alpha login to 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 sent provider: "[\"parallel-mcp\"]", which web_search rejects; nicobailon/pi-web-access#491 makes web_search accept that form too.

v0.5.17 - 2026-09-30

  • feynman model login openai works 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 the deviceId Pi's own /login keeps 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\cmd on 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, and feynman doctor reports the bash it 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_KEY now says so instead of request 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 as research.md, and /deepresearch and /lit name every subagent file under outputs/.drafts/. If you set singleRunOutputBaseDir in ~/.feynman/agent/extensions/subagent/config.json, Feynman keeps your value.
  • feynman packages remove (also rm and uninstall) removes an optional package such as memory.
  • 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_content falls 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 has legacy-peer-deps on, it skips Pi; feynman now says to reinstall with --legacy-peer-deps=false instead 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 set explains 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 the feynman model login command to run), a local provider in models.json has no apiKey (Pi hides providers without one; a placeholder such as "local" is enough), or the ID is unknown (with close matches, for example gpt-5.6 suggests openai/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 set with no model opens a picker of the available models instead of failing. feynman model help lists the model commands, an unknown model subcommand points to it, and -h works 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 --help check 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 network feynman --help took 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 recommends kimi-k2.7-code. If feynman status shows kimi-k2.6, switch with feynman 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 Requests on most calls. Crossref requests now run one after another at the pool's pace. Set CROSSREF_MAILTO to 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 and year_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-review and /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 researcher or verifier launched in the foreground failed at once because foreground children never load the parent's extensions, so web_search, fetch_content, and feynman_science_database_search were missing. Feynman now points pi-subagents' defaultSubagentOnlyExtensions setting 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, and alpha_read_code call 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 after feynman 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 ~/path now means your home folder. Unexpanded ~ (common in .env files, Docker ENV, 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 with FEYNMAN_TELEMETRY=off as 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's Retry-After.
  • feynman setup and feynman model login in 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 running feynman 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) or fetch_content, so a research run continues on another source instead of retrying a broken tool. A "not logged in" error names feynman 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/callback URL 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 contextWindow and maxTokens in models.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 rpc now 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 with PI_ACP_PI_COMMAND=feynman; the setup guide has the Zed settings.

Removed what did not work

  • The optional session-search package preset is gone. It indexes ~/.pi/agent/sessions and never saw Feynman's sessions in ~/.feynman/sessions, and its /search collided with pi-web-access's. Search past sessions with grep or rg over ~/.feynman/sessions; the session-search skill now shows how.
  • /preview is no longer listed in /help: no bundled or optional package provides it. feynman setup preview still installs pandoc, and the preview docs show how to render artifacts to HTML or PDF.
  • /help lists pi-web-access's real /websearch and /curator commands 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.json with 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 (now earendil-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 --prompt runs, a /lit run could end while its reviewer was still working and never write the provenance file.
  • On the /lit eval 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 @opentelemetry packages (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's limit (default 5, max 20) instead of 50-100 full records; an explicit max_records is capped at 50. In live /lit runs these results were 100-240 KB per call and drove most of the multi-million-token usage.
  • The researcher and verifier subagents 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_paper now states it takes arXiv and alphaXiv papers only, and points DOI-only papers to fetch_content or 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_started and feynman_workflow_completed (workflow name such as deepresearch or chat, status, tool and subagent call counts, whether anything under outputs/ or papers/ was written, duration), feynman_tool_used (tool name and error flag), and one PostHog LLM analytics $ai_generation event 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 status shows whether telemetry is on.
  • Telemetry stays on by default and follows the existing opt-outs: FEYNMAN_TELEMETRY=off or DO_NOT_TRACK=1 disables 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.tgz archive, its hashes, and its lock), which was re-verified on every launch. feynman --help and feynman doctor start 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 model recommend 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 --model and /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 update and feynman packages install now go through Pi's own pi update --extensions and pi 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 --prompt and JSON runs no longer stay open after answering.
  • Explicit prompts never wait on stdin. feynman --prompt and workflow commands started from a non-interactive parent no longer hang on an idle stdin pipe. Pipe text without --prompt to use it as the prompt.
  • /feynman-model is gone. Use Pi's /model for the main model and pi-subagents' /subagents or subagents.agentOverrides.<name>.model for one subagent. Feynman now sets subagents.agentExcludeDirs to ["~/.agents"], so agent files there no longer silently replace Feynman's bundled agents.
  • Gemini Web cookie access uses pi-web-access's own allowBrowserCookies and browserCookies.profile keys in web-search.json. The Feynman-only geminiBrowser, allowBrowserAuth, browserAuth, and chromeProfile keys are no longer read. Set allowBrowserCookies if 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.json is 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 serve and its --port, --no-open, --no-auth and --host flags, the local web app, its demo seed data, and the workbench-only Pi tools feynman_connector_tools, feynman_connector_call, feynman_workbench_context, and feynman_open_chemistry_sketcher. The molecule, genome, alignment, and structure viewer libraries are no longer installed with Feynman.
  • Non-literature databases: feynman_science_database_search now 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_call tool.
  • 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, and paper-narrative skills. /replicate and /autoresearch still offer Docker, Modal, and RunPod as execution choices.
  • Commands: /commands and /capabilities. Use /help for the grouped command list and /tools for the tool list.
  • Workflows: /watch and /jobs (and feynman watch / feynman jobs). Both depended on a schedule_prompt scheduler 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) and feynman 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 /lit or /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, and fetch_content.
  • arXiv topic search: the arxiv source of feynman_science_database_search now only looks up papers by arXiv ID (bare IDs, URLs, or arxiv_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 with semanticscholar or openalex instead.
  • Removed commands exit with a pointer: feynman serve, watch, jobs, rank, and paper now 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.json or ~/.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.

  • Semantic Scholar source: feynman_science_database_search gains source: "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 and sort: "pub_date" returns newest first. Set SEMANTIC_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 openalex query with semantic: 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_KEY is still sent as the api_key parameter 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_search for 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 call feynman_science_database_search. If you customized ~/.feynman/agent/agents/researcher.md or verifier.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 when discover_papers is unavailable. It also adds a paste-the-URL login for headless sessions, fixes a hang in parallel searches, and writes the token file with 0600 permissions. Feynman no longer patches alpha-hub.
  • Updated @companion-ai/alpha-hub to 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 with 0600 permissions, and feynman alpha status checks the login with the alphaXiv server.

v0.3.49 - 2026-09-23

Repository and package home

  • Feynman is back at Companion-Inc/feynman on GitHub and @companion-ai/feynman on npm. Installers, skills downloads, self-update checks, package metadata, research-source request identities, and docs use the Companion locations directly.
  • @companion-ai/feynman 0.3.47 installs now see this update through feynman's normal update notice. If you installed the interim @advaitpaliwal/feynman 0.3.48 package, migrate once with npm uninstall -g @advaitpaliwal/feynman, then npm install @companion-ai/feynman. The command remains feynman, 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=off or DO_NOT_TRACK=1 still disables it.

Startup and Windows reliability

  • feynman --version answers 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/.bin command 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 /thinking command; Pi's built-in /thinking now 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-level tasks / chain parameters and /chain / /parallel commands 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 with npm uninstall -g @companion-ai/feynman, then npm install @advaitpaliwal/feynman. Future npm updates use npm install @advaitpaliwal/feynman@latest. The command remains feynman, 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.
  • /btw and /btw:summarize now copy extension-registered providers, native providers, and temporary runtime API keys into their isolated child ModelRuntime. Side research can use the same custom provider that is already active in the main session.

Web research

  • Updated pi-web-access to 0.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 findText is 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.45 pi-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 /otel dashboard 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 ls reads 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 superseded 6bbb6e8 tree with a pi-otel shutdown failure, explicit proxy/provider credentials in process arguments, and stale npm runtime metadata. Upgrade to 0.3.47 or 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-Archive cmdlet, 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_choice when 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-subagents package'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 raised missing management list diagnostics during --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: false notifications 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 fd and rg releases 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_exhausted 402 responses can use their Retry-After budget 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 precursor 7b1dcfd), 8c16a558, 6d05adb, 94f6e7c, d8def812, fe37e9f9, 27115254, and 86c42324, 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 while pendingMessageCount remained 1 and no clearing queue_update event was emitted. Ported the focused fix from commit b67b3db across 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-node to 5.51.1. On Node 24.16 and later, each telemetry flush now sends gzip bytes directly instead of retaining a native BlobReader for the life of the process.

Validation

  • Backported Pi commit 97fa14e across 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 commit 3593c43 and added a transport regression that requires a Uint8Array gzip body instead of a Blob.

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 from igv.org instead of raw GitHub, avoiding unnecessary blocked-origin warnings under restrictive content-security policies.

Validation

  • Matched the installed package to the published 3.8.5 npm artifact and upstream commit 1ff36cd, 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.35 failure 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-access to 0.24.2. Automatic search prefers Codex-backed OpenAI search when the active model is openai-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.json and dynamic models-store.json files now retain administrator-managed modes and ACLs when Feynman updates them. On POSIX systems, newly created state files still use owner-only 0600 permissions.
  • Research subagent guidance now directs explicit model selection through feynman model list and tells the parent to use an exact approved provider/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 c49906e and the Feynman-safe guidance portion of pi-subagents commit 62e0934.
  • 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-parser to 5.11.0 for 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 0600 files inside 0700 workspace-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-node to 5.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-access to 0.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.maxPages can bound Datalab, Gemini, and local PDF extraction. It defaults to 100.
  • openaiSearchProviders can choose the ordered Pi provider list used for OpenAI-compatible web_search calls.
  • 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 tag v0.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 v10 cookies through current-user DPAPI.
  • Chromium v20 app-bound cookies remain blocked and now return a clear diagnostic instead of a false authentication success.

Validation

  • Ported only the focused upstream pi-subagents context-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.0 fixes from pi-web-access while 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 Requests responses.
  • NCBI_API_KEY now reaches E-utilities while remaining redacted from reported provenance. Keyed requests use the higher NCBI budget, and NCBI_MIN_REQUEST_GAP_MS can 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-access to 0.24.0 for 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.28 at 0/12, then verified 12/12 successful 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.2 and 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.1 instead 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 bundled 0.23.0 release before launch.

Validation

  • Backported the focused upstream pi-subagents malformed-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-After and 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-access to 0.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 null are 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 researcher child 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-access to 0.22.0. Researchers can use Bocha as a configured search route.
  • Added maxInlineContentChars for 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 researcher child 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_content result, including short pages and failures. Researchers can now pass the exact ID to get_search_content instead 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 0700 directories and 0600 files 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-access PR #241 at commit b3e784f, 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-access to 0.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_content argument constraints and added /web-results for 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_CONFIG paths.
  • 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.15 core package pins.

Validation

  • Verified the exact upstream 0.21.0 source through all 437 tests, typecheck, production audit, and package inspection.
  • Added regressions for external cache persistence, bounded session metadata, the /web-results gate 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-pro blocked. 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-access to 0.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.13 core package pins.

Validation

  • Verified the exact upstream 0.20.0 source through all 425 tests, 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-expansion versions at or above the current secure 5.0.9 floor intact. A newer registry release can no longer stop Feynman during launch, while stale 5.0.6 through 5.0.8 trees still upgrade to the verified 5.0.9 package.
  • 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-expansion versions.

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_end remains authoritative.

Document research

  • Updated pi-docparser to 4.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.js 22.19.0 or 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-access to 0.19.0. fetch_content can 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 findText and findMode, 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 :max scoped 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 ask sending obsolete urls/url arguments to alphaXiv. Paper Q&A now sends the current paper plus queries schema.
  • 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 --models overrides, 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_CONFIG locations, and create that file's parent before saving.
  • Updated Feynman's direct, nested Pi, and packaged runtime copies of Undici to 8.10.0 for current idle-connection, readable-body, retry, HTTP/2, proxy IPv6, and DNS-origin fixes.
  • Updated PDF.js to 6.2.108 and 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 website brace-expansion overrides 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 older 0.3.6 bundled 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, and document_screenshot against a generated PDF.

v0.3.11 - 2026-08-01

Research agents

  • Updated pi-subagents to 0.40.0 so 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.10 or older 0.3.6 bundled package defaults.

v0.3.10 - 2026-08-01

Runtime

  • Updated the bundled Pi runtime train from 0.82.1 to 0.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.7 contract. Extension authors must replace removed Type.Base, Type.Awaited, Type.Promise, Type.AsyncIterator, Type.Iterator, Type.Options, and Value.Mutate APIs before upgrading.
  • Updated pi-web-access to 0.17.1 for bounded streamed fetches, Gemini-compatible provider schemas, and current search/extraction fixes, and updated pi-subagents to 0.38.0 for 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.0 train.
  • 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-expansion 5.0.9 and Undici 8.9.0; upstream Pi 0.83.0 still ships the affected 5.0.7 and 8.5.0 copies.
  • Fixed feynman update writing 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 as feynman 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=1 for the single CLI diagnostic notice or FEYNMAN_TELEMETRY=off to 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 /tools and /capabilities when Pi reports their source as the top-level research-tools.ts extension, 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.json or repeat provider setup.
  • Fixed plain HTTP API and MCP traffic behind HTTP_PROXY using a CONNECT tunnel 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 ComSpec invocations.

Package Stack

  • Updated Feynman's direct and nested Pi Undici runtime from 8.5.0 to 8.9.0. The narrow Pi manifest, shrinkwrap, and installed-tree repair can be removed after a supported Pi release requires Undici 8.7.0 or 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 layout when 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.6 core 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/feynman producing 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/25 package-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 Node 24.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 status now 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.json during 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, including max where Pi exposes it.
  • fetch_content now writes extracted PDF scratch Markdown under the active project's .feynman/cache/fetch-content instead of ~/Downloads. Set FEYNMAN_FETCH_CACHE_DIR to override the location.
  • Unknown CLI flags now point to feynman help, and feynman update help clarifies that extensions update with their packages rather than through a separate --extensions flag.

Package Stack

  • Added pi-btw to Feynman's default Pi package stack so /btw side conversations are available during long-running research turns without requiring a separate package install.
  • Updated pi-subagents to 0.37.2 so 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-access to 0.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.3 to 0.82.1, migrated Feynman's model/auth integration to Pi's asynchronous ModelRuntime, 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-expansion copy with 5.0.8, updating MCP SDK to 1.30.0, and pinning its compatible Hono server dependency to 2.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.0 archives, added Linux arm64 release builds, and made every standalone installer verify the published SHA256SUMS entry before replacing a working installation.

Science Workbench

  • Expanded feynman serve into 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.json and ~/.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/workbench records and checkout-local .feynman/workbench records 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 /watch plans 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: and conv: 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, and ucsc_tfbs_clusters query 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/compat entrypoint and extension-loader aliases used by optional packages such as pi-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 during feynman 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 paper for 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-notes so 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.10 and updated production dependency overrides so npm audit --omit=dev is clean after the refresh. This inherits Pi's compaction-event context, exact-version update flow, nested-repo find fix, and OpenAI-compatible reasoning_details streaming 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, and all-extras optional package/update targets. Optional packages now stay one-by-one and research-continuity focused.

v0.2.58 - 2026-05-16

Optional Packages

  • Added a hindsight optional 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 hindsight and pi-hindsight update aliases so feynman update hindsight resolves 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 protobufjs dependency override from 7.5.5 to 7.5.8, which pulls in the patched @protobufjs/utf8 release 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/npm runtime workspace when resolving Pi, so feynman doctor and 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_papers are unavailable, alpha search now 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_modules path.

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 typebox are repaired before extension load.
  • Include Pi's typebox runtime 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 as pi-btw and pi-markdown-preview can load.
  • Patched alphaXiv search in the bundled alpha-hub runtime to fall back to the newer discover_papers MCP tool when alphaXiv no longer exposes the older search tool names.
  • Hardened model tool-call handling for common alias mistakes: search_web now maps to web_search, and bare fetch / WebFetch / read_url_content map to fetch_content with array URLs normalized.
  • Fixed the Windows docker probe in the research header so cmd.exe no longer emits localized mojibake from Unix-only /dev/null redirection.

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: --codex on macOS/Linux and -Scope Codex on 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 rootDir requirement.

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=dev passed.

v0.2.46 - 2026-05-07

Updates

  • Added the /recipe workflow 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 /replicate so ML-heavy targets perform a recipe extraction pass before execution planning.

Documentation

  • Added website docs for the /recipe workflow 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/prompts to 1.3.0 for the setup/onboarding prompt surface.

Validation

  • Full local tests passed: 154/154.
  • Typecheck, root build, website build, feynman doctor, and production npm audit --omit=dev passed.
  • JSONL RPC smoke passed with get_state and a bash command returning FEYNMAN_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 audit reports zero vulnerabilities.
  • This removes advisories in basic-ftp, fast-xml-parser, hono, and ip-address while keeping the dependency changes scoped to existing transitive packages.

Validation

  • Production npm audit --omit=dev passed with zero vulnerabilities.
  • Full local tests passed: 154/154.
  • Typecheck, root build, website build, and feynman doctor passed.

v0.2.43 - 2026-05-06

Fixes

  • Restricted .feynman/web-search.json permissions 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.json package 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-processes before the RPC session can start.

Validation

  • Added regression coverage for the embedded Pi package-manager patch.
  • Real v0.2.41 release 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 real web_search tool when it is available.
  • Granted the bundled researcher and verifier agents access to Pi web-access tools (web_search, fetch_content, and get_search_content) so their prompts and allowed tools match.
  • Made feynman doctor and feynman search status explicitly show when web-search.json has 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 medium on every launch, so thinking levels saved by Pi after Shift+Tab survive restarts.
  • Explicit --thinking <level> and FEYNMAN_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 memory and feynman update session-search so 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 preview so it actually runs the preview dependency check, matching the legacy --setup-preview alias.
  • Made optional generative-ui install/update failures degrade cleanly on macOS toolchains where upstream glimpseui cannot 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+Tab thinking-level hotkey and /hotkeys discovery 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 /deepresearch reviewer/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-cli dependency.

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 /review so it writes a durable plan, evidence notes, and outputs/<slug>-review.md instead 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 --mode as a module path.
  • Made optional package presets platform-aware so Linux users do not see or attempt to install the macOS-only generative-ui package.
  • 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-ui is macOS-only upstream.

Validation

  • Added regression coverage for the /review durable-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 /deepresearch confirmation gate: the workflow now writes outputs/.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 /deepresearch artifact paths so research notes and verification files are written under outputs/.drafts/.

Features

  • Added section-focused alpha_get_paper extraction with section / sections filters for abstract, introduction, methodology, experiments, results, discussion, limitations, and conclusion.
  • Added configurable /summarize context-window controls via flags and FEYNMAN_SUMMARIZE_* environment variables.

Documentation

  • Added public RELEASES.md and 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 replied yes and 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 /deepresearch so direct-mode research must use at least three distinct search terms or angles before drafting.
  • Required direct-mode /deepresearch to 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 BM25 completed 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 /deepresearch from 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 /deepresearch unless PDF extraction is explicitly requested.

Validation

  • Real RPC /deepresearch what is BM25 completed with required artifacts and agent_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 output paths 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.

js
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" },
]);
json
{ "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:

bash
feynman alpha login

On 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:

bash
feynman alpha status

Agent 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:

bash
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.py

Storage

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:

bash
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:

bash
feynman setup preview

If 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

bash
pandoc outputs/scaling-laws.md -s -o outputs/scaling-laws.html
pandoc outputs/scaling-laws.md -o outputs/scaling-laws.pdf

Open 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:

bash
feynman search status

Set a provider, optionally saving its API key:

bash
feynman search set exa <api-key>
feynman search set perplexity <api-key>
feynman search set gemini <api-key>
feynman search set auto

feynman 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:

text
/audit arxiv:2401.12345
text
/audit arxiv:2401.12345 https://github.com/org/repo

From the CLI:

bash
feynman audit 2401.12345

Pass 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:

text
/autoresearch Optimize prompt engineering strategies for math reasoning on GSM8K

From the CLI:

bash
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

  1. Gather -- If autoresearch.md and autoresearch.jsonl already 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).
  2. Environment -- Feynman asks where to run: local, a new git branch, a virtual environment, Docker, Modal (if the modal CLI is set up), or RunPod (if runpodctl is installed and RUNPOD_API_KEY is set).
  3. Confirm -- Feynman shows the target, benchmark, files, environment, and iteration limit, and does not start until you approve.
  4. Run -- Feynman creates autoresearch.md, autoresearch.jsonl, and autoresearch.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:

text
/lit PICO: adults with type 2 diabetes; intervention continuous glucose monitoring; comparator standard self-monitoring; outcomes HbA1c and hypoglycemia

From the CLI:

bash
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:

text
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:

text
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:

text
/compare "sparse attention methods for long-context language models"
text
/compare arxiv:2401.12345 arxiv:2402.67890 arxiv:2403.11111

From the CLI:

bash
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:

text
/deepresearch What are the current approaches to mechanistic interpretability in LLMs?

From the CLI:

bash
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

  1. Plan -- Feynman writes outputs/.plans/<slug>.md with 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).
  2. 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 researcher agents, broad surveys 3-4, and complex multi-domain topics 4-6.
  3. 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.
  4. Draft -- The lead agent writes the draft itself and removes or downgrades any claim that does not map to a source, note, or artifact.
  5. Cite -- When researchers were used, the verifier agent adds inline citations and checks every URL. In direct-search runs, the lead agent does this itself.
  6. Review -- When researchers were used, the reviewer agent 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.
  7. 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:

text
/draft A survey of retrieval-augmented generation techniques

From the CLI:

bash
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 Sources appendix 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:

text
/lit Scaling laws for language model performance

From the CLI:

bash
feynman lit "Scaling laws for language model performance"
feynman lit "Anthropic interpretability team"

How it works

  1. 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.
  2. Gather -- Wide sweeps use the researcher agent, which writes <slug>-research-*.md files; narrow topics are searched directly. For a lab or author, the lead agent first resolves the identity and writes a publication log to notes/<slug>-publications.md with titles, years, venues, URLs or DOIs, and gaps.
  3. 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.
  4. Cite -- The verifier agent adds inline citations and checks every source URL.
  5. Verify -- The reviewer agent 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.
  6. 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 them
  • outputs/<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:

text
/recipe "fine-tune a small model for math reasoning"

From the CLI:

bash
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_info checks dataset metadata, tags, access status, card data, features, and splits.
  • hf_repo_files lists files in model, dataset, and Space repos.
  • hf_repo_read_file reads 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:

text
/replicate arxiv:2401.12345
text
/replicate "The claim that sparse attention achieves 95% of dense attention quality at 60% compute"

From the CLI:

bash
feynman replicate "paper or claim"

How it works

  1. Extract -- The researcher agent pulls implementation details from the paper and any linked code. If CHANGELOG.md exists, Feynman reads its recent entries first.
  2. 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.
  3. 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.
  4. Environment -- Feynman asks where to execute: local, a virtual environment, Docker, Modal (if the modal CLI is set up), RunPod (if runpodctl is installed and RUNPOD_API_KEY is set), or plan only. Nothing is installed or run before you choose.
  5. Execute -- In the chosen environment, Feynman implements and runs the steps and saves notes, scripts, raw outputs, and results to disk.
  6. Log -- For multi-step or resumable work, Feynman appends entries to CHANGELOG.md after progress, failed attempts, and verification outcomes.
  7. Report -- The result ends with a Sources section 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:

text
/review arxiv:2401.12345
text
/review ~/papers/my-draft.pdf

From the CLI:

bash
feynman review arxiv:2401.12345
feynman review my-draft.md

Pass 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 ---