Skip to main content
Feynman stores all configuration and state under ~/.feynman/. This directory is created on first run and contains settings, authentication tokens, session history, and installed packages.

Directory structure

The settings.json file is the primary configuration file. It is created and maintained by feynman setup and feynman model set, and can be edited manually. Do not edit it while Feynman is running.

settings.json

A typical settings.json looks like:

Fields

The defaultProvider and defaultModel fields are set together. Use feynman model set <provider/model> to change them — this is the recommended way to update your model.

Model configuration

The defaultProvider and defaultModel fields together select which model Feynman uses when you launch without the --model flag. The format for feynman model set uses a / or : separator:
To see all models you have configured and their authentication status:
Feynman ranks models by research suitability. In order of preference:

Thinking levels

The defaultThinkingLevel field controls how much extended reasoning the model applies before responding. This can be overridden per-session with --thinking or FEYNMAN_THINKING.

Environment variables

Environment variables take precedence over settings.json. Set them in your shell profile or in a .env file in your working directory.

Feynman runtime

Model provider API keys

Compute providers

API keys are read by the Pi runtime. You can also configure them via feynman model login for OAuth-based providers, or place them in ~/.feynman/auth.json for key-based providers. The auth.json file is managed by the Pi runtime.

Session management

Each conversation is persisted as a file in ~/.feynman/sessions/. Sessions allow you to resume previous conversations and maintain context across REPL restarts. To start a fresh session:
To store sessions in a different directory (useful for per-project isolation):
The --session-dir flag is particularly useful when you want separate conversation histories for different research projects.

Diagnostics

Run feynman doctor to verify your configuration, check authentication status for all configured providers, and detect missing optional dependencies:
The doctor command outputs a checklist showing what is working and what needs attention — including missing API keys, unauthenticated providers, missing preview dependencies, and Pi runtime issues.
feynman status shows a compact summary of your current setup: active model, auth status, installed packages, and session directory.