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 1What it actually is, and what you need

  1. 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.

  2. 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 2Making the agent yours

  1. 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.

  2. 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 3Making the agent always-on

  1. 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.

  2. 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.

  3. 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 4Making the agent useful

  1. 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.

  2. 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 5Going further

  1. 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.

  2. 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.