by MaxonT

Aisync review, pricing and verdict

Advisory file claims and a shared journal for your AI coding agents.

Best for
Developers using several coding agents
Not for
Windows users
  • Developer
  • Automation

Should you use Aisync?

Pick Aisync if two or more coding agents work in the same repositories and keep colliding. It is free, local and dependency-free. Skip it if you need claims that block edits, or you use Windows: claims here are advisory and the command does not start on that system.

One local hub gives three different agent tools shared rules, claims and mid-session news without any server or dependency.

There is no moat beyond being early: the design is plain files, git and hooks that others can copy.

Also for

  • Tool tinkerers on macOS or Linux
  • Developers running Claude Code, Codex and Cursor on the same repositories
Show 2 more
  • Solo builders who keep one rules file across several agent tools
  • Teams experimenting with multi-agent coding on macOS or Linux

Also not for

  • Teams that need enforced locks

Main trade-off

Claims are advisory, so nothing stops an agent that ignores them.

Aisync pricing

MIT licence. Free to install and run, with no paid tier or hosted service listed.

Install Aisync

curl -fsSL https://maxont.github.io/aisync/install.sh | bash

Before you start

  • Python 3.11 or newer and git, on macOS or Linux
  • The script installs with uv, pipx or pip from the GitHub release wheel and never edits shell config; add --dry-run to see what it would do
  • Run aisync install-hooks --dry-run first, because it changes tool configs and the global git hooks path
  • For the MCP server, install the release wheel with its mcp extra: it needs the mcp package, version 2.3 or newer below 3

Works with

  • Claude Code
  • Codex
  • Cursor
  • Any MCP client, through aisync mcp

Required runtime

  • Python 3.11 or newer (standard library only)
  • git
  • macOS or Linux

Where it runs

  • Desktop
  • CLI

Data it can reach

  • A local hub in ~/.ai-sync, which is a git repository
  • Git commits in the repositories you watch
  • Tool config and rule files edited by install-hooks
  • Journal events, claims and shared rules

The permissions this connector asks for, as its own documentation states them.

What Aisync can do

20 actions an agent can call. Open one for its parameters and an example.

initCreates the hub: shared rules, journal, config and a local git repository, in ~/.ai-sync unless AISYNC_HOME points elsewhere.

Example call

aisync init --projects-dir ~/projects

Parameters

ParameterTypeNeededDescription
--seed-fromstringOptionalA file whose owner-preferences block becomes the shared rules; the default is a starter block.
--projects-dirstringOptionalWatch every git repository directly inside this folder.
--targetstringOptionalA tool rule file to carry the shared block; repeatable.
--forcebooleandefault falseOptionalRecreate an existing hub.

Returns

FieldTypeDescription
hubdirectoryThe new hub with rules, journal and config.
claimSays you are working on files of a repository now. An overlap with another agent exits with code 3 and names who holds the files, but the claim is still recorded and no edit is blocked. The same action exists as an MCP tool.

Example call

aisync claim -a codex -p api -f app/payments/ -m "SDK upgrade"

Parameters

ParameterTypeNeededDescription
--summarystringRequiredWhat you are about to do (-m).
--agentstringOptionalThe tool making the claim, such as codex (-a, or the AISYNC_AGENT variable).
--projectstringOptionalThe repository name (-p).
--filesstringOptionalComma-separated paths (-f); omit it to claim the whole repository.
--ttlnumberdefault 120OptionalMinutes until the claim expires.

Returns

FieldTypeDescription
exit_codenumberZero when free, 3 when another agent holds an overlapping claim.
releaseDrops your claims for one project, or all of them.

Example call

aisync release -a codex -p api

Parameters

ParameterTypeNeededDescription
--agentstringOptionalWhose claims to drop (-a).
--projectstringOptionalLimit the release to one project (-p).

Returns

FieldTypeDescription
releasednumberHow many claims were dropped.
claimsShows who is working on which files right now.

Example call

aisync claims

Returns

FieldTypeDescription
claimstextEach live claim with its agent, files and expiry time.
logAppends one event to the hash-chained journal: a commit note, decision, blocker or plain note.

Example call

aisync log -a claude-code -k decision -m "Keep retries at 3"

Parameters

ParameterTypeNeededDescription
--summarystringRequiredThe event text (-m).
--kindstringdefault dev_logOptionaldev_log, decision, blocked, unblocked, rule_change or note (-k).
--projectstringOptionalDefaults to the name of the current git repository (-p).
--filesstringOptionalComma-separated paths the event touches (-f).
--refstringOptionalA key=value reference such as pr=45; repeatable.

Returns

FieldTypeDescription
eventtextThe id of the appended event.
ruleManages shared rules: add writes a When, Do and Not rule that every tool copy receives on the next sync; list, lint, rewrite and enforcement review them.

Example call

aisync rule add -a codex --when "changing an API" --do "add a contract test"

Parameters

ParameterTypeNeededDescription
--whenstringOptionalFor add: the trigger.
--dostringOptionalFor add: the action the rule asks for.
--notstringOptionalFor add: what the rule forbids.
--topicstringOptionalHeading the rule goes under; required once rules are grouped (-t).
--reasonstringOptionalWhy the rule exists; the reason goes to the journal (-r).
--replacesstringOptionalAn ID such as R-087, or part of the text of the rule this one replaces.
--enforced-bystringOptionalComma-separated paths of the test, hook or checker that enforces it.
--judgment-onlystringOptionalWhy no code can check the rule.
--filestringOptionalFor rewrite: a JSON file mapping rule IDs to new text.
--archivedbooleandefault falseOptionalFor list: show retired rules.

Returns

FieldTypeDescription
ruletextThe new rule with its stable ID, such as R-088.
tidyThe rules clerk: proposes likely duplicates, rules nobody cited lately and a core layer over budget; it never edits.

Example call

aisync tidy --write

Parameters

ParameterTypeNeededDescription
--writebooleandefault falseOptionalWrite a dated file into the hub instead of printing.
--jsonbooleandefault falseOptionalPrint the proposals as JSON.

Returns

FieldTypeDescription
proposalstextProposals you tick off yourself.
rulecheckChecks that a rules cleanup lost no hard fact such as a path, number, command or ID; exits 1 if one was lost.

Example call

aisync rulecheck before.md after.md

Parameters

ParameterTypeNeededDescription
beforestringRequiredThe rules file before the cleanup.
afterstringOptionalThe file after the cleanup; the default is the hub rules.
--archivestringOptionalThe retired-rules file; the default sits next to the after file.
--accept-dropstringOptionalA reason that accepts a dropped fact.

Returns

FieldTypeDescription
verdicttextWhich hard facts are still current or superseded, and which were lost.
Show all 20 actions
instinctKeeps an optional habit list grown from past mistakes, injected into every session.

Example call

aisync instinct add "Run the migration dry run first" --from EB-014

Parameters

ParameterTypeNeededDescription
--fromstringOptionalFor add: the EB id in the error log the habit comes from (required for add).
--agentstringOptionalWho adds the habit.

Returns

FieldTypeDescription
habitstextThe habit list.
newsReports what other tools did and which rules changed since this session last looked; the first call only sets the cursor.

Example call

aisync news -a cursor -s chat-42

Parameters

ParameterTypeNeededDescription
--agentstringOptionalWhich tool is asking.
--sessionstringOptionalAny stable id for this chat or session (-s).

Returns

FieldTypeDescription
newstextEvents from other agents and rule changes, or nothing.
install-hooksWires the news hooks into Claude Code, Codex and Cursor, seeds the rules block and adds the git Agent trailer hook; it shows each change as a diff and asks before writing.

Example call

aisync install-hooks --only claude-code --dry-run

Parameters

ParameterTypeNeededDescription
--onlystringOptionalA comma list of the install steps to run.
--dry-runbooleandefault falseOptionalShow the diff and write nothing.
--yesbooleandefault falseOptionalApply without asking (-y).

Returns

FieldTypeDescription
difftextThe changes to tool configs, rule files and git hooks.
statusShows health, per-agent activity, conflicts, claims, blockers and metrics; exits 1 when something needs you.

Example call

aisync status --json

Parameters

ParameterTypeNeededDescription
--jsonbooleandefault falseOptionalPrint the status as JSON.
--accept-dropstringOptionalA reason that accepts a flagged rules drop.

Returns

FieldTypeDescription
statustextThe live picture of the hub.
boardWrites the hub as one static HTML page with claims, blockers, who did what and a timeline.

Example call

aisync board -o team-board.html

Parameters

ParameterTypeNeededDescription
--outstringdefault board.htmlOptionalThe output file (-o).

Returns

FieldTypeDescription
filehtmlA single self-contained status page.
reportA read-only self-check: tools that stay silent, commits without an Agent trailer and stale blockers.

Example call

aisync report --days 14

Parameters

ParameterTypeNeededDescription
--daysnumberdefault 7OptionalHow many days to look back.
--jsonbooleandefault falseOptionalPrint the report as JSON.

