Skip to content

Development Workflow

Daily Flow

1. Open Terminal

Ghostty launches and automatically attaches to (or creates) the main tmux session.

2. Navigate to Project

Use the sesh picker or zoxide:

Brings up fzf with all known directories (from zoxide history and ~/dev tree). Select a directory to open it as a new tmux window.

z myproject    # Jump to frequently-used directory
dev            # cd to ~/git/github.com/swibrow/

3. Start Coding

Open the full dev layout:

Prefix + d

This opens an fzf picker, then creates:

+-------------------+----------+
|                   |  claude  |
|      nvim         +----------+
|                   |  shell   |
+-------------------+----------+

4. Work with Worktrees

For feature branches, use Worktrunk to create isolated worktrees:

wsc feature-name    # Create worktree + open Claude Code

Or via tmux:

  • ++prefix+t++ — Switch between worktrees
  • ++prefix+shift+t++ — Create a new worktree

5. Commit & Push

Worktrunk auto-generates commit messages using Claude Haiku:

git add -p          # Stage changes
gc                  # git commit (message generated by worktrunk)
gp                  # git push

6. Create PR

ghpr    # Open/create PR in GitHub

Session Management

Tmux Sessions

Action Keybinding
Pick session/directory ++prefix+f++
Switch windows ++prefix+shift+f++
Rename window ++prefix+period++
Open Claude pane ++prefix+shift+c++

Window Organization

Each project gets its own tmux window. The window name is auto-set to the directory basename.

Workspaces in Aerospace assign apps to screens:

  • Alt+F — Terminal (Ghostty)
  • Alt+D — Editor (VS Code/Cursor)
  • Alt+R — Browser

PostgreSQL for Local Dev

Quick database for development:

pg_up                    # Start PostgreSQL in Docker
pg_exec                  # Open psql shell
pg_backup . mydb . dump  # Backup
pg_down                  # Stop when done

Cheat Sheets

Look up any command:

Prefix + i

Opens an interactive picker for cht.sh — type a language or tool, then a query.