Model-agnostic AI-human collaboration state management CLI
Project description
vibe-state-cli
Your AI forgets everything the moment you close the terminal. This tool fixes that.
The problem
You spend two hours explaining your project architecture to Claude. You close the terminal. Tomorrow, Claude has no idea what you talked about.
You fix a bug in Cursor, then switch to Claude Code for a bigger refactor. Claude doesn't know what you just did in Cursor.
Your coding standards are scattered across CLAUDE.md, .cursorrules, and AGENTS.md — three files saying the same thing, all eating tokens.
What vibe-state-cli does
It gives all your AI tools one shared brain.
A .vibe/ directory in your project holds your progress, tasks, and standards. When you switch tools, the new AI picks up exactly where the last one left off.
vibe init # Scan project, detect your AI tools, set up .vibe/
vibe start # Begin session — AI sees your latest progress
vibe sync # End session — save today's work from git
vibe status # Check state anytime
vibe adapt # Add or remove AI tool support
How it actually works
Every AI tool has a config file it reads automatically — CLAUDE.md for Claude, .cursor/rules/*.mdc for Cursor, GEMINI.md for Gemini, and so on.
vibe sync and vibe start write a compressed state summary directly into each tool's config file. The AI reads its own config → sees your latest progress. No magic, no plugins, no API calls.
You work with Claude → Claude writes checkpoints to .vibe/state/
↓
vibe sync → captures git log → compresses into 5-line summary → writes into all config files
↓
Switch to Cursor → Cursor loads its .mdc → sees what Claude did
Git is the ground truth. AI checkpoints (updating tasks.md) are best-effort — sometimes the AI forgets. But vibe sync pulls from git log, which never lies.
Migrating an existing project
Already have CLAUDE.md, .cursorrules, or AGENTS.md? Just run vibe init.
It extracts your rules, archives the originals to .vibe/archive/legacy/ (nothing is deleted), and generates clean new config files.
If your rules aren't in - bullet format, vibe warns you and leaves your files untouched.
AutoResearch — the experiment loop
vibe pairs naturally with autoresearch, an autonomous optimization framework.
vibe is the memory layer. autoresearch is the evolution layer. Together they form a closed loop:
/autoresearch:plan → define what to optimize (coverage, speed, score)
/autoresearch → AI runs experiments: modify → test → keep or revert
vibe sync → auto-captures which experiments worked
vibe start → next session shows "5 kept, 2 reverted"
→ AI learns from past experiments
Every adapter output already tells the AI about autoresearch — when it sees a measurable goal, it knows to suggest /autoresearch.
What each tool gets
| Tool | What vibe generates | What the AI sees |
|---|---|---|
| Claude Code | CLAUDE.md + rules + 5 slash commands |
Full state via @import |
| Cursor | .cursor/rules/vibe-standards.mdc |
Standards + summary inline |
| Windsurf | .windsurf/rules/vibe-standards.md |
Standards + summary inline |
| Cline | .clinerules/01-vibe-standards.md |
Standards + summary inline |
| Roo Code | .roo/rules/01-vibe-standards.md |
Standards + summary inline |
| Antigravity/Gemini | GEMINI.md |
Full (with fallback for older versions) |
| GitHub Copilot | .github/copilot-instructions.md |
Summary only (Copilot can't read files) |
| AGENTS.md | AGENTS.md |
Full — the cross-tool standard |
What it does NOT do
- Does not call any API. Runs 100% offline. No telemetry.
- Does not touch your git. Only reads — never commits or pushes.
- Does not lock you in.
.vibe/is plain Markdown. Delete it anytime. - Does not replace your workflow. You still talk to AI the same way. vibe just makes sure it remembers.
Install
pipx install vibe-state-cli
Safety
- Adapter removal is dry-run by default — nothing deleted without
--confirm - Migration is two-phase: copy all → verify → then delete originals
- File writes are atomic with Windows retry for antivirus locks
- Symlink and NTFS Junction traversal blocked
- Corrupt config halts with error — no silent defaults
- Advisory lock for concurrent writes (CI environments)
- Checkpoint compliance is honestly marked as best-effort (~40-60%)
License
MIT
Project details
Release history Release notifications | RSS feed
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 vibe_state_cli-0.3.2.tar.gz.
File metadata
- Download URL: vibe_state_cli-0.3.2.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e43ad4d61465ac81a84942f85d8761b574f01d8b6749da73ea7bb386166947d
|
|
| MD5 |
63b2609df0cf518bbb3f11004968420a
|
|
| BLAKE2b-256 |
40a49656e89911c5469e593b3041d1cc8bc40de79a3cd39a1761b69b7f15e17f
|
Provenance
The following attestation bundles were made for vibe_state_cli-0.3.2.tar.gz:
Publisher:
publish.yml on liyoncso-Theone/vibe-state-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vibe_state_cli-0.3.2.tar.gz -
Subject digest:
1e43ad4d61465ac81a84942f85d8761b574f01d8b6749da73ea7bb386166947d - Sigstore transparency entry: 1256108694
- Sigstore integration time:
-
Permalink:
liyoncso-Theone/vibe-state-cli@15cf04be46466b405d649b03a5b8ce2961d9f745 -
Branch / Tag:
refs/tags/v0.3.2 - Owner: https://github.com/liyoncso-Theone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@15cf04be46466b405d649b03a5b8ce2961d9f745 -
Trigger Event:
release
-
Statement type:
File details
Details for the file vibe_state_cli-0.3.2-py3-none-any.whl.
File metadata
- Download URL: vibe_state_cli-0.3.2-py3-none-any.whl
- Upload date:
- Size: 49.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9afcaf1a0a59c5c35c7bbdebb9657dbb37383a7dda5e291d5e8dc9d805c0bb
|
|
| MD5 |
53a72e0f73e754c250a3e69978eaabe9
|
|
| BLAKE2b-256 |
b0a8e5d4cd9d8b3b0043d6b0313a11c5f837bac0a671e858d223e85700075095
|
Provenance
The following attestation bundles were made for vibe_state_cli-0.3.2-py3-none-any.whl:
Publisher:
publish.yml on liyoncso-Theone/vibe-state-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vibe_state_cli-0.3.2-py3-none-any.whl -
Subject digest:
3a9afcaf1a0a59c5c35c7bbdebb9657dbb37383a7dda5e291d5e8dc9d805c0bb - Sigstore transparency entry: 1256108768
- Sigstore integration time:
-
Permalink:
liyoncso-Theone/vibe-state-cli@15cf04be46466b405d649b03a5b8ce2961d9f745 -
Branch / Tag:
refs/tags/v0.3.2 - Owner: https://github.com/liyoncso-Theone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@15cf04be46466b405d649b03a5b8ce2961d9f745 -
Trigger Event:
release
-
Statement type: