Skip to content

The Assync mascot: a two-headed centipede — one head cautious, one head curious, sharing one body

Local-first AI agent governance

Assync

The runtime for coordinated AI agents.

Assync is a local runtime and governance layer for coordinated AI-agent workflows: missions, roles, authorization, evidence, human decisions, and an auditable record of what actually happened.

What problem does it solve?

Coordinating more than one AI agent — or more than one run of the same agent — on a piece of work raises the same questions every time. Assync answers them structurally, not by trusting agent output.

[ACT]

Who may act?

Every mission declares its required roles up front. Authorization is calculated centrally, never assumed by an agent or adapter.

[EVID]

What evidence exists?

Findings and evidence are collected and attached to the mission record, not inferred from an agent's summary after the fact.

[APPR]

Who must approve?

Actions that would block on risk or ambiguity route to a human decision — never resolved automatically.

[LOG]

What happened?

Every mission produces an auditable, reconstructable record of states, decisions, and evidence, in order.

What is Assync?

Assync runs entirely on your machine as a Python CLI (assync) and a filesystem-backed store. It is the first MVP release.

  • A local runtime — no server, no external service, no account.
  • A governance layer, not just an execution layer — authorization, evidence, and audit are structural, not optional add-ons.
  • No external platform needed — install from a cloned checkout and run.

Missions

Typed mission states from declaration to completion, with explicit scope and required roles.

Roles

Role-based execution with separation-of-duty enforcement built in.

Authorization

Default-deny, calculated centrally as a capability intersection.

Evidence

Findings and evidence are structured and attached to the mission, not just narrated.

Human decisions

Blocking outcomes go to an explicit, auditable human approval gate.

Audit trail

A reconstructable record of what actually happened, end to end.

How does it work?

A mission moves through the same nine steps every time — deterministic, auditable, and never self-authorizing.

A mission declares scope and required roles up front. Authorization is calculated centrally as an intersection — no role or adapter can grant itself more than it was given. A synthesis engine combines run reports deterministically, with no LLM in that step, and can never recommend COMMIT_GO, PUSH_GO, MERGE_GO, or RELEASE_GO on its own. Anything blocking goes to a human decision, never an automatic resolution. Simplified for illustration — a mission can also end Aborted, and not every mission needs a human decision. See Mission Orchestrator for the full workflow, and Mission States for every state and transition.

Define Mission
Select Roles
Calculate Authorization
Run Agents
Collect Findings & Evidence
Synthesize Results
Human Decision Required?
Review & Decide
Complete Mission

Security principles

The boundaries that hold even when an agent's output can't be trusted.

Default-deny authorization

No capability exists unless both the role and the active authorization grant it.

No self-authorization

No synthesis result, adapter, or role can grant itself a capability.

Restricted command execution

The local-command adapter never uses a shell, checks an executable allowlist, and hard-denies destructive git operations.

Auditable evidence

Findings and evidence are structured and attached to the mission record, not just narrated.

Human approval gates

Escalation only happens through an APPROVED human decision.

No hidden chain-of-thought storage

Structured reports carry summary, recommendation, findings, and evidence — never a raw chain-of-thought.

Full detail, including current limitations, is in the Security Model.

Quick start

Install

git clone https://github.com/kalimer00/assync.git
cd assync
python3 -m venv .venv
source .venv/bin/activate
pip install .

Not published to PyPI yet — install from a cloned checkout. Full, verified sequence: Installation.

Try it

assync --help
assync role list

Full walkthrough — register a project, create a mission, run it, inspect findings, synthesis, decisions, and the audit trail: Quick Start.

What is intentionally outside the MVP scope

  • No process sandbox beyond an executable allowlist, timeout, and output cap — this is not a hardened isolation boundary.
  • No production credentials or autonomous production actions exist anywhere in this codebase.
  • No PyPI package yet; installation is from source.
  • No remote/cloud provider adapters — only a deterministic mock adapter and a restricted local-command adapter exist today. Future provider integrations are documented as interfaces, not implemented.

See Known Limitations for the complete, repository-sourced list.

About the creator

Assync mascot, monochrome

Assync is an independent open-source project created and maintained by François F.

The goal is to make coordinated AI-agent systems predictable, auditable, and safe by design.

Contact: francois@assync.net