CLI Commands
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
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 <id> 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 <id-or-url> |
Fetch paper content and local annotations |
feynman alpha ask <id-or-url> "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 <preset> |
Install an optional package preset |
feynman packages remove <preset> |
Remove an installed optional package preset |
feynman update [package] |
Update optional Pi packages you installed, or one of them; core packages update with Feynman |
See Package Stack for the core packages and optional presets.
Web search
| Command | Description |
|---|---|
feynman search status |
Show Pi web-access status and config path |
feynman search set <provider> [api-key] |
Set the web search provider (any pi-web-access provider; run with no provider to list them) and optionally save its API key |
feynman search clear |
Reset the web search provider to auto while keeping API keys |
See Web Search.
REPL hotkeys
Inside the interactive REPL, use /hotkeys to show the live keyboard map. The default reasoning controls are:
| Hotkey | Action |
|---|---|
Shift+Tab |
Cycle thinking/reasoning level |
Ctrl+T |
Collapse or expand thinking blocks |
Workflow commands
Every workflow prompt can also be run directly from the CLI:
feynman deepresearch "topic"
feynman lit "topic-or-lab"
feynman review artifact.md
feynman audit 2401.12345
feynman replicate "claim"
feynman recipe "fine-tune a small model for math reasoning"
feynman compare "topic"
feynman draft "topic"
feynman autoresearch "idea"
feynman summarize paper.pdf
feynman log
These are equivalent to launching the REPL and typing the corresponding slash command.
Flags
When stdin is not a terminal, --prompt and workflow commands do not read it, so an idle pipe from a parent process cannot stall the run. Pipe text without --prompt to send it as the prompt, for example git diff | feynman --no-session.
Use the standard -- delimiter before an interactive prompt that starts with
a dash, so Pi treats it as research text rather than another option:
feynman -- "- summarize the strongest evidence first"
For one-shot mode, attach a dash-leading value directly to --prompt:
feynman --prompt="- summarize the strongest evidence first"
