AI coding agents like OpenCode are powerful because they can read files, edit code, run commands, install packages, and access the internet. That also means you should think about what happens if the agent makes a mistake or executes something you didn't expect. Start with OpenCode permissions For a basic setup, use OpenCode's permission system: { "$schema": "https://opencode.ai/config.json", "permission": { "edit": "ask", "bash": "ask", "webfetch": "ask", "external_directory": "deny" } } This keeps OpenCode interactive instead of giving it unrestricted control. Don't give it your entire home directory Your home directory may contain sensitive files: ~/.ssh/ ~/.aws/ ~/.config/ .env Run OpenCode from the project it actually needs instead of giving it access to your whole $HOME . Use Bubblewrap for stronger isolation If OpenCode needs...
I've been using an i3 + Alacritty + Vim setup for a while, and recently spent some time getting my tmux workflow organized again. My setup is fairly simple: i3 └── Alacritty └── tmux ├── Vim ├── shell ├── SSH └── other terminal work tmux fits nicely into this setup because i3 handles the graphical windows while tmux handles the terminal environment. tmux windows I mostly use the standard tmux prefix: Ctrl-b followed by a command. Some of the shortcuts I use regularly are: Ctrl-b n next window Ctrl-b p previous window Ctrl-b l last window Ctrl-b c create a window Ctrl-b z zoom the current pane Ctrl-b d detach One small detail worth remembering is that these are two-key sequences , not simultaneous combinations. For example: Ctrl-b release z zooms the current pane. tmux sessions The session functionality is particularly useful when working with several terminal environments. Running: tmux ls shows ...