How I use coding agents day to day
A quick look at how I use Codex, Claude, Raycast, Ghostty, Alacritty, and a few config files without making the setup feel heavy.
I use coding agents a lot now, but my setup is not that deep.
Most days it is just Codex or Claude, a terminal, and a few rules I do not want to retype. I ask the agent to read the repo, make the change, run checks, and tell me what it could not verify.
That sounds small, which is kind of the point.
The config I keep around
My config is mostly guardrails. It tells the agent where it can work, when it should ask first, and which projects I trust.
approval_policy = "on-request"
sandbox_mode = "workspace-write"
That means the agent can edit the current repo, but it should ask before touching outside files, network stuff, cloud tools, or git actions that could get messy.
Same idea works for Codex and Claude. I want useful defaults, not a huge rules doc.
Agent notes and skills
I keep notes near the project for the stuff I care about: use git carefully, run checks, and avoid pretending something was tested when it was not.
Skills are smaller. I treat them like task recipes. A UI tweak can be quick. A larger feature gets a short plan or spec first. The point is to give the agent a pattern instead of making it guess.
Raycast and terminal setup
Raycast is my shortcut layer. I use it for opening apps, jumping to bookmarks, picking colors, counting words, keeping my machine awake, and killing processes when something gets stuck.
Ghostty is my main terminal right now. My config uses Berkeley Mono, fish integration, splits, a block cursor, no title bar, and a bright theme.
Alacritty is the backup that stays simple: Nerd Font, some padding, a theme import, and xterm-256color.
Most of the time Raycast gets me where I need to go, the terminal gets me into the repo, and then Codex or Claude helps with the edit.
The usual flow
Most sessions are boring on purpose:
flowchart LR
A[Ask for a change] --> B[Read the repo]
B --> C{Small?}
C -->|Yes| D[Edit]
C -->|No| E[Plan it]
E --> F[Check in]
F --> D
D --> G[Run checks]
G --> H[Summarize]
classDef start fill:#2563eb,stroke:#93c5fd,color:#ffffff;
classDef read fill:#475569,stroke:#94a3b8,color:#ffffff;
classDef decision fill:#e11d48,stroke:#fda4af,color:#ffffff;
classDef plan fill:#f97316,stroke:#fed7aa,color:#ffffff;
classDef action fill:#0891b2,stroke:#67e8f9,color:#ffffff;
classDef verify fill:#0f766e,stroke:#99f6e4,color:#ffffff;
class A start;
class B read;
class C decision;
class D action;
class E,F plan;
class G,H verify;
linkStyle 0 stroke:#60a5fa,stroke-width:2px;
linkStyle 1 stroke:#94a3b8,stroke-width:2px;
linkStyle 2 stroke:#fb7185,stroke-width:2px;
linkStyle 3 stroke:#fb923c,stroke-width:2px;
linkStyle 4 stroke:#fb923c,stroke-width:2px;
linkStyle 5 stroke:#fb923c,stroke-width:2px;
linkStyle 6 stroke:#22d3ee,stroke-width:2px;
linkStyle 7 stroke:#2dd4bf,stroke-width:2px;
For small changes, I want speed. For risky changes, I want checkpoints.
What I want from the agent
At the end, I care about the diff and the check result. The summary should tell me what changed and what was not verified.
The agent can move faster than me on chores. I still want to make the call.