Plainbuilt
All posts

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 logo 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 logo Claude Code and Codex logo Codex. I run both and keep each within reach.

Media Processing

ffmpeg logo 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 logo Brave. Blocks ads by default, runs Chrome extensions, and gets out of the way.

Terminal

Ghostty logo Ghostty. A fast, native Mac terminal. GPU-accelerated and minimal.

WezTerm logo 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 logo 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 logo 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 logo LM Studio. Runs open-source LLMs locally for experiments, offline use, and work I don't want leaving the machine.

Claude logo Claude. The desktop app I use for longer conversations, document work, and research before moving into Claude Code for implementation.

Codex logo Codex. OpenAI's coding agent in desktop form. I keep it in rotation with Claude.

Hermes Agent logo 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 logo 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 logo UTM. macOS virtualisation for sandboxed environments. I use it to contain automated agents running riskier tasks.

Networking

Tailscale logo 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 logo Amphetamine. Keeps the MacBook awake with the lid closed so an agent doesn't stop halfway through a run.

CodexBar logo CodexBar. Tracks Codex and Claude quota usage and reset times in the menu bar. Small app, saves a lot of unnecessary tab-switching.

Spokenly logo 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 logo 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 logo 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.