Returns

FieldTypeDescription
hintstextPlain hints; it never acts on them.
tailPrints the latest journal events.

Example call

aisync tail -n 5

Parameters

ParameterTypeNeededDescription
-nnumberdefault 20OptionalHow many events to show.

Returns

FieldTypeDescription
eventstextThe newest journal lines.
verifyChecks the journal hash chain, so an edited, lost or reordered line is spotted.

Example call

aisync verify

Returns

FieldTypeDescription
resulttextWhether the chain is intact.
sync and watchsync runs one cycle (harvest commits, distribute rules, render progress, flush); watch runs the debounced, event-driven loop.

Example call

aisync watch --max-seconds 600

Parameters

ParameterTypeNeededDescription
--max-cyclesnumberOptionalFor watch: stop after this many cycles.
--max-secondsnumberOptionalFor watch: stop after this long.

Returns

FieldTypeDescription
cycletextPer-step results; one failing step never blocks the others.
resolve and resumeresolve gives your ruling on a shared-rule conflict; resume clears the failure counters after a paused sync is fixed.

Example call

aisync resolve R-087 --take truth

Parameters

ParameterTypeNeededDescription
labelstringRequiredFor resolve: the conflict label.
--takestringRequiredFor resolve: truth or target.

Returns

FieldTypeDescription
resulttextThe conflict closed with your choice.
demoBuilds a throwaway hub with a synthetic two-week journal and shows its status.

Example call

aisync demo --dir demo-hub

Parameters

ParameterTypeNeededDescription
--dirstringOptionalWhere to build it; the default is a new temp directory.

Returns

FieldTypeDescription
hubdirectoryA demo hub with synthetic data.
mcpServes the hub to any MCP agent over stdio with eight tools: rules, rule_add, log, claim, release, news, status and tidy.

Example call

aisync mcp

Returns

FieldTypeDescription
serverMCP serverAn MCP server over stdio; it needs the optional mcp extra.

What Aisync is for

Aisync is an open-source command line tool, hook set and MCP server that coordinates AI coding agents on one machine through a shared rules block, a hash-chained journal and advisory file claims. It supports Claude Code, Codex and Cursor, needs Python 3.11 and git on macOS or Linux, and its latest release is 0.2.0.

  • File claims with a lifetime

    A claim lasts 120 minutes by default, and an overlap exits with code 3 and names the other holder.

  • Hash-chained journal

    Each event stores the id of the one before it, so verify spots an edited, lost or reordered line.

  • Mid-session news hooks

    Hooks tell a running session what the other tools did and say nothing when nothing changed.

  • Rules as interfaces

    Each rule is one line with a trigger, an action and a prohibition under a stable ID, and layered loading folds topics until a prompt needs them.

Show all 6 features
  • Three doors in

    Agents can use the AGENTS.md rules block, the command line or an MCP server with eight tools.

  • Dependency-free core

    The core runs on the Python standard library; only the MCP server needs an extra package.

What people use it for

  • Stop two agents editing one directory

    Before editing app/payments/, each agent runs claim; the second one gets exit code 3 and the holder name, and can pick other work.

  • Keep one set of rules across three tools

    One rules block is copied into each tool rule file and synced 3-way, and a conflicting edit is never overwritten.

  • Tell a running session what another tool just did

    Hooks add news from the other tools to a live Claude Code, Codex or Cursor session and stay silent when nothing changed.

  • Audit who did what

    The hash-chained journal records commits, decisions and blockers per agent, and report flags tools that never log.

Strengths and limits

Strengths

  • It runs locally with no dependencies and no server: the hub is a git repository you can read, diff and back up.
  • The journal is tamper-evident, because each event carries the id of the previous one and verify checks the chain.
  • The install path is reviewable: the script is short, supports a dry run, and the installer page asks before changing anything.
  • It reaches agents three ways, so a tool without hooks can still use claims through the CLI or the MCP server.

Limits

  • Claims are advisory: an overlapping claim is still recorded and nothing blocks the edit, so an agent that skips the claim step collides anyway (source code, read 11 November 2026).
  • It is macOS and Linux only; the package failed to start on Windows in a clean test.
  • It is not published on PyPI, so the README line pip install aisync with the mcp extra does not resolve; use the release wheel instead.
  • It is a young single-author project with 37 GitHub stars, its token figures were measured by its author on their own hub, and install-hooks edits tool configs and the global git hooks path.

Aisync alternatives

The nearest AI agent skills on Hokai for the same job.

