MindSync AI
adityarya24.github.io/mindsync-ai
Local-first MCP orchestration for coding agents. The CLI already talking to you stays in charge: MindSync routes work by capability, blocks file collisions, and keeps session memory across runs. No MindSync account. Remote sync is optional.
You → human-facing CLI (orchestrator) → MindSync → Codex / Claude / Gemini / AGY / Grok / Cursor / OpenCode / Aider
Workers get bounded tasks. They cannot recursively delegate through MindSync.
Quick start
pip install mindsync-ai
mindsync setup --mode auto
mindsync doctor
mindsync agents
Requires Python 3.10+. Restart the configured CLI sessions after setup.
setup registers known MCP hosts (Codex, Claude, Gemini, Grok, Cursor, OpenCode)
and recognised PATH agent CLIs. MCP is installed only when MindSync has a real
recipe — it will not guess mcp add flags. Unknown binaries are suggested, not
registered, and never executed. Use mindsync register for an unusual name.
mindsync setup --dry-run # preview
mindsync setup --cli grok # one known host, no PATH scan
mindsync setup --no-discover # hosts only
mindsync setup --no-hooks # skip Codex standalone hooks
Install from source: python -m pip install -e ".[dev]"
Supported clients
A CLI may be an MCP host, a worker, or both.
| CLI | MCP host | Worker | Notes |
|---|---|---|---|
| OpenAI Codex | Native | Yes | Also gets standalone memory hooks |
| Anthropic Claude | Native | Yes | Architecture, review, large context |
| Google Gemini CLI | Native | Yes | Gemini/Antigravity family |
Antigravity (agy) |
Via Gemini | Yes | Preferred worker in that family |
| Grok CLI | Native | Yes | Research, review, security |
| Cursor Agent | JSON | Yes | ~/.cursor/mcp.json |
| OpenCode | JSON | Yes | ~/.config/opencode/opencode.jsonc |
| Aider | — | Yes | Focused editing |
Gemini CLI and agy are one family. When either is the human-facing orchestrator,
both are excluded from automatic worker selection.
Orchestration
Policy lives in ~/.mindsync/orchestration.json. Modes: auto, suggest, off.
mindsync config orchestration.mode auto
mindsync-dispatch run auto "implement and test the fix" --capability coding
mindsync-dispatch status
Provider quota handoff is opt-in and requires an isolated worktree:
mindsync-dispatch run auto "implement and test the fix" --write --worktree --on-limit handoff
mindsync-dispatch limits # inspect provider/account cooldowns
mindsync-dispatch limits clear # clear cooldowns after operator verification
Pre-emptive usage readers are pluggable per provider. The Codex adapter can
read primary and weekly OAuth usage windows from the local ~/.codex/auth.json
source when a reader is configured. Pre-emptive polling and threshold handoff are
opt-in: they require both usage.enabled: true in agents.json and
--on-limit handoff on an isolated worktree job. Global usage settings default
to disabled:
{
"usage": {
"enabled": false,
"defaultThresholdPercent": 90,
"pollingIntervalSeconds": 60
}
}
When enabled, dispatch polls at pollingIntervalSeconds during a running
attempt, skips cooling or over-threshold provider accounts before spawn, and may
transfer only when a privacy-safe MindSync checkpoint already exists for that
attempt (plus the worktree diff and original task). There is no generic CLI
control channel: dispatch does not ask arbitrary agents to write HANDOFF.md.
Without a checkpoint, threshold hits are recorded as preemptiveBlocked and
the attempt keeps running so reactive quota handoff remains the floor. Job
status shows usage evaluation, skips, blocks, and handoffs; only percentages,
window labels, reset times, scope, and reasons are persisted — never raw usage,
auth, or source payloads.
Per-adapter overrides use usageReader and optional usageThresholdPercent.
The bundled Codex preset declares usageReader: "codex-oauth".
Only configured provider-specific exhaustion messages rotate. Timeouts, auth errors, generic rate limits, failing tests, and ordinary agent failures stop the job. A successor receives the same worktree, the original task, and the latest structured MindSync checkpoint; because routing may select another provider, enable handoff only when that cross-provider context transfer is acceptable.
Completed jobs keep their branch by default. To push a successful isolated job and open a pull request for review, enable it for that repository:
mindsync config onComplete pr --project .
MindSync never merges the pull request. It also declines to publish when a
requested check failed or did not report, private prompt framing cannot be
separated safely, commit hooks refuse the work, or changed paths look like
secrets. Use MINDSYNC_ON_COMPLETE=pr for a one-run override.
Custom worker:
mindsync register --name my-worker --bin my-cli --capability coding
Heavy tags (security, large-context, multimodal) need --confirm.
Roster and jobs: ~/.mindsync/dispatch/ (AGENT_DISPATCH_HOME overrides).
Memory
Dispatch memory defaults to auto in git checkouts (opaque git identity, never
a path or repo name). Failures warn; they do not fail the job.
mindsync memory stats
mindsync memory list --project my-repo
mindsync memory recall --project my-repo --query "database decision"
Nothing is pruned without --yes. See MCP tools on the server (get_sync_context,
delegate_task, job_wait, …) once a host is configured.
Optional remote sync
export MINDSYNC_SSH_HOST=my-server
export MINDSYNC_REMOTE_ROOT=/opt/mindsync
Worker loop and VPS scripts: examples/remote/.
Environment variables: .env.example.
Safety
- The human-facing CLI owns authorization and the final answer.
- Setup never executes a binary it cannot name.
- Existing MCP registrations are preserved unless
--force. - Local state uses crash-safe locks and atomic writes. On Windows, tune queue
lock deadlines and OS-lock contention backoff via
MINDSYNC_QUEUE_LOCK_TIMEOUT,MINDSYNC_LOCK_CONTENTION_BACKOFF_BASE, andMINDSYNC_LOCK_CONTENTION_BACKOFF_MAX(see.env.example).
Runs with the current user's privileges. See SECURITY.md.
Development
python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install -e ".[dev]"
python -m ruff check .
python -m pytest -q
Use the venv. sqlite-vec is a package dependency; a bare system Python will
fail the Tier 2 tests.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mindsync_ai-1.7.0.tar.gz.
File metadata
- Download URL: mindsync_ai-1.7.0.tar.gz
- Upload date:
- Size: 245.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a12bf8b518d1e6c20666294a6bded7832ceb5eaeb876958e1e0e659b4c39480
|
|
| MD5 |
1a96fe41ec1c0547fc76c7f1d2a6b0c6
|
|
| BLAKE2b-256 |
4b5df940a5fa2db0201dc56ac38472648ee2cad341914ba87e84965911967252
|
Provenance
The following attestation bundles were made for mindsync_ai-1.7.0.tar.gz:
Publisher:
release.yml on adityarya24/mindsync-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mindsync_ai-1.7.0.tar.gz -
Subject digest:
3a12bf8b518d1e6c20666294a6bded7832ceb5eaeb876958e1e0e659b4c39480 - Sigstore transparency entry: 2634307892
- Sigstore integration time:
-
Permalink:
adityarya24/mindsync-ai@17bb88f4c6671951c71090d30458c542d82002b6 -
Branch / Tag:
refs/tags/v1.7.0 - Owner: https://github.com/adityarya24
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@17bb88f4c6671951c71090d30458c542d82002b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mindsync_ai-1.7.0-py3-none-any.whl.
File metadata
- Download URL: mindsync_ai-1.7.0-py3-none-any.whl
- Upload date:
- Size: 167.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1856d9e088a21b77a53315b14511f6c2350bddd4943efe973491c9e5b638ca00
|
|
| MD5 |
0d575f829e67f2539fecff89e030e431
|
|
| BLAKE2b-256 |
39e19c33257e6f583ce82be1043224a9af40096909354f9777bbd8aaa22ca27f
|
Provenance
The following attestation bundles were made for mindsync_ai-1.7.0-py3-none-any.whl:
Publisher:
release.yml on adityarya24/mindsync-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mindsync_ai-1.7.0-py3-none-any.whl -
Subject digest:
1856d9e088a21b77a53315b14511f6c2350bddd4943efe973491c9e5b638ca00 - Sigstore transparency entry: 2634307953
- Sigstore integration time:
-
Permalink:
adityarya24/mindsync-ai@17bb88f4c6671951c71090d30458c542d82002b6 -
Branch / Tag:
refs/tags/v1.7.0 - Owner: https://github.com/adityarya24
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@17bb88f4c6671951c71090d30458c542d82002b6 -
Trigger Event:
push
-
Statement type: