Quickstart
Get from zero to a ticking heartbeat loop in about ten minutes. You'll connect one channel, install one skill, and watch the agent complete its first full cycle.
1. Create your operations center
Sign up for early access and provision your first agent. Each agent gets its own heartbeat loop, memory store, and control plane.
# install the CLI
npm install -g aoc
# provision your first agent
aoc init my-ops --interval 60s
✓ agent my-ops provisioned · loop armed
2. Connect a channel
Start with one connector — Telegram is the fastest way to talk to your agent directly. Follow the guided OAuth or bot-token flow:
aoc connect telegram
# paste your bot token when prompted
✓ telegram bound · inbound messages wake the loop
3. Install a skill
Skills give the loop something useful to do. Install briefing-writer and ask your agent for a briefing from Telegram.
aoc skill install briefing-writer
aoc heartbeat start
✓ loop ticking · next wake in 60s
Watch it work. Send your agent a message in Telegram, then run aoc loop watch to see each tick move through wake → perceive → plan → act → learn in real time.
Heartbeat loop, explained
The heartbeat loop is the entire runtime model of the platform. There is no request/response server at the center of your agent — there is a cycle that never stops.
The five phases
- Wake. The loop fires on its interval (default 60 seconds), or immediately when a connector delivers an event — an SMS, a Telegram message, a calendar change. Events never wait for the next tick.
- Perceive. The agent takes a snapshot: new messages across connectors, calendar state, flag values, and anything its skills report. Perception is read-only and cheap by design.
- Plan. Given the snapshot and its memory, the agent decides what — if anything — deserves action. It selects skills, drafts messages or code changes, and ranks work by urgency.
- Act. Plans execute through connectors and skills: replies sent, PRs opened, briefings delivered. Every action is logged to the loop journal.
- Learn. Outcomes are written back to memory — what worked, what was ignored, what changed. The next tick begins from a richer state than the last.
Why a loop and not a chatbot
A chatbot waits. A heartbeat loop notices — the calendar conflict at 6am, the urgent SMS at midnight, the failing check on a PR you forgot. Initiative is the product; conversation is just one of its tools.
# the loop journal: every tick, every phase, inspectable
aoc loop log --last 5
[tick 4127] wake: interval · perceive: 3 new msgs · plan: 2 tasks
[tick 4127] act: drafted reply, queued briefing · learn: +2 memories
Writing an MCP skill
Skills are how you teach the loop new jobs. A skill is a small package — a manifest, a set of tools, and guidance prompts — exposed to the agent through the Model Context Protocol (MCP).
Anatomy of a skill
skill.json — the manifest: name, version, permissions, and which loop phases may invoke it.
tools/ — the functions the agent can call (API clients, parsers, writers).
prompts/ — guidance the planner reads when deciding how and when to use the skill.
Scaffold and ship
aoc skill new standup-scribe
# → skill.json, tools/, prompts/ scaffolded
# edit tools/collect.py, prompts/guide.md, then:
aoc skill test standup-scribe --dry-run
aoc skill publish standup-scribe
✓ skill live · loop will consider it from the next tick
Keep skills small. The best skills do one job well — triage, summarize, dispatch, guard. Compose small skills with feature flags instead of building one giant skill.
Permissions
Skills declare exactly what they may touch in skill.json. A skill that only reads email cannot send it; a skill without the code.write permission cannot open PRs. The loop enforces these boundaries on every tick — least privilege is structural, not advisory.
Connectors setup
Connectors bind external channels to the loop. Each connector handles authentication, inbound events (which wake the loop), and outbound actions.
Google Workspace
Connect via OAuth. Grant Gmail, Calendar, and Drive scopes individually — the loop only perceives what you authorize. Revoking a scope is instant and the loop adapts on its next tick.
Email (IMAP/SMTP)
Any mailbox works: provide host, port, and credentials (or an app password). The loop polls on its interval and can draft or send through the same channel, subject to your feature flags.
Telenyx SMS
Provide your Telenyx API key and a sending number. Inbound SMS arrives as a loop-waking event; outbound messages go through your escalation rules.
Telegram
Create a bot with BotFather, paste the token, and you're talking to your agent. Telegram doubles as the fastest admin channel — approve plans and flip flags from chat.
WhatsApp
Connect via the WhatsApp Business API number. Threads stay in context across heartbeats, so follow-ups days later still carry the full thread.
Full per-connector walkthroughs — including scopes, webhooks, and troubleshooting — live on the connectors page.
Feature flags
Every behavior in the platform ships behind a feature flag. Flags are evaluated at the start of each tick, so changes take effect on the next heartbeat — no redeploy, no restart, no downtime.
Setting flags
aoc flag set autopilot.reply on
aoc flag set sms.escalation off --team support
aoc flag list
autopilot.reply on · global
briefing.morning on · global
sms.escalation off · team:support
Scoping
Flags scope to global, team, agent, or channel. A flag can be on for your backend team, off for support, and on-only-in-Telegram — composed at tick time from the most specific scope outward.
Packages
Bundle flags into named packages — starter, autopilot, locked-down — and assign a package to an agent instead of managing flags one by one. Packages are how you turn agent behavior into a shippable product edition.
Kill switches. If any behavior misbehaves, aoc flag set <flag> off stops it at the next tick — typically under a minute. Design every autonomous behavior behind a flag you can reach in seconds.
Docs are expanding. These guides cover the platform's foundations; deeper references — the skill manifest schema, the loop journal format, and the flag evaluation order — ship with early access. Join the waitlist to get them first.