IDE Integration
opencode integrates with your editor and IDE through several mechanisms -- from the $EDITOR environment variable for prompt composition, to LSP for code intelligence, to plugins for deeper integration.
Editor Fundamentals
The $EDITOR Environment Variable
Many opencode features rely on the EDITOR environment variable:
/editorcommand -- opens your current message in $EDITOR for composing complex prompts/exportcommand -- opens the session transcript in $EDITOR for saving
Set EDITOR in your shell profile:
export EDITOR="code --wait" # VS Code
export EDITOR="cursor --wait" # Cursor
export EDITOR="windsurf --wait" # Windsurf
export EDITOR="nvim" # Neovim
export EDITOR="vim" # Vim
export EDITOR="nano" # Nano
export EDITOR="subl -n -w" # Sublime Text
Terminal Editors
Terminal-based editors work without the --wait flag because they run in the foreground by nature:
- Neovim (
nvim) -- modern Vim fork with LSP support - Vim (
vim) -- classic modal editor - Nano (
nano) -- simple, beginner-friendly editor - Helix (
hx) -- modern modal editor with built-in LSP - Kakoune (
kak) -- modal editor with multiple selections - Emacs (
emacs -nw) -- terminal Emacs (non-windowed) - Micro (
micro) -- modern terminal editor with familiar keybinds
Pair opencode with tmux for a powerful terminal-based IDE workflow with split panes.
VS Code
CLI Workflow
Use VS Code as your $EDITOR:
export EDITOR="code --wait"
Now when you run /editor in opencode's TUI, VS Code opens with your prompt text. Write your prompt, save the file, close the tab, and opencode sends the content.
Inline Code Assistance
While working in VS Code, you can:
- Keep opencode running in a split terminal (Ctrl+`)
- Use
@file references to bring editor files into context - Use
!commands to run VS Code terminal tasks - View diffs from opencode's changes in VS Code's source control panel
VS Code Extension
The opencode VS Code extension provides deeper integration:
- Chat panel within VS Code
- Inline code suggestions
- File-level operations from the editor context menu
- Direct access to opencode commands
Install it from the VS Code Marketplace.
Cursor
Cursor is an AI-first IDE built on VS Code. Use it with opencode:
export EDITOR="cursor --wait"
Cursor's AI features and opencode can complement each other:
- Use Cursor's inline editing for quick changes
- Use opencode for complex, multi-file tasks
- Reference Cursor's AI output in opencode conversations
Windsurf
Windsurf is another AI-native IDE. Integration:
export EDITOR="windsurf --wait"
Neovim
Neovim integrates naturally with opencode since both run in the terminal.
Basic Setup
export EDITOR="nvim"
Split Layout
Run opencode and Neovim side by side using tmux:
# In tmux
tmux split-window -h
# Left pane: nvim
# Right pane: opencode
Neovim Plugin
For deeper integration, consider using the opencode Neovim plugin (if available) or the generic plugin system described below.
Tmux Integration
tmux pairs exceptionally well with opencode:
# Create a session with opencode
tmux new-session -s opencode 'opencode'
# Split vertically for editor
tmux split-window -h 'nvim'
# Create a dedicated window for shell commands
tmux new-window 'bash'
Attach opencode to specific tmux panes for ! command execution:
{
"tools": {
"bash": {
"tmux": {
"session": "opencode",
"window": "shell",
"pane": 0
}
}
}
}
What's Next
- Terminal UI -- TUI commands and keybinds
- CLI Usage -- Non-interactive mode and scripting
- Integrations -- MCP, LSP, GitHub, GitLab
- Configuration -- LSP and plugin configuration