HeadsDown tells your AI agent when you're around, when you'll be back, and what to do when you're not. Set up takes 2 minutes.
{
"status": "OFFLINE",
"returnsAt": "2026-04-03T09:00:00-06:00",
"action": "DEFER",
"reason": "Offline until 9 AM. Queued for morning digest."
}
{
"status": "OFFLINE",
"returnsAt": "2026-04-03T09:00:00-06:00",
"action": "DEFER",
"reason": "Offline until 9 AM. Queued for morning digest."
}
Three steps. Two minutes to set up. Your agent never has to guess again.
hd busy 2h
from your terminal. A tap on your phone. Or let Google Calendar handle it automatically. HeadsDown knows when you're online, in deep work, or gone for the night.
One call. Your agent gets back: are you online? When are you back? Who else on your team can help right now?
Back in 20 minutes? The agent waits. Gone until morning? It queues the question for your digest, routes to a teammate, or taps your watch for a 10-second yes/no. Your rules.
Most tasks don't need human input. But the ones that do, a migration that needs approval, an ambiguous spec that needs clarification, those are the ones that get stuck.
Your agent hits a decision point at 11pm. It has no idea you're asleep. It waits. You wake up at 6am and find it's been blocked for 7 hours on a question that would have taken 10 seconds to answer.
Multiply by every night, every meeting, every lunch break.
Your agent hits a decision point while you're in a 30-minute meeting. HeadsDown says: "back in 22 minutes." The agent parks the question, continues other work, and asks you the moment you return.
No notification needed. No wasted time.
Your agent hits a decision point at 11pm. HeadsDown says: "offline until 9am, Bob is online." The agent can queue it for your morning digest, route to Bob, or tap your watch for a 10-second approval.
Your rules. The agent follows them.
Native iOS and Android apps with push notifications, home screen widgets, Apple Watch and Wear OS complications, and lock screen quick actions. When your agent needs a yes/no at 2am, it taps your wrist. When you wake up, your morning digest is waiting.
The difference between a productive overnight agent and a stuck one isn't the model. It's whether the agent knows your schedule.
Your agent sends a task proposal. HeadsDown checks your availability and returns what to do next.
Deferred
mutation {
submitProposal(input: {
agentRef: "claude-sonnet:pi"
model: "claude-sonnet-4"
framework: "pi"
description: "Migrate all 12 database models to new schema"
estimatedFiles: 12
estimatedMinutes: 50
sourceRef: "proposal-migration-001"
}) {
decision reason proposalId evaluatedAt
}
}
{
"data": {
"submitProposal": {
"decision": "DEFERRED",
"reason": "Offline. 12-model migration deferred. Back at 9 AM MT.",
"proposalId": "e5f6g7h8",
"evaluatedAt": "2026-04-02T22:15:00Z"
}
}
}
The response is structured JSON. Not a prompt the agent can reinterpret. Not a suggestion it can hallucinate around. A decision: APPROVED, DEFERRED, or SCOPED.
Everything. No paywall. No "upgrade to unlock." Early access members get the full product while we're building it.
hd busy 2h
hd offline until 9am
hd online
Free during Early Access. Early users get a permanent discount when we launch pricing.
HeadsDown is an API. Anything that can make an HTTP request can check your availability before it interrupts you: agents, Slack bots, deploy pipelines, CI/CD, internal tools. Start with your agent. The rest follows.
Everything on your machine is open source and auditable. The engine behind the API is the product.
// The agent checks HeadsDown before every taskimport { GraphQLClient } from "graphql-request"; const client = new GraphQLClient(HEADSDOWN_URL, { headers: { authorization: `Bearer ${API_KEY}` },}); export async function beforeTask(task) { const { submitProposal } = await client.request(` mutation($input: ProposalInput!) { submitProposal(input: $input) { decision reason proposalId } } `, { input: { agentRef: task.agent, model: task.model, framework: "pi", description: task.description, estimatedFiles: task.files, estimatedMinutes: task.minutes, sourceRef: task.id, }, }); if (submitProposal.decision === "DEFERRED") { return task.defer(submitProposal.reason); } return task.proceed();}
I spent three years building availability tools for teams. The problem was always the same: things interrupt people because they have no idea who's around. Then I started using AI agents and realized they have the exact same problem. Same gap, new audience. This time the integration is two minutes, not two quarters.
Solo founder. Elixir + Phoenix. Building in public.
Sign up, add HeadsDown to your agent, and it'll know your schedule by the end of the day. Set up takes 2 minutes.
You're in.
We'll email you setup instructions within 24 hours. It's one install command.