Skip to content
cccskills
FreePublished on GitHubEnglish overview

ao-rules

Use this reference to understand how AO skills identify local and remote hosts, connect to the AO API, route work through an orchestrator, handle approvals, and protect secrets. It provides shared operating rules for the other ao-* skills.

OriginalShow the original description

Shared rules and the connection helper for every ao-* skill (run Orchestrator from chat). Read before running any ao-* skill.

OrchestratorInc/agent-orchestrator13,872 stars(GitHub 13,872 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Checking host and session naming before using an AO skill
  • Reviewing how to connect to a local or remote AO host
  • Understanding approval and file change rules
  • Checking how AO skills should route work to an orchestrator

Overview

What it does

This reference describes shared rules used by other ao-* skills. It explains how to distinguish computers running AO, identify sessions by combining a host name with a session ID, and connect to local or remote hosts. It also describes which requests should go to the orchestrator, such as work requests and plans, and which actions can be handled directly, such as checking status or applying a user's choice. The rules cover approval types and risk decisions, file changes, credentials, and messages to agents.

When it helps

Consult it before using an AO skill, especially when AO runs on more than one computer and you need to avoid acting on the wrong host. It is also useful for understanding when to ask the user for approval and how to handle secret information.

Example requests

  • “Before using an AO skill, check how to specify the host.”
  • “Review the connection rules for a remote host.”
  • “Check the shared rules to see whether this action needs user approval.”

Notes

Connections use the AO API and curl; python3 handles JSON. Remote access requires a header file containing the host address and password.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt restricts credential files and specifies passing the header only to curl.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires AO API, curl, python3, and a remote header file when connecting remotely.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 29, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md8.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

AO rules

Every ao-* skill follows these rules. Other skills link here instead of repeating them.

AO hosts

An AO host is one computer that runs the AO daemon. Each host has its own projects, sessions and orchestrators, and AO never links them: a repo cloned on two hosts is two separate projects. AO names a project after its folder, so both can still get the same id, and then the same session id (for example agent-orchestrator-1-12) can exist on both. Always name a session as <host>/<session id>, and act only on the host that owns it.

Memory keeps one note named AO hosts, with one line per host:

FieldExampleMeaning
nameProA short name: the user's pick, else the model word of the ListMachines label (Pro, Air, mini). Never the network hostname such as MacBookAir.lan
reachlocal or remoteHow you get to its AO
vialaptopThe ListMachines label of the computer whose shell you use
basehttp://192.168.1.20:7444Remote only. The host's LAN address from AO's remote access settings
header~/.ao-grok/studio.headerRemote only. File on via that holds the host's password
  • local: the Grok Bot desktop app runs on the AO host. via is the host itself.
  • remote: the Grok Bot desktop app runs on another computer. You call the host's AO API over the network from via. The ao CLI on via talks only to via's own AO, so never use it for a remote host.

One computer can be via for itself (local) and for other hosts (remote) at the same time.

Every run: call ListMachines, then use every host whose via computer is connected, in parallel, labelled by host name. Say once which hosts you could not reach. Never hard-code machine ids or home paths.

Calling AO

Start every shell command that calls AO with this helper. It works in zsh and bash:

aoapi(){ # aoapi METHOD PATH [JSON]
  local base hdr=() data=() f="${AO_RUN_FILE:-$HOME/.ao/running.json}"
  if [ -n "$AO_REMOTE_BASE" ]; then base="$AO_REMOTE_BASE"; hdr=(-H @"$AO_REMOTE_HEADER")
  else [ -f "$f" ] || { echo "AO_NOT_RUNNING" >&2; return 3; }
    base="http://127.0.0.1:$(grep -o '"port": *[0-9]*' "$f" | grep -o '[0-9]*$')"; fi
  [ -n "$3" ] && data=(--data "$3")
  curl -sS --fail-with-body --max-time 30 -X "$1" "${hdr[@]}" -H 'Content-Type: application/json' "${data[@]}" "$base/api/v1/$2"
}
  • Local host: use aoapi as is.
  • Remote host: on the via computer, first set AO_REMOTE_BASE='<base>' AO_REMOTE_HEADER="$HOME/.ao-grok/<name>.header".
  • Build JSON bodies with python3 -c 'import json,sys; print(json.dumps(...))' "$ARG", never by pasting text into quotes.
  • Anything longer than one line goes in a file first: ~/.ao-grok/out/<date>-<short name>.md on via. The user can see what was sent.
  • Use the ao CLI only where a skill says "local only".

Errors

You seeMeaning and next step
AO_NOT_RUNNING, or connection refused on a local hostAO is not running there. Ask the user to open AO
Connection refused or timeout on a remote hostThe host is asleep, off this network, or remote access is off. Ask the user to check AO's remote access settings on the host
HTTP 401 or 403 on a remote hostThe host's password changed. Run ao-setup "Remote host" again
HTTP 404 on a session pathNo such session on that host. Check the host name
Any other errorAO returns JSON with message. Relay it in plain words

Who does what: orchestrator first

Each project on a host has at most one live orchestrator: an agent that plans the project's work, starts and steers workers, and gets their reports. It has more context than you do. You are the user's phone line to it.

  • Send to the orchestrator (ao-orchestrator): starting or changing work, "catch me up", "why", "what next", plans, and anything that needs judgement about the code.
  • Do directly: status lists (ao-status), answering a pending request with the user's own pick (ao-answer), stop and interrupt, merges after the user's yes, files and screenshots (ao-actions).
  • Never start a worker yourself in a project that has a live orchestrator. Ask the orchestrator instead. With no orchestrator, ask the user whether to start one or to start the worker directly.
  • After you act directly on a worker (answer, stop, merge), the orchestrator sees it through AO. Don't send it a separate note.

Decisions

A worker asks for two kinds of decision. A question (user_input) asks what to build. An approval asks permission to run a command or change files. Who decides depends on the mode, saved in memory:

  1. Default mode: show each question or approval to the user as a card with the exact options. Answer only with their pick for that request. Never reuse a pick for a new request.
  2. Away mode starts when the user says something like "I'm away", "decide for me" or "keep it moving". Save the scope and the end time in memory. Then:
    • Answer routine questions yourself, and tell the user afterwards what you picked and why.
    • Accept low and normal approvals with the one-time option (kind allow_once). Never pick an allow_always option: it changes the agent's permissions for good. Never accept a high approval without the user's yes for that request.
    • Leave product direction, money, publishing and anything the user kept for themselves to the user.
    • Away mode ends at the end time or when the user is back. Say when it ended.
  3. Standing approvals: the user may list kinds of approvals to always accept. Follow the list exactly.

AO gives no risk level, so you judge it. Treat these as a floor. If a command looks riskier, call it high.

RiskExamples
highDeletes outside the session's worktree, rm -rf, git push --force, push to main or master, git reset --hard, history rewrites, deploy, publish, release, secrets, credentials, tokens, sudo, system installs, payments
lowReading or searching files, git status/diff/log, tests, lint, typecheck, builds
normalEverything else, such as edits and commits in the session's worktree, or pushing the session's own branch

Never invent the user's preferences. The worker decides how to do the work. The user decides what to build.

Writes

Change nothing on the user's computers unless the user approved that exact change in chat, or away mode or a standing approval covers it. Approval for one change is not approval for the next. Never delete or archive sessions or projects, never change AO settings, and never merge, publish or deploy without the user's yes for that item.

Secrets

  • The header file holds a host's password. Pass it only to curl as -H @<file>. Never open, print, copy or paste it.
  • Never read AO's own credential files: ~/.ao/mobile/, ~/.ao/data/agent-accounts/, ~/.ao/electron/, or any *token*, *auth*, .env or keychain item.
  • If session text contains a key, never repeat it.

Messages to agents

  • Before you send a follow-up, read the last turn (aoapi GET "sessions/<id>/history?offset=0&limit=1") so you don't repeat or contradict it.
  • Keep messages short and concrete: what is right so far, then the next step. Leave out check-ins, your own process and these rules.
  • Start every message you send with [via Grok Bot], so the user can tell it apart in AO.

Output

  • Answer first, in short plain words. Say what you could not check.
  • Write every session as <host name>/<session id>, every time, in every skill and every line, even when only one host has that id: Air/agent-orchestrator-31, Pro/agent-orchestrator-1-249. Add the display name when it helps.
  • Give times in the user's timezone.
  • One message per event. If two checks report the same thing, say it once. News (a merge, a finished review) is reported once: ao-status keeps a seen list.
  • Send files with SendToUser. Copy them to the box first with CopyToBox.

Memory

  • Save hosts, modes and preferences, not activity. A check where nothing changed is not worth a note.
  • When the user corrects you, save the correction.
  • A follow-up you promise for later ("I'll tell you when it's done") goes into a Routine, not only into memory.

Grok Bot only

These steps need tools only Grok Bot has. Any other agent (Claude Code, Codex, Cursor) runs on one computer and does this instead:

Grok Bot stepOther agents
ListMachines, every connected computerOnly the computer you run on, as a local host
RoutinesRun the check once when asked
CardsPlain text with numbered options
MemoryAsk, or use the notes file the user names
SendToUser, CopyToBoxGive the file path

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

ao-actions

FreeSummary

Perform direct actions on AO sessions and pull requests, such as interrupting or resuming work, requesting reviews, and merging after confirmation. It can also capture a session’s browser, send its files, keep a host awake, and set up recurring work.

  • Stop or resume an AO session
  • Review or merge a session’s pull request
  • View a session’s browser or deliverables
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

ao-answer

FreeSummary

Find AO sessions waiting for a user decision, present pending questions or approvals as answer choices, and send the selected response to the right session. It also follows AO decision rules for away mode and standing approvals.

  • Check what AO sessions need your response
  • Answer a question from a specific session
  • Approve a pending command or change
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

ao-desktop-dev

FreeSummary

Launch and troubleshoot the actual AO desktop app to inspect interface changes with local data. Supports reviewing combined pull request branches and diagnosing lingering Electron processes, port conflicts, and mismatches in the app’s preload bridge.

  • Inspect interface changes in the actual AO desktop app
  • Test with isolated or existing local AO data
  • Review multiple pull request branches together
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

ao-orchestrator

FreeSummary

Use this skill to send a request or question to a project's AO orchestrator, wait for its response, and relay the answer. It routes project work, status catch-ups, planning, and requests about what to do next through the agent coordinating that project's workers.

  • Starting work on a project through its orchestrator
  • Asking for a project catch-up or explanation
  • Requesting a plan or asking what should happen next
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

ao-setup

FreeSummary

Use this skill to find computers running AO, record them as hosts, and optionally connect a remote host without the Grok Bot desktop app. It can also set a default interaction mode and configure selected scheduled checks or a weekday digest.

  • Finding computers running AO during initial setup
  • Recording local AO hosts for later use
  • Connecting a remote AO host without the desktop app
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

ao-status

FreeSummary

Review AO sessions across hosts, including which are running, waiting, idle, or exited. Check pull requests ready to merge and new review updates, inspect a session’s latest turn, or prepare a concise daily digest.

  • Check running and waiting AO sessions
  • Find pull requests ready to merge
  • Review new PR and review updates
OrchestratorInc/agent-orchestrator13.9KUpdated Oct 30, 2026

See all skills by OrchestratorInc

Report a problem with this skill