RM
Rebuild · 6 min read

My Agentic Coding Starter Kit

Rebuilt my personal workspace from scratch. No dotfiles, no setup scripts. The complexity moved out of the config files and into the models.

#opencode#agents#dev-environment

I used to have a dotfiles repo and Macbook setup scripts: aliases, gitconfig, tmux conf, Homebrew bundles, the whole thing. Run one on a fresh machine, walk away, come back an hour later to everything installed. Overkill, honestly.

Both were relics of my IC years, two years out of date by the time I last touched them. I’d changed teams, companies, even countries. I told myself I’d update them eventually.

When I sat down to set up my personal machine from scratch, the old approach didn’t fit. I don’t even use a terminal the same way anymore.

The old way

My dotfiles repo was built for a different era. It assumed:

  • A stable toolset and a terminal-first workflow
  • Time to maintain config files as a craft

None of those hold anymore. New tools appear weekly. The workflow is prompt-first, not terminal-first. And I don’t have the time or interest to maintain a perfect zsh prompt when I spend most of my day talking to an agent.

The Macbook setup scripts had the same problem. They automated installing things I don’t even use now. They didn’t know about Ollama, or opencode, or any of the agentic tools I actually use now.

The new philosophy

The goal was minimal. Agent-first. Don’t script tools upfront. Install opencode and Ollama, then ask an agent when you need something else.

Shell stays boring

A sensible prompt, a few aliases, tmux for session management. No fancy prompt frameworks, no plugin managers, no 500-line zshrc.

Agents know the stack

If I need a tool, I ask the agent to install it. I don't script it upfront.

tmux is the bedrock

Sessions, not windows. Everything runs in a shared context.

Local models are the default

Ollama serves models locally. No API keys needed for everyday work. Cloud models are for when the task demands it.

Quickstart

Fresh Macbook? Run this:

# Homebrew (for system packages)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Core tools
brew install tmux node

# Ollama — local models (macOS)
brew install ollama
ollama pull qwen2.5-coder:7b
ollama pull deepseek-coder-v2:16b
ollama pull llama3.2:3b

# opencode — main harness
curl -fsSL https://opencode.ai/install | bash

# Claude Code — heavy tasks (requires node, installed above)
npm install -g @anthropic-ai/claude-code

# Paseo — run agents from anywhere (requires node, installed above)
npm install -g @getpaseo/cli

Then start the Paseo daemon and keep the machine awake — both in dedicated tmux panes:

paseo daemon start
# In a separate pane — dies if you run it backgrounded in a plain terminal
caffeinate -dims

That’s the whole thing. No dotfiles repo. No setup scripts. You’re ready.

The external monitor setup

workspace — tmux pane 1 Claude Code heavy lifts complex reasoning pane 2 opencode free LLMs · daily driver Ollama · local inference pane 3 vim diffs · manual edits 1:workspace * prefix+d to detach

tmux

Three panes. One monitor. One session. That shared context is what makes the whole thing click.

  • Pane 1: Claude Code. Heavy lifting. Complex refactors, architecture discussions, and writing the first draft of something new.
  • Pane 2: opencode. My daily driver for free models. I route queries through Ollama’s local models for quick questions, code review, and anything where a local model is good enough.
  • Pane 3: vim. Side-by-side with opencode so I can see diffs, make manual adjustments, and keep a tight feedback loop.

All three panes live under the same tmux session. I can copy-paste between them, detach without losing state, and come back to find my workspace exactly where I left it.

My laptop is separate. I use it for browsing and checking output. If I’m building a web app, that’s where I open the preview.

opencode

opencode is my main harness. It connects to Ollama’s local models for everyday work: no API key rotation, no rate limits, no cost. Just a free model that’s good enough for most tasks.

Claude Code

When local models aren’t enough, I switch to Claude Code. Complex refactors, architecture discussions, and first drafts of something new. Different tasks need different models.

That’s just how it works.

For personal use, the $20 Pro plan covers it. No per-token billing. I use it for what local models can’t do.

Ollama

Running locally on my machine. Three models, each for a different weight class:

ModelUse caseHardware
qwen2.5-coder:7bDaily driver for codeCPU only, runs on any Mac
deepseek-coder-v2:16bComplex refactors, MoE architecture16GB+ RAM or Apple Silicon
llama3.2:3bQuick reviews, inline suggestionsLightweight, minimal overhead

All three are slower than Claude and miss things it would catch. For most day-to-day work, they’re good enough.

If I need something bigger, I reach for Claude.

Paseo

Paseo is for when I’m not at my desk. It runs a daemon on my personal machine that lets me check in from my phone when I need to walk the dog or step away. Same agents, same machine, just remote.

It only runs on my personal PC. I work in fintech. Everything on the work machine goes through a VPN to reach the intranet, and Paseo hasn’t been cleared from a security standpoint. Paseo just hasn’t been cleared for the work environment. This setup is for personal use only.

The caffeinate command keeps the machine awake so agents don’t get interrupted when I step away. No screen needed. No login needed. Just a running daemon and a phone in my pocket.

The config

My entire machine setup fits in a few files:

  • .tmux.conf: Session bindings, panel navigation, copy mode
  • .zshrc: Prompt, a handful of aliases, PATH management
  • .gitconfig: Name, email, a couple of aliases

No dotfiles manager. No plugin framework. No install script.

If I need something, I install it when I need it. The agents handle the rest.

LOCAL · DEFAULT CLOUD · HEAVY REMOTE ACCESS opencode harness Ollama local inference QC qwen2.5-coder best free coder · 7B DV2 deepseek-coder-v2 MoE · complex refactors L3 llama3.2 lightweight · quick Claude Code cloud · heavy Paseo remote · mobile · daemon

What changed

My old setup assumed I’d use the same tools forever. Script everything once, never think about it again. That assumption aged poorly.

The new setup assumes nothing. Lose your machine? Install opencode and Ollama, you’re done. Everything else is just files I can recreate in five minutes.

I spent years curating dotfiles and arguing about terminal emulators. The agentic setup doesn’t need that. The complexity just moved. It’s in the models now, not in my config files.


This setup was accurate at time of writing, which is about 20 minutes ago in internet years. By the time you read this, there’s probably already a better way to do all of it. I’ll write a part 2 when the dust settles, or when someone tweets something that makes me rethink everything, whichever comes first.