CLI
PhysicsCode CLI options and commands.
The PhysicsCode CLI by default starts the TUI when run without any arguments.
physicscodeBut it also accepts commands as documented on this page. This allows you to interact with PhysicsCode programmatically.
physicscode run "Explain how closures work in JavaScript"tui
Start the PhysicsCode terminal user interface.
physicscode [project]Flags
| Flag | Short | Description |
|---|---|---|
--continue | -c | Continue the last session |
--session | -s | Session ID to continue |
--fork | Fork the session when continuing (use with --continue or --session) | |
--prompt | Prompt to use | |
--model | -m | Model to use in the form of provider/model |
--agent | Agent to use | |
--port | Port to listen on | |
--hostname | Hostname to listen on |
Commands
The PhysicsCode CLI also has the following commands.
agent
Manage agents for PhysicsCode.
physicscode agent [command]attach
Attach a terminal to an already running PhysicsCode backend server started via serve or web commands.
physicscode attach [url]This allows using the TUI with a remote PhysicsCode backend. For example:
# Start the backend server for web/mobile accessphysicscode web --port 4096 --hostname 0.0.0.0
# In another terminal, attach the TUI to the running backendphysicscode attach http://10.20.30.40:4096Flags
| Flag | Short | Description |
|---|---|---|
--dir | Working directory to start TUI in | |
--session | -s | Session ID to continue |
create
Create a new agent with custom configuration.
physicscode agent createThis command will guide you through creating a new agent with a custom system prompt and permission configuration. Anything you don’t allow is denied in the generated agent’s frontmatter.
Flags
| Flag | Description |
|---|---|
--path | Directory to write the agent file to (defaults to global or .physicscode/agent based on the prompt) |
--description | What the agent should do |
--mode | Agent mode: all, primary, or subagent |
--permissions | Comma-separated list of permissions to allow (default: all). Available: bash, read, edit, glob, grep, webfetch, task, todowrite, websearch, lsp, skill. Anything omitted is denied. Alias: --tools |
--model, -m | Model to use, in provider/model format |
Passing all of --path, --description, --mode, and --permissions runs the command non-interactively.
list
List all available agents.
physicscode agent listauth
Command to manage credentials and login for providers.
physicscode auth [command]login
PhysicsCode is powered by the provider list at Models.dev, so you can use physicscode auth login to configure API keys for any provider you’d like to use. This is stored in ~/.local/share/physicscode/auth.json.
physicscode auth loginWhen PhysicsCode starts up it loads the providers from the credentials file. And if there are any keys defined in your environments or a .env file in your project.
list
Lists all the authenticated providers as stored in the credentials file.
physicscode auth listOr the short version.
physicscode auth lslogout
Logs you out of a provider by clearing it from the credentials file.
physicscode auth logoutgithub
Manage the GitHub agent for repository automation.
physicscode github [command]run
Run the GitHub agent. This is typically used in GitHub Actions.
physicscode github runFlags
| Flag | Description |
|---|---|
--event | GitHub mock event to run the agent for |
--token | GitHub personal access token |
mcp
Manage Model Context Protocol servers.
physicscode mcp [command]add
Add an MCP server to your configuration.
physicscode mcp addThis command will guide you through adding either a local or remote MCP server.
list
List all configured MCP servers and their connection status.
physicscode mcp listOr use the short version.
physicscode mcp lsauth
Authenticate with an OAuth-enabled MCP server.
physicscode mcp auth [name]If you don’t provide a server name, you’ll be prompted to select from available OAuth-capable servers.
You can also list OAuth-capable servers and their authentication status.
physicscode mcp auth listOr use the short version.
physicscode mcp auth lslogout
Remove OAuth credentials for an MCP server.
physicscode mcp logout [name]debug
Debug OAuth connection issues for an MCP server.
physicscode mcp debug <name>models
List all available models from configured providers.
physicscode models [provider]This command displays all models available across your configured providers in the format provider/model.
This is useful for figuring out the exact model name to use in your config.
You can optionally pass a provider ID to filter models by that provider.
physicscode models anthropicFlags
| Flag | Description |
|---|---|
--refresh | Refresh the models cache from models.dev |
--verbose | Use more verbose model output (includes metadata like costs) |
Use the --refresh flag to update the cached model list. This is useful when new models have been added to a provider and you want to see them in PhysicsCode.
physicscode models --refreshrun
Run physicscode in non-interactive mode by passing a prompt directly.
physicscode run [message..]This is useful for scripting, automation, or when you want a quick answer without launching the full TUI. For example.
physicscode run Explain the use of context in GoYou can also attach to a running physicscode serve instance to avoid MCP server cold boot times on every run:
# Start a headless server in one terminalphysicscode serve
# In another terminal, run commands that attach to itphysicscode run --attach http://localhost:4096 "Explain async/await in JavaScript"Flags
| Flag | Short | Description |
|---|---|---|
--command | The command to run, use message for args | |
--continue | -c | Continue the last session |
--session | -s | Session ID to continue |
--fork | Fork the session when continuing (use with --continue or --session) | |
--share | Share the session | |
--model | -m | Model to use in the form of provider/model |
--agent | Agent to use | |
--file | -f | File(s) to attach to message |
--format | Format: default (formatted) or json (raw JSON events) | |
--title | Title for the session (uses truncated prompt if no value provided) | |
--attach | Attach to a running physicscode server (e.g., http://localhost:4096) | |
--port | Port for the local server (defaults to random port) | |
--dangerously-skip-permissions | Auto-approve permissions that are not explicitly denied (dangerous!) |
serve
Start a headless PhysicsCode server for API access. Check out the server docs for the full HTTP interface.
physicscode serveThis starts an HTTP server that provides API access to physicscode functionality without the TUI interface. Set PHYSICSCODE_SERVER_PASSWORD to enable HTTP basic auth (username defaults to physicscode).
Flags
| Flag | Description |
|---|---|
--port | Port to listen on |
--hostname | Hostname to listen on |
--mdns | Enable mDNS discovery |
--cors | Additional browser origin(s) to allow CORS |
session
Manage PhysicsCode sessions.
physicscode session [command]list
List all PhysicsCode sessions.
physicscode session listFlags
| Flag | Short | Description |
|---|---|---|
--max-count | -n | Limit to N most recent sessions |
--format | Output format: table or json (table) |
stats
Show token usage and cost statistics for your PhysicsCode sessions.
physicscode statsFlags
| Flag | Description |
|---|---|
--days | Show stats for the last N days (all time) |
--tools | Number of tools to show (all) |
--models | Show model usage breakdown (hidden by default). Pass a number to show top N |
--project | Filter by project (all projects, empty string: current project) |
export
Export session data as JSON.
physicscode export [sessionID]If you don’t provide a session ID, you’ll be prompted to select from available sessions.
import
Import session data from a JSON file or PhysicsCode share URL.
physicscode import <file>You can import from a local file or an PhysicsCode share URL.
physicscode import session.jsonphysicscode import https://opncd.ai/s/abc123web
Start a headless PhysicsCode server with a web interface.
physicscode webThis starts an HTTP server and opens a web browser to access PhysicsCode through a web interface. Set PHYSICSCODE_SERVER_PASSWORD to enable HTTP basic auth (username defaults to physicscode).
Flags
| Flag | Description |
|---|---|
--port | Port to listen on |
--hostname | Hostname to listen on |
--mdns | Enable mDNS discovery |
--cors | Additional browser origin(s) to allow CORS |
acp
Start an ACP (Agent Client Protocol) server.
physicscode acpThis command starts an ACP server that communicates via stdin/stdout using nd-JSON.
Flags
| Flag | Description |
|---|---|
--cwd | Working directory |
--port | Port to listen on |
--hostname | Hostname to listen on |
uninstall
Uninstall PhysicsCode and remove all related files.
physicscode uninstallFlags
| Flag | Short | Description |
|---|---|---|
--keep-config | -c | Keep configuration files |
--keep-data | -d | Keep session data and snapshots |
--dry-run | Show what would be removed without removing | |
--force | -f | Skip confirmation prompts |
upgrade
Updates physicscode to the latest version or a specific version.
physicscode upgrade [target]To upgrade to the latest version.
physicscode upgradeTo upgrade to a specific version.
physicscode upgrade v0.1.48Flags
| Flag | Short | Description |
|---|---|---|
--method | -m | The installation method that was used; curl, npm, pnpm, bun, brew |
Global Flags
The physicscode CLI takes the following global flags.
| Flag | Short | Description |
|---|---|---|
--help | -h | Display help |
--version | -v | Print version number |
--print-logs | Print logs to stderr | |
--log-level | Log level (DEBUG, INFO, WARN, ERROR) |
Environment variables
PhysicsCode can be configured using environment variables.
| Variable | Type | Description |
|---|---|---|
PHYSICSCODE_AUTO_SHARE | boolean | Automatically share sessions |
PHYSICSCODE_GIT_BASH_PATH | string | Path to Git Bash executable on Windows |
PHYSICSCODE_CONFIG | string | Path to config file |
PHYSICSCODE_TUI_CONFIG | string | Path to TUI config file |
PHYSICSCODE_CONFIG_DIR | string | Path to config directory |
PHYSICSCODE_CONFIG_CONTENT | string | Inline json config content |
PHYSICSCODE_DISABLE_AUTOUPDATE | boolean | Disable automatic update checks |
PHYSICSCODE_DISABLE_PRUNE | boolean | Disable pruning of old data |
PHYSICSCODE_DISABLE_TERMINAL_TITLE | boolean | Disable automatic terminal title updates |
PHYSICSCODE_PERMISSION | string | Inlined json permissions config |
PHYSICSCODE_DISABLE_DEFAULT_PLUGINS | boolean | Disable default plugins |
PHYSICSCODE_DISABLE_LSP_DOWNLOAD | boolean | Disable automatic LSP server downloads |
PHYSICSCODE_ENABLE_EXPERIMENTAL_MODELS | boolean | Enable experimental models |
PHYSICSCODE_DISABLE_AUTOCOMPACT | boolean | Disable automatic context compaction |
PHYSICSCODE_DISABLE_CLAUDE_CODE | boolean | Disable reading from .claude (prompt + skills) |
PHYSICSCODE_DISABLE_CLAUDE_CODE_PROMPT | boolean | Disable reading ~/.claude/CLAUDE.md |
PHYSICSCODE_DISABLE_CLAUDE_CODE_SKILLS | boolean | Disable loading .claude/skills |
PHYSICSCODE_DISABLE_MODELS_FETCH | boolean | Disable fetching models from remote sources |
PHYSICSCODE_DISABLE_MOUSE | boolean | Disable mouse capture in the TUI |
PHYSICSCODE_FAKE_VCS | string | Fake VCS provider for testing purposes |
PHYSICSCODE_CLIENT | string | Client identifier (defaults to cli) |
PHYSICSCODE_ENABLE_EXA | boolean | Enable Exa web search tools |
PHYSICSCODE_SERVER_PASSWORD | string | Enable basic auth for serve/web |
PHYSICSCODE_SERVER_USERNAME | string | Override basic auth username (default physicscode) |
PHYSICSCODE_MODELS_URL | string | Custom URL for fetching models configuration |
Experimental
These environment variables enable experimental features that may change or be removed.
| Variable | Type | Description |
|---|---|---|
PHYSICSCODE_EXPERIMENTAL | boolean | Enable all experimental features |
PHYSICSCODE_EXPERIMENTAL_ICON_DISCOVERY | boolean | Enable icon discovery |
PHYSICSCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT | boolean | Disable copy on select in TUI |
PHYSICSCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS | number | Default timeout for bash commands in ms |
PHYSICSCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX | number | Max output tokens for LLM responses |
PHYSICSCODE_EXPERIMENTAL_FILEWATCHER | boolean | Enable file watcher for entire dir |
PHYSICSCODE_EXPERIMENTAL_OXFMT | boolean | Enable oxfmt formatter |
PHYSICSCODE_EXPERIMENTAL_LSP_TOOL | boolean | Enable experimental LSP tool |
PHYSICSCODE_EXPERIMENTAL_DISABLE_FILEWATCHER | boolean | Disable file watcher |
PHYSICSCODE_EXPERIMENTAL_EXA | boolean | Enable experimental Exa features |
PHYSICSCODE_EXPERIMENTAL_LSP_TY | boolean | Enable TY LSP for python files |
PHYSICSCODE_EXPERIMENTAL_MARKDOWN | boolean | Enable experimental markdown features |
PHYSICSCODE_EXPERIMENTAL_PLAN_MODE | boolean | Enable plan mode |