How it works
Pacenote runs on your Mac. It keeps a list of what people ask of you and hands each task to Claude
Code, Codex or opencode; Pace, if you turn it on, answers you in Slack. What it does is kept in
~/.pacenote.
The loop
Work reaches you in Slack threads and gets done in Claude Code, Codex or opencode. Each keeps its own history, so you paste the thread again, explain it again, and hunt for where you stopped. Pacenote keeps each task's history together on your Mac, whichever tool did the work, and on your other Mac too if you use two.
- AskedA Slack thread and its link
- On your listCollected into Todo, with a summary
- Picked upWith the thread and how related work ended
- Worked onYour sessions and the branch
- Wrapped upHow it ended, and a reply to send
Why the name: in rallying, the co-driver reads the pace notes so the driver can keep their eyes on the road. You drive. Pace reads the notes.
An answer, step by step
- You mention
@Pace. The mention reaches the app on your Mac over Slack's Socket Mode, a connection your Mac opens, or through your team's hub. - Pace checks that it is you, in a public channel, then reads the thread and its files.
- It runs
claudeorcodexon your Mac with read-only access to one folder, or in a Linux VM thrown away after the answer. - It strips its own secrets from the answer, replies in the thread, and records every step.
One answer, end to end
Slack Your workspace
Your Mac Pace, run by the app
Built-in sandbox pacenote-vm
On your Mac or in a sandbox
Pace runs the claude or codex CLI you are signed in to. On your Mac, the CLI gets
read-only access to one folder you choose, never your credential folders.
In the built-in sandbox, each answer runs in its own Linux VM, started with Apple's Containerization framework. The VM has no network device of its own, reaches only the domains you allow through a proxy in Pace, and is thrown away after the answer. There, diagrams and charts come back as images, and Pace can add, list or close your tasks. The sandbox needs macOS 15 or later.
The sandbox in detailYour Todo
Press Collect now and Claude Code reads Slack through your claude.ai Slack connector, or Codex through ChatGPT's Slack app, read-only, one taking over when the other is at its limit. You get a list of what people asked of you, by your @mention, the other names people call you, or a user group that means you, and of what you said you would do.
Anything it is unsure about waits under Maybe, and no message becomes a task twice. Collecting is off until you turn it on.
Your tasks in detailHanding a task to Claude Code, Codex or opencode
Continue in Claude Code, Codex or opencode opens a terminal session with the task, the thread, what Pace found there, and how related work ended last time, even when that work was done in another tool. Or the Claude app or the Codex app opens with all of it written in, for you to send. opencode, with no app to write it into, opens in the terminal.
A session you start yourself in a repository is told its open tasks from the start, and Todo shows the work as it happens. When it is done, the task closes with a note on how it ended and, if someone is waiting, a reply for you to send.
Moving between your Macs
Pair your Macs once, with no Slack app: click Add a Mac on one, choose From your other Mac in the other's first run (or Pair in its Settings > Macs, if it is set up already), check that both show the same six digits, and Allow. They find each other on your network, or by address over Tailscale.
Your Todo, your decisions, the work log, recaps and areas are the same on both, merged directly between them as they change. A session stays on the Mac it runs on, and the other one offers to start one of its own.
With your own Slack app, one of them holds Pace's connection to Slack: the one you're using. Lock it, put it to sleep, close its lid or leave it for five minutes, and the other one takes over. Use both, and Pace stays where it is. The next Mac connects before the last one lets go, so no mention is missed or answered twice. Macs set up with the same Slack app find each other with nothing to pair; a new one can take that app from the one you have, with Connect to your other Mac in Pace's setup.
The Macs know each other by a key: the one Add a Mac made, or one from the Slack app they share. They take connections only from your own networks, and Pace moves only between Macs of the same Slack app.
Your MacsTeammates and the hub
Pace answers only you. Anyone else who mentions it gets a note only they can see. Teammates each run their own Pace, on their own Mac and login.
A team can share one Slack app through a Pacenote hub, a small server of its own. The hub sends each mention to the Mac of the person who wrote it, where Pace answers with that person's login, and the Slack tokens stay on the hub. Nobody else has to create a Slack app.
That is the difference from an assistant a company adds to Slack: that one is set up by an admin and runs under the company's account. Pace is one you set up yourself, on your Mac, with your own plan.
One Slack app for the team, each mention answered on its owner's Mac
Slack Your workspace
Hub A Linux server of your team's
Teammates' Macs Their own Pace
mina's mention goes only to mina's Mac, and Pace answers in the thread with mina's own login.
Set up in four steps
- Create the Slack app from Pacenote's manifest, with Socket Mode. Moving your own app to the hub? Use its tokens.
- Copy one command in Settings > Messengers > Slack, under "No hub yet?": the address members will use and who can use it.
- Paste it on the server. It asks for the two tokens there, starts the hub with Docker and waits for it. Your Pace switches to it on its own.
- Teammates pair. Each enters the hub's address and sends the code Pacenote shows to
@Pacein Slack.
-
On your own network
http://10.0.0.5:8790Plain http works at a private address or a name only your network knows. The hub token and the threads then cross that network unencrypted.
-
Anywhere else
https://pacenote-hub.example.comThe hub listens on the server itself, and Caddy or another proxy in front serves it over HTTPS.
What the hub sees and keeps
- Sees, on the way
- Mentions, their threads and Pace's answers, as Slack's own servers do.
- Keeps
- The Slack app's tokens, and the paired Macs as hashes of their tokens.
- Never has
- Anyone's AI login, runs or Todo. Those stay on each Mac.
Also in Pacenote
-
Recap your day, week or month
A day as a standup, a week by area with what carries over, a month by where the work went. Copied as text, ready to post.
-
See the areas you work in
Pacenote sorts your tasks and your Claude Code and Codex sessions into the areas you contribute to. You correct what it gets wrong.
-
Let your AI tools look things up
Pacenote's MCP server lets Claude Code, Codex, opencode and other MCP clients read what Pace did and what is on your list. Off until you add it, in one click.
Try it on your Mac
brew tap ashon/tap
brew trust ashon/tap
brew install --cask pacenote