Claude Code: How I Use It

How I currently use Claude Code. This is a living document that evolves with my workflow.

Environment

I use cmux. I used to use bare Ghostty splits (⌘+D / ⌘+⇧+D), and before that tmux (see tmux + Neovim setup). My ranking: cmux > bare Ghostty > Ghostty + tmux. cmux is built on top of Ghostty, so I still get its speed and native macOS integration. Bare Ghostty also had an annoying tab-naming issue: since each tab is a project, I want stable names, but Ghostty changes the tab title based on whatever is running in the focused split. cmux gives me a sidebar for project-based organization (similar to the Codex app) with stable naming, while keeping things lightweight. Its split and multi-tab logic feels more natural: tabs are created within a split rather than splits being tied to a single tab, which better matches how CC workflows branch out.

My default layout is two panes side by side — Claude Code on the left, Neovim on the right. I split further as needed but try to return to this two-pane setup. Neovim is the right fit here for the same reason as Ghostty: snappy and versatile. You can quickly move around, explore files, and make edits while CC works in the other pane. I sometimes run watch scripts (e.g., auto-compile, file sync) in a tiny extra pane.

Usually I have several tabs open (one for each project) with each tab having 2+ panes.

CLAUDE.md setup

Three layers: - Global (~/.claude/CLAUDE.md): Python/uv preferences, wiki/blog paths, project tracking conventions, academic writing style - Project (CLAUDE.md): repo-specific instructions, commands, code style

Custom skills

I keep a small set of research-oriented skills. They include:

Plus the Anthropic document-skills plugin for PDF, PPTX, DOCX, etc.

Custom agents

My custom agents include:

Custom commands