← → or h l to move · f fullscreen · esc exit

Chiang Mai Claude Code Meetup · The Kannas · July 24, 2026

Claude Code After Hours

How I Use Claude pt. 1

Nick Frith, Section 9

ROADMAP

Tonight: one-man company

03The steps of AI adoptionNORTH STAR04What I use every dayCOCKPIT05Harness CalculusSURFACES06One repo runs the companyGHOST07Company StackSTACK08Every chat app, one inboxBEEPER09Auto mode is mandatoryAUTO MODE10Tag the company into any chat@GHOST11Everyone gets the agentSECURITY12Ghost tag architectureUNDER THE HOOD13Backlog SystemBACKLOG14Capture → dispatchDISPATCH15Fable said: keep a daily error logTHE IMPETUS16Every work session is a recordSESSIONS17One command, every social platform/POST18It works while you sleepROUTINES19The Friday-night deck routineLOTF20PhilosophyPHILOSOPHY21TIP: Catch yourself reaching for the mouseTIP22Your moveSTART HERE

Where this is heading

The steps of AI adoption

My current north star.

  • Boris Cherny — creator of Claude Code — published the ladder in July 2026
  • Section 9 is sometimes step 1, sometimes step 2
  • Our top priority is getting to step 3
STEP 0
Gated
AI locked behind approvals
0 AGENTS
STEP 1
Assisted
one supervised session
WE ARE HERE ↕
STEP 2
Parallel
5–10 agents on their own worktrees · auto mode · automated review
WE ARE HERE ↕
STEP 3
Supervised autonomy
proactive background work runs continuously
~100 AGENTS
STEP 4
Scaled automation
whole classes of work, automated end to end
FLEETS

Claude Code · the daily cockpit

What I use every day

All Claude services — open all day, every day.

  • Anything browser-related runs through the Claude Code desktop app
  • The CLI is local background-agent management
  • Cloud is for the phone and the automated agents
Claude Code Desktop — home screen with session history and usage statsClaude Code in the terminal — the same agents as a live job listThe phone view — the same sessions in the Claude Code mobile app

Surfaces · the design rule

Harness Calculus

Conceptually, we think about all surfaces.

  • In practice, this is hard
  • Never give up thinking this way
  • Always be learning
LOCALCLOUDPhonekick off · steer · approveCLIthe daily driverDesktoploops · dispatch · connectorsCoworkdocuments · analysisOther harnessanything that can run a Claude agentone system — the repo, the skills, the memoryevery door opens into the same buildingSAME INTERFACE · WHEREVER YOU ARE

The meta-repo · Ghost

One repo runs the company

Managing second-brain data is extremely hard.

  • Optimizing for security, speed, and flexibility
  • Context at my fingertips
  • Security is managed through submodules
THE META-REPOghost/one git surface for a whole companysection9/the operational brain — doctrine, research, meetingsbacklog/every piece of work, as markdown — items · arcs · sessionscontent/what crosses the veil — public decks, lab findingsstudio/content production — sources in git, media in R2personal/the operator’s half — thoughts · health · travelapps/first-party appspackages/shared packages — one TypeScript workspacedocs/system docs — the fuller companion to CLAUDE.mddotfiles/the environment, versioned — shell · terminal · tools.claude/agents, skills, hooks — how Claude behaves heresubmodulespointers, not copies — each one its own reponf-*(8)open-source plugins + marketplacess9-*(6)the company’s own plugins — ops · marketing · engagementsclient-*(10)one mount per client engagementg9(1)a tool we build — worktree-first git TUIlives in this repoa pointer to another repo

The meta-repo · what runs from here

Company Stack

Judging criteria:

  • Security: looking for enterprise certs + subprocessors list
  • Speed: agent-first — can be used without opening a browser
  • Purpose-specific systems that we don’t want to roll our own