SkillWorks withConnects byChecked
Aisync This pageClaude · Codex · CursorSkill file11 Nov
CloakroomMasks secrets and personal data before your coding agent sees them.Claude · Codex · Cursor · GeminiSkill file11 Nov
FactIQGives an agent read-only SQL over 100M+ official economic and financial series.Claude · ChatGPT · CodexMCP21 Oct
KrolikSelf-hosted MCP server that gives coding agents a call graph and review memoryClaude · Cursor · WindsurfMCP21 Oct

Aisync facts

Protocol
Custom
Latency class
Fast
Open source
Yes
Maintainer founded
2026

What changed

  • New feature 0.2.0: rules as interfaces, loaded in layers, plus an MCP server source
  • Fix 0.1.1: release install check installs the tag it just published source
  • Release 0.1.0: first public release source

Questions about Aisync

What does Aisync cost?

Nothing. It is MIT-licensed and the README lists no paid tier or hosted service. Your cost is the extra tokens your agents spend reading the shared rules and news that the hooks inject, which the 0.2.0 layered loading is meant to reduce.

Do I need an account, and does it ask for anything?

No account is needed, and nothing beyond the Python standard library is required. After your first successful command the CLI asks once whether to star the project on GitHub, with no as the default; set NO_STAR_PROMPT to 1 to skip the question, and it stays silent in CI, pipes and scripts.

Does a claim actually stop two agents editing the same file?

No. A claim is advisory: when an overlapping claim exists, the CLI exits with code 3 and the MCP tool says to coordinate or pick other work, but the new claim is still recorded and no hook blocks the edit. Claims expire after 120 minutes unless you set a different lifetime.

What does install-hooks change on my machine?

According to the install page it edits the Claude Code, Codex and Cursor hook configs, seeds the rules block into rule files and sets the global git hooks path. It shows every change as a diff and asks first, and the dry-run flag changes nothing. Review the diff before you accept it.

How do I use Aisync from an MCP client?

Run the aisync mcp command, which serves eight tools over stdio. It needs the optional mcp package, and since aisync is not on PyPI the working route found in testing is installing the release wheel with the extra: pip install "aisync[mcp] @ https://github.com/MaxonT/aisync/releases/download/v0.2.0/aisync-0.2.0-py3-none-any.whl".

About Aisync

Aisync is a small open-source coordination layer for AI coding agents, published on GitHub by an individual developer, MaxonT. It is a skill rather than an app: agents such as Claude Code, Codex and Cursor call its command line, hooks or MCP server to claim files before editing, log decisions to a shared journal and hear what the other tools did. The repository was created on 21 October 2026 and version 0.2.0 shipped on 9 November 2026.

Read the full background

Everything lives in one local hub, ~/.ai-sync, which is a git repository. A claim records which files an agent is working on for 120 minutes by default. If another agent holds an overlapping claim, the command exits with code 3 and names the holder, but the claim is still recorded and nothing stops an edit, so claims work only as far as agents obey them. Hooks inject news into a running session, and the journal chains each event to the one before so that a verify command can spot a changed line. The core uses only the Python standard library.

Version 0.2.0 added rules written as When, Do and Not lines with stable IDs, loaded in layers, plus the MCP server. The author reports that on the author's own hub this cut always-loaded rules from 20,673 to 7,876 tokens; these figures are not independently checked. On 11 November 2026 Hokai installed the 0.2.0 release wheel with the mcp extra into a clean Python 3.13 environment on Windows: it pulled in mcp 2.3.0, but the command stopped at import with No module named fcntl, which fits the macOS and Linux requirement. The name aisync is not on PyPI, since pip found no versions, so install from the release wheel.

Look elsewhere if claims must be enforced or you work on Windows. An npm package called agent-ops, which Hokai does not list yet, says its pre-commit hook blocks commits that touch another agent's claims; its repository shows no stars and no push since July 2026. For a different hook-based agent add-on see Cloakroom, and for more connectors the developer skills and MCP skills lists.

Sources and guides

More Agent Skills on Hokai

  • Dryplate MCPLocal image tools for agents: convert HEIC, resize, strip metadata.
  • MantisA local browser for agents that returns compact numbered text, not screenshots.
  • Mitra MCPLets Claude or ChatGPT ask your Mitra assistant to make calls and report back.
  • Resend MCP ServerOfficial MCP server that lets an AI agent send mail and work Resend inboxes
  • Personal Agent ProtocolOpen standard for how personal AI agents sign in and act for customers.
  • Pocket Invoice MCPLets an AI assistant draft, export and email invoices from your account