Skip to main content
Every external action proposed by the agent (Slack message, Linear issue, ASC update, etc.) lands in cofounder_actions. Some are auto-applied immediately; the rest sit in proposed status waiting for you to approve or reject.

GET — list actions

Query params: Response:

PATCH — approve or reject

Body:
Approving doesn’t execute the action immediately — it changes the status so the next actor cycle picks it up. Rejecting marks it as rejected and the agent will (gradually) learn to stop proposing similar things.

Action types

Status lifecycle

  • proposed — agent suggested it, waiting for you
  • approved — you approved, queued for execution
  • applied — actor successfully executed it (external_id populated)
  • rejected — you said no
  • superseded — agent re-proposed something with the same fingerprint; the older one is moved aside

Auto-approve

Action types listed in preferences.autoApproveTypes skip the proposed step entirely and execute immediately. They show up in actions with status: "applied" from the start.

Errors

  • 404 NOT_FOUND — action ID doesn’t exist or isn’t yours
  • 409 INVALID_STATE — action is already approved/applied/rejected
  • 400 INVALID_PARAMdecision must be approved or rejected