THE ENGINEClaudeevery task in the company runs through itORCHESTRATION — THE LOGIC LIVES HEREClaude CodeCLI + Desktop — the handsghostthe company repo — the memorySYSTEMS OF RECORD — RENTED, EXPORTABLEAttioCRMGoogle Workspaceemail · docs · calendarSlackclient commsBeeperWhatsApp + TelegramFathomcall recorderPandaDoccontracts + e-signStripepaymentsQuickBooksaccountingGitHubcodeCloudflarehosting · CDN · workersNeonPostgresCalendlyschedulingthey store — they never thinkAI OBSERVABILITYSigNozOTel — telemetry from every harnessLOCAL — LEAVES THE MACHINE NEVER1Passwordevery secret, injected at runtimewhisper.cppon-device transcription — zero subprocessorLOGIC IN THE REPO · NEVER IN A VENDOR’S BUILDER

@ghost · the transport

Every chat app, one inbox

Centralized comms are important for throughput.

  • By default, we never poll — push-based only
  • Claude does the reading and writing
  • All outgoing messages must be approved by me
WhatsAppTelegramLINEMessengerInstagramSignalLinkedIn···Beeperone inbox — every network, bridgedBeeper MCPemailGmail connectorClaudereads · drafts · sends on approvalghostthe company repo — memory + rulesEVERY CHANNEL IN · ONE SYSTEM UNDERNEATH

The prerequisite

Auto mode is mandatory

None of this is possible without auto mode.

  • Use auto mode
  • Use auto mode
  • Use auto mode
AUTO
MODE

@ghost · the tag

Tag the company into any chat

Type “@ghost” in any Beeper chat. Ghost picks up the task.

  • Multiplayer AI — but budget
  • Certain security settings allow collaborators to dispatch work in the chat
  • Same idea as Anthropic’s @Claude tag
@ghost research dispatch — a long-form-content question in a group chat, acked, then answered with a full per-platform report@ghost picking up a YouTube-extract task from a shared tweet — ack in the thread, transcript runs locallyA collaborator tags @ghost from WhatsApp to fix sign-up-form wording — on it, then done, reported back in the thread (redacted)

@ghost · trust

Everyone gets the agent

Security is a big deal.

  • Allowed chats are whitelisted
  • Further security permissions exist for allowed chats
  • Scary to operate
OPERATORapprovals live hereALLOWLISTED CHATSthe agent acts + reportsEVERYONE ELSE — NOT ALLOWEDnot activated — invisible to @ghostCAPABILITY WIDENS AS EACH LOOP EARNS TRUST

@ghost · under the hood

Ghost tag architecture

High-level view.

  • A tiny bun process, fired by launchd every minute
  • One dispatched session per chat — it stays warm and absorbs follow-ups
  • Everything runs on the workstation — no server anywhere
LOCAL MACHINEBeeperevery chat, bridged — local APIpolls every minute — “@ghost” in allowed chatsghost-tagbun watcher process — launchd, every minuteon a tag: dispatchclaude —bgone owner session per chat — works the taskack + [ghost]report, in-threadA CHAT MESSAGE IS THE WHOLE INTERFACE

The backlog · the belief

Backlog System

All work is tracked. If it isn’t in the backlog, it doesn’t exist.

  • One system, one ingestion route. From any surface.
  • Items carry their own state: what’s next, what’s blocked, what’s due
  • All of this captured in the file system
BACKLOG PLUGIN — A CLAUDE CODE PLUGINInitiativeArcArcGHOST itemGHOST itemGHOST itemGHOST itemsub-itemsub-itemsub-item(no sub-items — fine)CORE SKILLS/backlog-capture/backlog-inspect/backlog-manageINITIATIVE → ARC → ITEM → SUB-ITEM

The backlog · dispatch

Capture → dispatch

An item can be handed to a background agent with one command.

  • ”Work on GHOST-231” spins up a session that already knows the context
  • The item is the memory: every session it touched, logged on the record
  • Guardrails for operational context is hard
Hook systemcovers every variantITEM VARIANTS — THE TYPE FIELDappinfrapluginclients9-opspersonal-opsresearchprocess/backlog-dispatchANY VARIANT · ONE DISPATCH

The backlog · the impetus

Fable said: keep a daily error log

”Spend ten minutes every day deliberately writing down what you got wrong.”

  • Not journaling, not gratitude lists — an error log
  • I’d known I needed this for a long time — this answer got me moving
  • The next slide is that habit, built into the system
Fable 5, asked for the ultimate unconventional daily habit: a daily error log — write down what you got wrong, what you predicted that didn't happen, where assumptions wasted effort

The backlog · sessions

Every work session is a record

Sessions open, checkpoint, and close on their own.

  • Begin: the session files itself and locks onto the backlog items it serves
  • Close: outcomes written back to the items — nothing evaporates when the window closes
  • My calendar shows what the COMPANY did, not what I remembered to log
A real week on the Ghost Sessions calendar — every work session filed as an event (sensitive entries redacted)
CORE SKILLS/beginSession/checkpointSession/closeSession

Surfaces · the worked example

One command, every social platform

”/post” — one line from ANY surface becomes a draft for X, LinkedIn, Threads, and the rest.

  • Every draft is checked against our publishing rules before it can ship — automatically
  • The queue lives server-side — start a post at the desk, approve it from the street
  • No platform tabs, no copy-paste — the system holds the keys, not the laptop
/post “shipped the new deck kit today…“the veil — publishing rules checknothing leaves the machine unevaluatedserver-side outboxoperator approves — from any deviceXLinkedInThreadsInstagramFacebookDRAFT ANYWHERE · APPROVE ANYWHERE · PUBLISH ONCE

Routines · while you sleep

It works while you sleep

DesktopCLI

Configure once — it runs on a schedule, a webhook, or an event.

  • The daily brief, the inbox triage, the new-ticket triage — no human needed to kick it off
  • You wake up to finished work and a summary of what happened
  • This is the employee model, not the chatbot model
A real routine: chase-watcher — Section 9's daily follow-up-cadence enforcer over client engagements, 6 AM daily, Attio + Gmail connectors, drafts and PRs only, every send operator-gated

Routines · one real run

The Friday-night deck routine

Every Friday at midnight, an agent builds Saturday’s AI-news deck — while I sleep.

  • Pulls the week’s saved bookmarks + researches the news window
  • Writes every source into the database, authors the slides, checks them against our publishing rules
  • Opens a pull request; Saturday morning the deck is live on the site
DATA SOURCESXLinkedInRedditHacker News···collectorsbookmark sync + weekly signal sweepthe databaseevery source filed, citableUPSTREAMbook the venue ·announce · Luma + MeetupFriday-night routineauthors the deck · checks the rules · opens a PRSaturday — deck is livemerged in the morning · presented at LotF that dayDOWNSTREAM — UNDER CONSTRUCTIONstream → recap → media gallery → follow-upsSOURCES IN · A PRESENTED DECK OUT

Routines · philosophy

Philosophy

Build your agent. Let your agent work for you.

The meta-repo · the mental model

TIP: Catch yourself reaching for the mouse

Every time you click through an app by hand, pause: why am I doing this?

  • If you can describe the task, you can delegate the task — Claude should be doing it
  • That one habit — noticing the clicks — is how a business becomes Claude-native
[ DENIED ][ DENIED ]manual.inputIF YOU CAN DESCRIBE IT · DELEGATE IT

Start here

Your move

  • Start a session with Fable
  • Tell Fable the thing you wish were automated — but don’t have guardrails for, because you don’t know how to build them
  • Execute
USE CLAUDE
TO AUTOMATE
YOUR LIFE

Where to next

QR code
0xnfrith.com/interface

All the channels, one page — plus these slides at 0xnfrith.com/events

✕ esc
1 / ·