opencode-statuslineOpenCode TUI plugin that displays project and session status in the Sidebar
0
190
38 in 7 days
32.6
Multi-signal model
1 month ago
2026-07-18
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-statusline@2.0.4"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-statusline@2.0.4"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-statuslineopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
OpenCode TUI plugin that displays configurable project and session status in the Sidebar.
▼ Status · opencode
● Session idle
🌿 main
📝 +42 ~17
▶ 📘 add-auth
▶ 📘 fix-login
✓ Tasks 5/7
All OpenSpec changes are listed. Expand a row to see its artifact and task-progress entries.
Installation
// ~/.config/opencode/opencode.jsonc
{
"plugin": ["opencode-statusline@latest"]
}
Configuration
Create ~/.config/opencode/sidebar.json:
{
"items": [
{ "type": "custom", "command": "basename \"$(pwd)\"", "format": "📁 {output}" },
{ "type": "git-branch", "format": "🌿 {branch}" },
{ "type": "git-diff", "format": "📝 +{added} ~{deleted}" },
{ "type": "openspec", "format": "{status}" }
],
"refreshInterval": 500,
"periodicInterval": 3000
}
Status items
| type | description | format placeholders |
|---|---|---|
git-branch |
Current git branch | {branch} |
git-diff |
Unstaged added/deleted lines | {added}, {deleted} |
openspec |
OpenSpec change progress | {status} |
custom |
Arbitrary shell command | {output} |
Each item supports format (template with {key} placeholders) and maxLength (truncation).
Options
| option | default | description |
|---|---|---|
refreshInterval |
500 |
Debounce interval in ms after OpenCode events |
periodicInterval |
3000 |
Fallback refresh interval in ms (minimum 500) |
Sidebar behavior
The panel is registered in sidebar_content. It refreshes after message, task, session, file, and Git-branch events, with a 3-second fallback refresh. Click the title to collapse it; click Refresh to request an update. The collapsed state is stored with OpenCode's plugin KV store.
The old ~/.config/opencode/statusline.json remains supported as a migration fallback. No tmux setup or temporary status files are required.
License
MIT