Initial commit: homelab infrastructure wiki
- Full Obsidian vault content - Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte) - Media stack documentation - Traefik HA setup - Automation scripts - Bachelor party planning
This commit is contained in:
338
homelab/raw/articles/opencode/docs/tui.md
Normal file
338
homelab/raw/articles/opencode/docs/tui.md
Normal file
@@ -0,0 +1,338 @@
|
||||
---
|
||||
type: agent-doc
|
||||
agent: OpenCode
|
||||
source: https://opencode.ai/docs/tui/
|
||||
scraped: 2026-04-28T21:02:07.042364+00:00
|
||||
content_hash: 8275383c
|
||||
---
|
||||
# TUI
|
||||
|
||||
Using the OpenCode terminal user interface.
|
||||
|
||||
OpenCode provides an interactive terminal interface or TUI for working on your projects with an LLM.
|
||||
|
||||
Running OpenCode starts the TUI for the current directory.
|
||||
|
||||
```
|
||||
opencode
|
||||
```
|
||||
|
||||
Or you can start it for a specific working directory.
|
||||
|
||||
```
|
||||
opencode /path/to/project
|
||||
```
|
||||
|
||||
Once youâre in the TUI, you can prompt it with a message.
|
||||
|
||||
```
|
||||
Give me a quick summary of the codebase.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## File references
|
||||
|
||||
You can reference files in your messages using @. This does a fuzzy file search in the current working directory.
|
||||
|
||||
```
|
||||
How is auth handled in @packages/functions/src/api/index.ts?
|
||||
```
|
||||
|
||||
The content of the file is added to the conversation automatically.
|
||||
|
||||
---
|
||||
|
||||
## Bash commands
|
||||
|
||||
Start a message with ! to run a shell command.
|
||||
|
||||
```
|
||||
!ls -la
|
||||
```
|
||||
|
||||
The output of the command is added to the conversation as a tool result.
|
||||
|
||||
---
|
||||
|
||||
## Commands
|
||||
|
||||
When using the OpenCode TUI, you can type / followed by a command name to quickly execute actions. For example:
|
||||
|
||||
```
|
||||
/help
|
||||
```
|
||||
|
||||
Most commands also have keybind using ctrl+x as the leader key, where ctrl+x is the default leader key. Learn more.
|
||||
|
||||
Here are all available slash commands:
|
||||
|
||||
---
|
||||
|
||||
### connect
|
||||
|
||||
Add a provider to OpenCode. Allows you to select from available providers and add their API keys.
|
||||
|
||||
```
|
||||
/connect
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### compact
|
||||
|
||||
Compact the current session. Alias: /summarize
|
||||
|
||||
```
|
||||
/compact
|
||||
```
|
||||
|
||||
Keybind: ctrl+x c
|
||||
|
||||
---
|
||||
|
||||
### details
|
||||
|
||||
Toggle tool execution details.
|
||||
|
||||
```
|
||||
/details
|
||||
```
|
||||
|
||||
Keybind: ctrl+x d
|
||||
|
||||
---
|
||||
|
||||
### editor
|
||||
|
||||
Open external editor for composing messages. Uses the editor set in your EDITOR environment variable. Learn more.
|
||||
|
||||
```
|
||||
/editor
|
||||
```
|
||||
|
||||
Keybind: ctrl+x e
|
||||
|
||||
---
|
||||
|
||||
### exit
|
||||
|
||||
Exit OpenCode. Aliases: /quit, /q
|
||||
|
||||
```
|
||||
/exit
|
||||
```
|
||||
|
||||
Keybind: ctrl+x q
|
||||
|
||||
---
|
||||
|
||||
### export
|
||||
|
||||
Export current conversation to Markdown and open in your default editor. Uses the editor set in your EDITOR environment variable. Learn more.
|
||||
|
||||
```
|
||||
/export
|
||||
```
|
||||
|
||||
Keybind: ctrl+x x
|
||||
|
||||
---
|
||||
|
||||
### help
|
||||
|
||||
Show the help dialog.
|
||||
|
||||
```
|
||||
/help
|
||||
```
|
||||
|
||||
Keybind: ctrl+x h
|
||||
|
||||
---
|
||||
|
||||
### init
|
||||
|
||||
Guided setup for creating or updating AGENTS.md. Learn more.
|
||||
|
||||
```
|
||||
/init
|
||||
```
|
||||
|
||||
Keybind: ctrl+x i
|
||||
|
||||
---
|
||||
|
||||
### models
|
||||
|
||||
List available models.
|
||||
|
||||
```
|
||||
/models
|
||||
```
|
||||
|
||||
Keybind: ctrl+x m
|
||||
|
||||
---
|
||||
|
||||
### new
|
||||
|
||||
Start a new session. Alias: /clear
|
||||
|
||||
```
|
||||
/new
|
||||
```
|
||||
|
||||
Keybind: ctrl+x n
|
||||
|
||||
---
|
||||
|
||||
### redo
|
||||
|
||||
Redo a previously undone message. Only available after using /undo.
|
||||
|
||||
Internally, this uses Git to manage the file changes. So your project needs to be a Git repository.
|
||||
|
||||
```
|
||||
/redo
|
||||
```
|
||||
|
||||
Keybind: ctrl+x r
|
||||
|
||||
---
|
||||
|
||||
### sessions
|
||||
|
||||
List and switch between sessions. Aliases: /resume, /continue
|
||||
|
||||
```
|
||||
/sessions
|
||||
```
|
||||
|
||||
Keybind: ctrl+x l
|
||||
|
||||
---
|
||||
|
||||
### share
|
||||
|
||||
Share current session. Learn more.
|
||||
|
||||
```
|
||||
/share
|
||||
```
|
||||
|
||||
Keybind: ctrl+x s
|
||||
|
||||
---
|
||||
|
||||
### themes
|
||||
|
||||
List available themes.
|
||||
|
||||
```
|
||||
/themes
|
||||
```
|
||||
|
||||
Keybind: ctrl+x t
|
||||
|
||||
---
|
||||
|
||||
### thinking
|
||||
|
||||
Toggle the visibility of thinking/reasoning blocks in the conversation. When enabled, you can see the modelâs reasoning process for models that support extended thinking.
|
||||
|
||||
```
|
||||
/thinking
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### undo
|
||||
|
||||
Undo last message in the conversation. Removes the most recent user message, all subsequent responses, and any file changes.
|
||||
|
||||
Internally, this uses Git to manage the file changes. So your project needs to be a Git repository.
|
||||
|
||||
```
|
||||
/undo
|
||||
```
|
||||
|
||||
Keybind: ctrl+x u
|
||||
|
||||
---
|
||||
|
||||
### unshare
|
||||
|
||||
Unshare current session. Learn more.
|
||||
|
||||
```
|
||||
/unshare
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Editor setup
|
||||
|
||||
Both the /editor and /export commands use the editor specified in your EDITOR environment variable.
|
||||
|
||||
- Linux/macOS
|
||||
- Windows (CMD)
|
||||
- Windows (PowerShell)
|
||||
|
||||
```
|
||||
# Example for nano or vimexport EDITOR=nanoexport EDITOR=vim
|
||||
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --waitexport EDITOR="code --wait"
|
||||
```
|
||||
|
||||
To make it permanent, add this to your shell profile; ~/.bashrc, ~/.zshrc, etc.
|
||||
|
||||
Popular editor options include:
|
||||
|
||||
- code - Visual Studio Code
|
||||
- cursor - Cursor
|
||||
- windsurf - Windsurf
|
||||
- nvim - Neovim editor
|
||||
- vim - Vim editor
|
||||
- nano - Nano editor
|
||||
- notepad - Windows Notepad
|
||||
- subl - Sublime Text
|
||||
|
||||
Some editors need command-line arguments to run in blocking mode. The --wait flag makes the editor process block until closed.
|
||||
|
||||
---
|
||||
|
||||
## Configure
|
||||
|
||||
You can customize TUI behavior through tui.json (or tui.jsonc).
|
||||
|
||||
```
|
||||
{ "$schema": "https://opencode.ai/tui.json", "theme": "opencode", "keybinds": { "leader": "ctrl+x" }, "scroll_speed": 3, "scroll_acceleration": { "enabled": true }, "diff_style": "auto", "mouse": true}
|
||||
```
|
||||
|
||||
This is separate from opencode.json, which configures server/runtime behavior.
|
||||
|
||||
### Options
|
||||
|
||||
- theme - Sets your UI theme. Learn more.
|
||||
- keybinds - Customizes keyboard shortcuts. Learn more.
|
||||
- scroll_acceleration.enabled - Enable macOS-style scroll acceleration for smooth, natural scrolling. When enabled, scroll speed increases with rapid scrolling gestures and stays precise for slower movements. This setting takes precedence over scroll_speed and overrides it when enabled.
|
||||
- scroll_speed - Controls how fast the TUI scrolls when using scroll commands (minimum: 0.001, supports decimal values). Defaults to 3. Note: This is ignored if scroll_acceleration.enabled is set to true.
|
||||
- diff_style - Controls diff rendering. "auto" adapts to terminal width, "stacked" always shows a single-column layout.
|
||||
- mouse - Enable or disable mouse capture in the TUI (default: true). When disabled, the terminalâs native mouse selection/scrolling behavior is preserved.
|
||||
|
||||
Use OPENCODE_TUI_CONFIG to load a custom TUI config path.
|
||||
|
||||
---
|
||||
|
||||
## Customization
|
||||
|
||||
You can customize various aspects of the TUI view using the command palette (ctrl+x h or /help). These settings persist across restarts.
|
||||
|
||||
---
|
||||
|
||||
#### Username display
|
||||
|
||||
Toggle whether your username appears in chat messages. Access this through:
|
||||
|
||||
- Command palette: Search for âusernameâ or âhide usernameâ
|
||||
- The setting persists automatically and will be remembered across TUI sessions
|
||||
Reference in New Issue
Block a user