~/dimslaev main β€Ί ls writing/
about
software engineer @ infomaniak
focus
llms Β· agents Β· rag Β· data pipelines
stack
typescript Β· node.js Β· python
tools
claude code Β· opencode Β· tmux
now
building agentique.ch, a platform for ai news
links
github Β· linkedin
writing/
~/dimslaev main β€Ί cat writing/tmux-is-awesome.md
cd ..

tmux is awesome

2026-08-30 Β· note

i recently started using tmux β€” a terminal multiplexer that splits a single terminal into multiple sessions, each with its own windows, and each window splittable into panes. it’s awesome. one tip before diving in: if you’re on mac, run it inside iterm2 rather than the default terminal app.

for me, still fairly new to it, the win is opening a window per project with a single command β€” hub. it kills any existing projects session and rebuilds tmux from scratch, each window already cd’d into the right directory:

hub() {
  local s="projects"
  tmux has-session -t "$s" 2>/dev/null && tmux kill-session -t "$s"

  tmux set-option -g allow-rename off
  tmux set-option -g automatic-rename off
  tmux new-session -d -s "$s" -n "web-app" -c "$HOME/workspace/web-app"
  tmux new-window -t "$s" -n "design-system" -c "$HOME/workspace/design-system"
  tmux new-window -t "$s" -n "api" -c "$HOME/workspace/api"
  tmux new-window -t "$s" -n "chat" -c "$HOME/workspace/chat"
  tmux select-window -t "$s:0"

  tmux attach -t "$s"
}

from there i switch between projects with prefix + n, and split each project’s window into panes that stay open all day β€” claude code, opencode, the dev server, a shell for git.

[projects]  0:web-app*  1:design-system  2:api  3:chat

β”Œβ”€β”€ claude ────────────┬── opencode ──────────┐
β”‚ refactoring the auth β”‚ ~ planning the v2    β”‚
β”‚ middleware…          β”‚   ingestion pass     β”‚
β”œβ”€β”€ dev server ────────┼── git ────────────────
β”‚ β–² ready on :3000     β”‚ $ git status         β”‚
β”‚ βœ“ compiled in 240ms  β”‚ βœ” nothing to commit  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

right now i’m also learning neovim, the goal being that i never have to leave the terminal at all. i still keep vs code open next to it for actual editing while the nvim muscle memory catches up. but even before that’s done β€” even with no real ide in the picture β€” this setup is a straight 100% productivity gain over what i had before. and it’s just so beautiful to look at.

if you want to get into tmux and neovim, typecraft.dev has a free course that’s genuinely excellent. πŸ‘