|
|
@@ -0,0 +1,132 @@
|
|
|
+---
|
|
|
+title: Web
|
|
|
+description: Using OpenCode in your browser.
|
|
|
+---
|
|
|
+
|
|
|
+OpenCode can run as a web application in your browser, providing the same powerful AI coding experience without needing a terminal.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Getting Started
|
|
|
+
|
|
|
+Start the web interface by running:
|
|
|
+
|
|
|
+```bash
|
|
|
+opencode web
|
|
|
+```
|
|
|
+
|
|
|
+This starts a local server on `127.0.0.1` with a random available port and automatically opens OpenCode in your default browser.
|
|
|
+
|
|
|
+:::caution
|
|
|
+If `OPENCODE_SERVER_PASSWORD` is not set, the server will be unsecured. This is fine for local use but should be set for network access.
|
|
|
+:::
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Configuration
|
|
|
+
|
|
|
+You can configure the web server using command line flags or in your [config file](/docs/config).
|
|
|
+
|
|
|
+### Port
|
|
|
+
|
|
|
+By default, OpenCode picks an available port. You can specify a port:
|
|
|
+
|
|
|
+```bash
|
|
|
+opencode web --port 4096
|
|
|
+```
|
|
|
+
|
|
|
+### Hostname
|
|
|
+
|
|
|
+By default, the server binds to `127.0.0.1` (localhost only). To make OpenCode accessible on your network:
|
|
|
+
|
|
|
+```bash
|
|
|
+opencode web --hostname 0.0.0.0
|
|
|
+```
|
|
|
+
|
|
|
+When using `0.0.0.0`, OpenCode will display both local and network addresses:
|
|
|
+
|
|
|
+```
|
|
|
+ Local access: http://localhost:4096
|
|
|
+ Network access: http://192.168.1.100:4096
|
|
|
+```
|
|
|
+
|
|
|
+### mDNS Discovery
|
|
|
+
|
|
|
+Enable mDNS to make your server discoverable on the local network:
|
|
|
+
|
|
|
+```bash
|
|
|
+opencode web --mdns
|
|
|
+```
|
|
|
+
|
|
|
+This automatically sets the hostname to `0.0.0.0` and advertises the server as `opencode.local`.
|
|
|
+
|
|
|
+### CORS
|
|
|
+
|
|
|
+To allow additional domains for CORS (useful for custom frontends):
|
|
|
+
|
|
|
+```bash
|
|
|
+opencode web --cors https://example.com
|
|
|
+```
|
|
|
+
|
|
|
+### Authentication
|
|
|
+
|
|
|
+To protect access, set a password using the `OPENCODE_SERVER_PASSWORD` environment variable:
|
|
|
+
|
|
|
+```bash
|
|
|
+OPENCODE_SERVER_PASSWORD=secret opencode web
|
|
|
+```
|
|
|
+
|
|
|
+The username defaults to `opencode` but can be changed with `OPENCODE_SERVER_USERNAME`.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Using the Web Interface
|
|
|
+
|
|
|
+Once started, the web interface provides access to your OpenCode sessions.
|
|
|
+
|
|
|
+### Sessions
|
|
|
+
|
|
|
+View and manage your sessions from the homepage. You can see active sessions and start new ones.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### Server Status
|
|
|
+
|
|
|
+Click "See Servers" to view connected servers and their status.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Attaching a Terminal
|
|
|
+
|
|
|
+You can attach a terminal TUI to a running web server:
|
|
|
+
|
|
|
+```bash
|
|
|
+# Start the web server
|
|
|
+opencode web --port 4096
|
|
|
+
|
|
|
+# In another terminal, attach the TUI
|
|
|
+opencode attach http://localhost:4096
|
|
|
+```
|
|
|
+
|
|
|
+This allows you to use both the web interface and terminal simultaneously, sharing the same sessions and state.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Config File
|
|
|
+
|
|
|
+You can also configure server settings in your `opencode.json` config file:
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "server": {
|
|
|
+ "port": 4096,
|
|
|
+ "hostname": "0.0.0.0",
|
|
|
+ "mdns": true,
|
|
|
+ "cors": ["https://example.com"]
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+Command line flags take precedence over config file settings.
|