The Stack I Use
The CLI tools, Mac apps, and browser extensions I use every day, organised by category.
Here's my current setup. Most of it helps me run AI coding agents: keeping them alive, keeping them connected, and giving them the right context. These are the tools I reach for every day.
CLI Tools
Shell
Oh My Zsh. Adds themes, plugins, and a nicer prompt to zsh.
Terminal Multiplexing
tmux. The reason I can kick off an agent run on a remote server, close my laptop, and come back hours later to a session that's been running the whole time. SSH into any machine, attach to the session, and the output, panes, and working directory are exactly where I left them. screen technically does some of this, but it feels like it was designed in 1987 and nobody told it the world moved on. tmux is what you actually want.
AI Coding
Claude Code and
Codex. I run both and keep each within reach.
Media Processing
ffmpeg. Handles the video and audio jobs nothing else quite covers. My coding agents can drive it too, which saves me remembering the flags.
Mac Desktop Apps
Browser
Brave. Blocks ads by default, runs Chrome extensions, and gets out of the way.
Terminal
Ghostty. A fast, native Mac terminal. GPU-accelerated and minimal.
WezTerm. A terminal emulator and multiplexer with more configuration than I need most days, which is exactly why it is useful when I do need it. Great when I want panes, tabs, SSH, fonts, colours, and terminal behaviour to be explicit instead of vibes taped to defaults.
Notes & Research
Obsidian. Where I do research, but not alone. Claude generates leads and surfaces connections; Obsidian stores the results as linked notes I can navigate later.
Communication
Discord. For communities and async conversations. Also where I run Hermes, a personal assistant bot I've been building out.
AI & Local Models
LM Studio. Runs open-source LLMs locally for experiments, offline use, and work I don't want leaving the machine.
Claude. The desktop app I use for longer conversations, document work, and research before moving into Claude Code for implementation.
Codex. OpenAI's coding agent in desktop form. I keep it in rotation with Claude.
Hermes Agent. The desktop app for running a persistent personal agent. I use it for memory, tasks, chat connections, and long-running work that a coding CLI isn't built to own.
Coding
Cursor. My everyday code editor. It's where I live in the codebase, including quick .env edits and anything else that needs direct file access.
Virtualisation
UTM. macOS virtualisation for sandboxed environments. I use it to contain automated agents running riskier tasks.
Networking
Tailscale. Makes all my devices reachable by name, so I don't have to manage IP addresses when agents run across several machines.
Productivity & System
Amphetamine. Keeps the MacBook awake with the lid closed so an agent doesn't stop halfway through a run.
CodexBar. Tracks Codex and Claude quota usage and reset times in the menu bar. Small app, saves a lot of unnecessary tab-switching.
Spokenly. System-wide dictation for prompts, notes, messages, and anything else where typing is the bottleneck. I use the free local Parakeet setup, so it works offline and does not turn every half-formed sentence into a tiny cloud excursion.
Magnet. Window snapping via keyboard shortcuts. Shouldn't require a third-party app on macOS in 2026, but here we are.
Chrome Extensions
Productivity
GoFullPage. Takes full-page screenshots with one click, scrolling and stitching automatically. Useful for capturing designs, documenting references, or sending someone a complete view of a page.