blob: c0fbbd3ba56cfb3b437279b75a651acdb5752d6c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
---
title: CLI
description: opencode CLI options and commands.
---
import { Tabs, TabItem } from "@astrojs/starlight/components"
The opencode CLI by default starts the [TUI](/docs/tui) when run without any arguments.
```bash
opencode
```
But it also accepts commands as documented on this page. This allows you to interact with opencode programmatically.
```bash
opencode run "Explain how closures work in JavaScript"
```
---
## Commands
The opencode CLI also has the following commands.
---
### agent
Manage agents for opencode.
```bash
opencode agent [command]
```
---
#### create
Create a new agent with custom configuration.
```bash
opencode agent create
```
This command will guide you through creating a new agent with a custom system prompt and tool configuration.
---
### auth
Command to manage credentials and login for providers.
```bash
opencode auth [command]
```
---
#### login
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`.
```bash
opencode auth login
```
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.
---
#### list
Lists all the authenticated providers as stored in the credentials file.
```bash
opencode auth list
```
Or the short version.
```bash
opencode auth ls
```
---
#### logout
Logs you out of a provider by clearing it from the credentials file.
```bash
opencode auth logout
```
---
### github
Manage the GitHub agent for repository automation.
```bash
opencode github [command]
```
---
#### install
Install the GitHub agent in your repository.
```bash
opencode github install
```
This sets up the necessary GitHub Actions workflow and guides you through the configuration process. [Learn more](/docs/github).
---
#### run
Run the GitHub agent. This is typically used in GitHub Actions.
```bash
opencode github run
```
##### Flags
| Flag | Description |
| --------- | -------------------------------------- |
| `--event` | GitHub mock event to run the agent for |
| `--token` | GitHub personal access token |
---
### models
List all available models from configured providers.
```bash
opencode models
```
This command displays all models available across your configured providers in the format `provider/model`.
---
### run
Run opencode in non-interactive mode by passing a prompt directly.
```bash
opencode run [message..]
```
This is useful for scripting, automation, or when you want a quick answer without launching the full TUI. For example.
```bash "opencode run"
opencode run Explain the use of context in Go
```
#### Flags
| Flag | Short | Description |
| ------------ | ----- | ------------------------------------------ |
| `--continue` | `-c` | Continue the last session |
| `--session` | `-s` | Session ID to continue |
| `--share` | | Share the session |
| `--model` | `-m` | Model to use in the form of provider/model |
| `--agent` | | Agent to use |
---
### serve
Start a headless opencode server for API access. Check out the [server docs](/docs/server) for the full HTTP interface.
```bash
opencode serve
```
This starts an HTTP server that provides API access to opencode functionality without the TUI interface.
#### Flags
| Flag | Short | Description |
| ------------ | ----- | --------------------- |
| `--port` | `-p` | Port to listen on |
| `--hostname` | `-h` | Hostname to listen on |
---
### upgrade
Updates opencode to the latest version or a specific version.
```bash
opencode upgrade [target]
```
To upgrade to the latest version.
```bash
opencode upgrade
```
To upgrade to a specific version.
```bash
opencode upgrade v0.1.48
```
#### Flags
| Flag | Short | Description |
| ---------- | ----- | ----------------------------------------------------------------- |
| `--method` | `-m` | The installation method that was used; curl, npm, pnpm, bun, brew |
---
## Flags
The opencode CLI takes the following global flags.
| Flag | Short | Description |
| -------------- | ----- | ------------------------------------------ |
| `--help` | `-h` | Display help |
| `--version` | | Print version number |
| `--print-logs` | | Print logs to stderr |
| `--log-level` | | Log level (DEBUG, INFO, WARN, ERROR) |
| `--prompt` | `-p` | 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 |
|