cli.mdx 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  1. ---
  2. title: CLI
  3. description: OpenCode CLI options and commands.
  4. ---
  5. import { Tabs, TabItem } from "@astrojs/starlight/components"
  6. The OpenCode CLI by default starts the [TUI](/docs/tui) when run without any arguments.
  7. ```bash
  8. opencode
  9. ```
  10. But it also accepts commands as documented on this page. This allows you to interact with OpenCode programmatically.
  11. ```bash
  12. opencode run "Explain how closures work in JavaScript"
  13. ```
  14. ---
  15. ### tui
  16. Start the OpenCode terminal user interface.
  17. ```bash
  18. opencode [project]
  19. ```
  20. #### Flags
  21. | Flag | Short | Description |
  22. | ------------------------------------------- | ----- | ----------------------------------------------------------------------- |
  23. | <nobr><code>{"--continue"}</code></nobr> | `-c` | Continue the last session |
  24. | <nobr><code>{"--session"}</code></nobr> | `-s` | Session ID to continue |
  25. | <nobr><code>{"--fork"}</code></nobr> | | Fork the session when continuing (use with `--continue` or `--session`) |
  26. | <nobr><code>{"--prompt"}</code></nobr> | | Prompt to use |
  27. | <nobr><code>{"--model"}</code></nobr> | `-m` | Model to use in the form of provider/model |
  28. | <nobr><code>{"--agent"}</code></nobr> | | Agent to use |
  29. | <nobr><code>{"--auto"}</code></nobr> | | Auto-approve permissions that are not explicitly denied |
  30. | <nobr><code>{"--port"}</code></nobr> | | Port to listen on |
  31. | <nobr><code>{"--hostname"}</code></nobr> | | Hostname to listen on |
  32. | <nobr><code>{"--mdns"}</code></nobr> | | Enable mDNS discovery |
  33. | <nobr><code>{"--mdns-domain"}</code></nobr> | | Custom mDNS domain name |
  34. | <nobr><code>{"--cors"}</code></nobr> | | Additional browser origin(s) to allow CORS |
  35. ---
  36. ## Commands
  37. The OpenCode CLI also has the following commands.
  38. ---
  39. ### agent
  40. Manage agents for OpenCode.
  41. ```bash
  42. opencode agent [command]
  43. ```
  44. ---
  45. #### create
  46. Create a new agent with custom configuration.
  47. ```bash
  48. opencode agent create
  49. ```
  50. This 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.
  51. #### Flags
  52. | Flag | Short | Description |
  53. | ------------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  54. | <nobr><code>{"--path"}</code></nobr> | | Directory to write the agent file to (defaults to global or `.opencode/agent` based on the prompt) |
  55. | <nobr><code>{"--description"}</code></nobr> | | What the agent should do |
  56. | <nobr><code>{"--mode"}</code></nobr> | | Agent mode: `all`, `primary`, or `subagent` |
  57. | <nobr><code>{"--permissions"}</code></nobr> | | 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` |
  58. | <nobr><code>{"--model"}</code></nobr> | `-m` | Model to use, in `provider/model` format |
  59. Passing all of `--path`, `--description`, `--mode`, and `--permissions` runs the command non-interactively.
  60. ---
  61. #### list
  62. List all available agents.
  63. ```bash
  64. opencode agent list
  65. ```
  66. ---
  67. ### attach
  68. Attach a terminal to an already running OpenCode backend server started via `serve` or `web` commands.
  69. ```bash
  70. opencode attach [url]
  71. ```
  72. This allows using the TUI with a remote OpenCode backend. For example:
  73. ```bash
  74. # Start the backend server for web/mobile access
  75. opencode web --port 4096 --hostname 0.0.0.0
  76. # In another terminal, attach the TUI to the running backend
  77. opencode attach http://10.20.30.40:4096
  78. ```
  79. #### Flags
  80. | Flag | Short | Description |
  81. | ---------------------------------------- | ----- | -------------------------------------------------------------------------- |
  82. | <nobr><code>{"--dir"}</code></nobr> | | Working directory to start TUI in |
  83. | <nobr><code>{"--continue"}</code></nobr> | `-c` | Continue the last session |
  84. | <nobr><code>{"--session"}</code></nobr> | `-s` | Session ID to continue |
  85. | <nobr><code>{"--fork"}</code></nobr> | | Fork the session when continuing (use with `--continue` or `--session`) |
  86. | <nobr><code>{"--password"}</code></nobr> | `-p` | Basic auth password (defaults to `OPENCODE_SERVER_PASSWORD`) |
  87. | <nobr><code>{"--username"}</code></nobr> | `-u` | Basic auth username (defaults to `OPENCODE_SERVER_USERNAME` or `opencode`) |
  88. ---
  89. ### auth
  90. Command to manage credentials and login for providers.
  91. ```bash
  92. opencode auth [command]
  93. ```
  94. ---
  95. #### login
  96. OpenCode is powered by the provider list at [Models.dev](https://models.dev), so you can use `opencode auth login` to configure API keys for any provider you'd like to use. This is stored in `~/.local/share/opencode/auth.json`.
  97. ```bash
  98. opencode auth login
  99. ```
  100. When OpenCode 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.
  101. ##### Flags
  102. | Flag | Short | Description |
  103. | ---------------------------------------- | ----- | ---------------------------------------------------- |
  104. | <nobr><code>{"--provider"}</code></nobr> | `-p` | Provider ID or name to log in to |
  105. | <nobr><code>{"--method"}</code></nobr> | `-m` | Login method label to use, skipping method selection |
  106. ---
  107. #### list
  108. Lists all the authenticated providers as stored in the credentials file.
  109. ```bash
  110. opencode auth list
  111. ```
  112. Or the short version.
  113. ```bash
  114. opencode auth ls
  115. ```
  116. ---
  117. #### logout
  118. Logs you out of a provider by clearing it from the credentials file.
  119. ```bash
  120. opencode auth logout
  121. ```
  122. ---
  123. ### github
  124. Manage the GitHub agent for repository automation.
  125. ```bash
  126. opencode github [command]
  127. ```
  128. ---
  129. #### install
  130. Install the GitHub agent in your repository.
  131. ```bash
  132. opencode github install
  133. ```
  134. This sets up the necessary GitHub Actions workflow and guides you through the configuration process. [Learn more](/docs/github).
  135. ---
  136. #### run
  137. Run the GitHub agent. This is typically used in GitHub Actions.
  138. ```bash
  139. opencode github run
  140. ```
  141. ##### Flags
  142. | Flag | Description |
  143. | ------------------------------------- | -------------------------------------- |
  144. | <nobr><code>{"--event"}</code></nobr> | GitHub mock event to run the agent for |
  145. | <nobr><code>{"--token"}</code></nobr> | GitHub personal access token |
  146. ---
  147. ### mcp
  148. Manage Model Context Protocol servers.
  149. ```bash
  150. opencode mcp [command]
  151. ```
  152. ---
  153. #### add
  154. Add an MCP server to your configuration.
  155. ```bash
  156. opencode mcp add
  157. ```
  158. This command will guide you through adding either a local or remote MCP server.
  159. ---
  160. #### list
  161. List all configured MCP servers and their connection status.
  162. ```bash
  163. opencode mcp list
  164. ```
  165. Or use the short version.
  166. ```bash
  167. opencode mcp ls
  168. ```
  169. ---
  170. #### auth
  171. Authenticate with an OAuth-enabled MCP server.
  172. ```bash
  173. opencode mcp auth [name]
  174. ```
  175. If you don't provide a server name, you'll be prompted to select from available OAuth-capable servers.
  176. You can also list OAuth-capable servers and their authentication status.
  177. ```bash
  178. opencode mcp auth list
  179. ```
  180. Or use the short version.
  181. ```bash
  182. opencode mcp auth ls
  183. ```
  184. ---
  185. #### logout
  186. Remove OAuth credentials for an MCP server.
  187. ```bash
  188. opencode mcp logout [name]
  189. ```
  190. ---
  191. #### debug
  192. Debug OAuth connection issues for an MCP server.
  193. ```bash
  194. opencode mcp debug <name>
  195. ```
  196. ---
  197. ### models
  198. List all available models from configured providers.
  199. ```bash
  200. opencode models [provider]
  201. ```
  202. This command displays all models available across your configured providers in the format `provider/model`.
  203. This is useful for figuring out the exact model name to use in [your config](/docs/config/).
  204. You can optionally pass a provider ID to filter models by that provider.
  205. ```bash
  206. opencode models anthropic
  207. ```
  208. #### Flags
  209. | Flag | Description |
  210. | --------------------------------------- | ------------------------------------------------------------ |
  211. | <nobr><code>{"--refresh"}</code></nobr> | Refresh the models cache from models.dev |
  212. | <nobr><code>{"--verbose"}</code></nobr> | Use more verbose model output (includes metadata like costs) |
  213. 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 OpenCode.
  214. ```bash
  215. opencode models --refresh
  216. ```
  217. ---
  218. ### run
  219. Run opencode in non-interactive mode by passing a prompt directly.
  220. ```bash
  221. opencode run [message..]
  222. ```
  223. This is useful for scripting, automation, or when you want a quick answer without launching the full TUI. For example.
  224. ```bash "opencode run"
  225. opencode run Explain the use of context in Go
  226. ```
  227. You can also attach to a running `opencode serve` instance to avoid MCP server cold boot times on every run:
  228. ```bash
  229. # Start a headless server in one terminal
  230. opencode serve
  231. # In another terminal, run commands that attach to it
  232. opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
  233. ```
  234. #### Flags
  235. | Flag | Short | Description |
  236. | ------------------------------------------------------------ | ----- | -------------------------------------------------------------------------- |
  237. | <nobr><code>{"--command"}</code></nobr> | | The command to run, use message for args |
  238. | <nobr><code>{"--continue"}</code></nobr> | `-c` | Continue the last session |
  239. | <nobr><code>{"--session"}</code></nobr> | `-s` | Session ID to continue |
  240. | <nobr><code>{"--fork"}</code></nobr> | | Fork the session when continuing (use with `--continue` or `--session`) |
  241. | <nobr><code>{"--share"}</code></nobr> | | Share the session |
  242. | <nobr><code>{"--model"}</code></nobr> | `-m` | Model to use in the form of provider/model |
  243. | <nobr><code>{"--agent"}</code></nobr> | | Agent to use |
  244. | <nobr><code>{"--file"}</code></nobr> | `-f` | File(s) to attach to message |
  245. | <nobr><code>{"--format"}</code></nobr> | | Format: default (formatted) or json (raw JSON events) |
  246. | <nobr><code>{"--title"}</code></nobr> | | Title for the session (uses truncated prompt if no value provided) |
  247. | <nobr><code>{"--attach"}</code></nobr> | | Attach to a running opencode server (e.g., http://localhost:4096) |
  248. | <nobr><code>{"--password"}</code></nobr> | `-p` | Basic auth password (defaults to `OPENCODE_SERVER_PASSWORD`) |
  249. | <nobr><code>{"--username"}</code></nobr> | `-u` | Basic auth username (defaults to `OPENCODE_SERVER_USERNAME` or `opencode`) |
  250. | <nobr><code>{"--dir"}</code></nobr> | | Directory to run in, or path on the remote server when attaching |
  251. | <nobr><code>{"--port"}</code></nobr> | | Port for the local server (defaults to random port) |
  252. | <nobr><code>{"--variant"}</code></nobr> | | Model variant (provider-specific reasoning effort) |
  253. | <nobr><code>{"--thinking"}</code></nobr> | | Show thinking blocks |
  254. | <nobr><code>{"--auto"}</code></nobr> | | Auto-approve permissions that are not explicitly denied |
  255. ---
  256. ### serve
  257. Start a headless OpenCode server for API access. Check out the [server docs](/docs/server) for the full HTTP interface.
  258. ```bash
  259. opencode serve
  260. ```
  261. This starts an HTTP server that provides API access to opencode functionality without the TUI interface. Set `OPENCODE_SERVER_PASSWORD` to enable HTTP basic auth (username defaults to `opencode`).
  262. #### Flags
  263. | Flag | Description |
  264. | ------------------------------------------- | ------------------------------------------ |
  265. | <nobr><code>{"--port"}</code></nobr> | Port to listen on |
  266. | <nobr><code>{"--hostname"}</code></nobr> | Hostname to listen on |
  267. | <nobr><code>{"--mdns"}</code></nobr> | Enable mDNS discovery |
  268. | <nobr><code>{"--mdns-domain"}</code></nobr> | Custom mDNS domain name |
  269. | <nobr><code>{"--cors"}</code></nobr> | Additional browser origin(s) to allow CORS |
  270. ---
  271. ### session
  272. Manage OpenCode sessions.
  273. ```bash
  274. opencode session [command]
  275. ```
  276. ---
  277. #### list
  278. List all OpenCode sessions.
  279. ```bash
  280. opencode session list
  281. ```
  282. ##### Flags
  283. | Flag | Short | Description |
  284. | ----------------------------------------- | ----- | ------------------------------------ |
  285. | <nobr><code>{"--max-count"}</code></nobr> | `-n` | Limit to N most recent sessions |
  286. | <nobr><code>{"--format"}</code></nobr> | | Output format: table or json (table) |
  287. ---
  288. #### delete
  289. Delete an OpenCode session.
  290. ```bash
  291. opencode session delete <sessionID>
  292. ```
  293. ---
  294. ### stats
  295. Show token usage and cost statistics for your OpenCode sessions.
  296. ```bash
  297. opencode stats
  298. ```
  299. #### Flags
  300. | Flag | Description |
  301. | --------------------------------------- | --------------------------------------------------------------------------- |
  302. | <nobr><code>{"--days"}</code></nobr> | Show stats for the last N days (all time) |
  303. | <nobr><code>{"--tools"}</code></nobr> | Number of tools to show (all) |
  304. | <nobr><code>{"--models"}</code></nobr> | Show model usage breakdown (hidden by default). Pass a number to show top N |
  305. | <nobr><code>{"--project"}</code></nobr> | Filter by project (all projects, empty string: current project) |
  306. ---
  307. ### export
  308. Export session data as JSON.
  309. ```bash
  310. opencode export [sessionID]
  311. ```
  312. If you don't provide a session ID, you'll be prompted to select from available sessions.
  313. #### Flags
  314. | Flag | Description |
  315. | ---------------------------------------- | ------------------------------------- |
  316. | <nobr><code>{"--sanitize"}</code></nobr> | Redact sensitive transcript/file data |
  317. ---
  318. ### import
  319. Import session data from a JSON file or OpenCode share URL.
  320. ```bash
  321. opencode import <file>
  322. ```
  323. You can import from a local file or an OpenCode share URL.
  324. ```bash
  325. opencode import session.json
  326. opencode import https://opncd.ai/s/abc123
  327. ```
  328. ---
  329. ### web
  330. Start a headless OpenCode server with a web interface.
  331. ```bash
  332. opencode web
  333. ```
  334. This starts an HTTP server and opens a web browser to access OpenCode through a web interface. Set `OPENCODE_SERVER_PASSWORD` to enable HTTP basic auth (username defaults to `opencode`).
  335. #### Flags
  336. | Flag | Description |
  337. | ------------------------------------------- | ------------------------------------------ |
  338. | <nobr><code>{"--port"}</code></nobr> | Port to listen on |
  339. | <nobr><code>{"--hostname"}</code></nobr> | Hostname to listen on |
  340. | <nobr><code>{"--mdns"}</code></nobr> | Enable mDNS discovery |
  341. | <nobr><code>{"--mdns-domain"}</code></nobr> | Custom mDNS domain name |
  342. | <nobr><code>{"--cors"}</code></nobr> | Additional browser origin(s) to allow CORS |
  343. ---
  344. ### acp
  345. Start an ACP (Agent Client Protocol) server.
  346. ```bash
  347. opencode acp
  348. ```
  349. This command starts an ACP server that communicates via stdin/stdout using nd-JSON.
  350. #### Flags
  351. | Flag | Description |
  352. | ------------------------------------------- | ------------------------------------------ |
  353. | <nobr><code>{"--cwd"}</code></nobr> | Working directory |
  354. | <nobr><code>{"--port"}</code></nobr> | Port to listen on |
  355. | <nobr><code>{"--hostname"}</code></nobr> | Hostname to listen on |
  356. | <nobr><code>{"--mdns"}</code></nobr> | Enable mDNS discovery |
  357. | <nobr><code>{"--mdns-domain"}</code></nobr> | Custom mDNS domain name |
  358. | <nobr><code>{"--cors"}</code></nobr> | Additional browser origin(s) to allow CORS |
  359. ---
  360. ### plugin
  361. Install a plugin and update your config.
  362. ```bash
  363. opencode plugin <module>
  364. ```
  365. Or use the alias.
  366. ```bash
  367. opencode plug <module>
  368. ```
  369. #### Flags
  370. | Flag | Short | Description |
  371. | -------------------------------------- | ----- | ------------------------------- |
  372. | <nobr><code>{"--global"}</code></nobr> | `-g` | Install in global config |
  373. | <nobr><code>{"--force"}</code></nobr> | `-f` | Replace existing plugin version |
  374. ---
  375. ### pr
  376. Fetch and checkout a GitHub PR branch, then run OpenCode.
  377. ```bash
  378. opencode pr <number>
  379. ```
  380. ---
  381. ### db
  382. Database tools.
  383. ```bash
  384. opencode db [query]
  385. ```
  386. #### Flags
  387. | Flag | Description |
  388. | -------------------------------------- | ------------------------------ |
  389. | <nobr><code>{"--format"}</code></nobr> | Output format: `json` or `tsv` |
  390. ---
  391. #### path
  392. Print the database path.
  393. ```bash
  394. opencode db path
  395. ```
  396. ---
  397. ### debug
  398. Debugging and troubleshooting tools.
  399. ```bash
  400. opencode debug [command]
  401. ```
  402. ---
  403. ### uninstall
  404. Uninstall OpenCode and remove all related files.
  405. ```bash
  406. opencode uninstall
  407. ```
  408. #### Flags
  409. | Flag | Short | Description |
  410. | ------------------------------------------- | ----- | ------------------------------------------- |
  411. | <nobr><code>{"--keep-config"}</code></nobr> | `-c` | Keep configuration files |
  412. | <nobr><code>{"--keep-data"}</code></nobr> | `-d` | Keep session data and snapshots |
  413. | <nobr><code>{"--dry-run"}</code></nobr> | | Show what would be removed without removing |
  414. | <nobr><code>{"--force"}</code></nobr> | `-f` | Skip confirmation prompts |
  415. ---
  416. ### upgrade
  417. Updates opencode to the latest version or a specific version.
  418. ```bash
  419. opencode upgrade [target]
  420. ```
  421. To upgrade to the latest version.
  422. ```bash
  423. opencode upgrade
  424. ```
  425. To upgrade to a specific version.
  426. ```bash
  427. opencode upgrade v0.1.48
  428. ```
  429. #### Flags
  430. | Flag | Short | Description |
  431. | -------------------------------------- | ----- | ----------------------------------------------------------------- |
  432. | <nobr><code>{"--method"}</code></nobr> | `-m` | The installation method that was used; curl, npm, pnpm, bun, brew |
  433. ---
  434. ## Global Flags
  435. The opencode CLI takes the following global flags.
  436. | Flag | Short | Description |
  437. | ------------------------------------------ | ----- | ------------------------------------ |
  438. | <nobr><code>{"--help"}</code></nobr> | `-h` | Display help |
  439. | <nobr><code>{"--version"}</code></nobr> | `-v` | Print version number |
  440. | <nobr><code>{"--print-logs"}</code></nobr> | | Print logs to stderr |
  441. | <nobr><code>{"--log-level"}</code></nobr> | | Log level (DEBUG, INFO, WARN, ERROR) |
  442. | <nobr><code>{"--pure"}</code></nobr> | | Run without external plugins |
  443. ---
  444. ## Environment variables
  445. OpenCode can be configured using environment variables.
  446. | Variable | Type | Description |
  447. | ------------------------------------- | ------- | ------------------------------------------------- |
  448. | `OPENCODE_AUTO_SHARE` | boolean | Automatically share sessions |
  449. | `OPENCODE_GIT_BASH_PATH` | string | Path to Git Bash executable on Windows |
  450. | `OPENCODE_CONFIG` | string | Path to config file |
  451. | `OPENCODE_TUI_CONFIG` | string | Path to TUI config file |
  452. | `OPENCODE_CONFIG_DIR` | string | Path to config directory |
  453. | `OPENCODE_CONFIG_CONTENT` | string | Inline json config content |
  454. | `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Disable automatic update checks |
  455. | `OPENCODE_DISABLE_PRUNE` | boolean | Disable pruning of old data |
  456. | `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Disable automatic terminal title updates |
  457. | `OPENCODE_PERMISSION` | string | Inlined json permissions config |
  458. | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Disable default plugins |
  459. | `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Disable automatic LSP server downloads |
  460. | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | Enable experimental models |
  461. | `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | Disable automatic context compaction |
  462. | `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | Disable reading from `.claude` (prompt + skills) |
  463. | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | Disable reading `~/.claude/CLAUDE.md` |
  464. | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | Disable loading `.claude/skills` |
  465. | `OPENCODE_DISABLE_MODELS_FETCH` | boolean | Disable fetching models from remote sources |
  466. | `OPENCODE_DISABLE_MOUSE` | boolean | Disable mouse capture in the TUI |
  467. | `OPENCODE_FAKE_VCS` | string | Fake VCS provider for testing purposes |
  468. | `OPENCODE_CLIENT` | string | Client identifier (defaults to `cli`) |
  469. | `OPENCODE_ENABLE_EXA` | boolean | Enable Exa web search tools |
  470. | `OPENCODE_SERVER_PASSWORD` | string | Enable basic auth for `serve`/`web` |
  471. | `OPENCODE_SERVER_USERNAME` | string | Override basic auth username (default `opencode`) |
  472. | `OPENCODE_MODELS_URL` | string | Custom URL for fetching models configuration |
  473. ---
  474. ### Experimental
  475. These environment variables enable experimental features that may change or be removed.
  476. | Variable | Type | Description |
  477. | ----------------------------------------------- | ------- | --------------------------------------- |
  478. | `OPENCODE_EXPERIMENTAL` | boolean | Enable the experimental umbrella flag |
  479. | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | Enable icon discovery |
  480. | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | Disable copy on select in TUI |
  481. | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | Default timeout for bash commands in ms |
  482. | `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | Max output tokens for LLM responses |
  483. | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | Enable file watcher for entire dir |
  484. | `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | Enable oxfmt formatter |
  485. | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | Enable experimental LSP tool |
  486. | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Disable file watcher |
  487. | `OPENCODE_EXPERIMENTAL_EXA` | boolean | Enable experimental Exa features |
  488. | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Enable TY LSP for python files |
  489. | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Enable plan mode |
  490. | `OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS` | boolean | Enable background subagent tasks |
  491. | `OPENCODE_EXPERIMENTAL_EVENT_SYSTEM` | boolean | Enable experimental event system |
  492. | `OPENCODE_EXPERIMENTAL_NATIVE_LLM` | boolean | Enable native LLM request path |
  493. | `OPENCODE_EXPERIMENTAL_PARALLEL` | boolean | Enable parallel web search execution |
  494. | `OPENCODE_EXPERIMENTAL_SCOUT` | boolean | Enable Scout subagent |
  495. | `OPENCODE_EXPERIMENTAL_WORKSPACES` | boolean | Enable workspace support |