The Halsey Setup
Start here
Halsey is an AI Chief of Staff that runs 24/7 on a Mac Mini in my home office. It manages my time, surfaces information when I need it, drafts content, talks to me on Telegram, runs scheduled jobs in the background, coordinates with two other agents, and remembers what we’ve talked about across sessions.
I’m not a software engineer. I’m a VP of Operations who started building this in early 2026 because I was drowning in context-switching and wanted something that could keep my head clear. Halsey has been live for about three months. It runs without me touching it. It makes my life noticeably better.
This series is the playbook for building one yourself, ordered so each post builds on the previous one. None of the posts assume you’re an engineer; all of them assume you’re willing to copy-paste into a terminal and follow instructions carefully.
Part 1 — What it actually is, and what you need
- Claude Code 101 — The Actual Basics for Non-Engineers
The CLI tool that everything else is built on. What Claude Code is, why it’s different from chatting with Claude in a browser, what files it reads, and why “the file is the prompt” is the most important thing to understand before you build anything.
- Claude Code Starter Pack — The 30-Minute Bootstrap
The hands-on getting-started post. Install, log in, open a project, write a CLAUDE.md, see your first agent response. Thirty minutes if you have a Mac and an Anthropic account.
Part 2 — Making the agent yours
- The Question That Rebuilt My Agent
The single biggest unlock in my whole journey was rewriting CLAUDE.md to describe a person, not a task. This post is about why identity matters more than instructions and how to write yours.
- How I Built Persistent Memory Into My AI Agent
A stateless agent forgets you between sessions. A stateful one builds up understanding of you over time. This post covers the file structure, the categories (user, feedback, project, reference), and the mechanics of keeping memory current.
Part 3 — Making the agent always-on
- When Prompts Aren’t Enough — Building a Harness for Your Claude Code Agent
The harness is the persistence layer that turns Claude Code from a chat tool into something always-on. State across sessions, scheduled jobs, structured context. This post covers the architecture.
- Telegram in your pocket Coming soon
How the agent talks to you and you to it from anywhere — the bot, the bridge that polls for messages, and why this is the most underrated piece of the stack.
- Always-on infrastructure Coming soon
The Mac Mini, persistent terminal sessions, the system that auto-restarts the agent if it crashes. What “24/7” actually requires under the hood.
Part 4 — Making the agent useful
- Notion as your agent’s database Coming soon
Todos, calendar, dispatches, daily logs. How to wire Notion into your agent so it can read and write structured data without you babysitting.
- Scheduled jobs and the idle loop Coming soon
The agent doing work while you sleep. Cron, the idle cycle, what tasks are good fits, and what tasks aren’t.
Part 5 — Going further
- My AI agent is now runtime-swappable — and I’m not picking a side
How I built a one-command toggle to swap the agent between Claude Code and Codex CLI. The architecture, the bug that almost broke it, and why the inbox layer is the secret.
- Multi-agent dispatch Coming soon
For when one agent isn’t enough. How Halsey, COS (the code-writing agent), and APEX (the work-data agent) coordinate through a shared dispatch queue.
The posts marked with a link above are live. The ones marked “Coming soon” are next in the queue — I publish about one a week.
If you want every post as it lands, subscribe on Substack. If you want to skip ahead and ask questions, I’m @ai_carmichael on X.
If you build your own version, send me a link. I’ll boost it.