Model-agnostic AI-human collaboration state management CLI
Project description
vibe-state-cli
Stop losing your AI's memory every time you close the terminal.
What vibe-state-cli does
It creates a .vibe/ directory in your project that acts as a shared brain between you and any AI coding tool. When you switch from Claude Code to Cursor to Copilot, they all read from the same state — your progress, your tasks, your architecture decisions, your coding standards.
Five commands. That's it:
vibe init # Scan your project, set up .vibe/, detect your AI tools
vibe start # Load yesterday's context, check git, show what to work on
vibe sync # Save today's progress from git, review with C.L.E.A.R. checklist
vibe status # Quick look at project state (works anytime)
vibe adapt # Add or remove AI tool adapters
What vibe-state-cli is trying to solve
AI coding assistants are powerful but forgetful. Every session starts from zero. You waste time re-explaining your project, your conventions, your progress. And if you use more than one tool, each one lives in its own silo — Claude doesn't know what you did in Cursor, Copilot doesn't know what you told Gemini.
vibe-state-cli fixes this by giving every AI tool a single source of truth to read from.
It also prevents your AI context from growing out of control. As current.md and tasks.md accumulate history, the built-in compactor uses Markdown AST parsing to safely remove old sections without ever breaking code blocks or document structure.
What vibe-state-cli does NOT do
- Does not replace your existing setup. If you already have a
CLAUDE.md,.cursorrules, orAGENTS.md, vibe imports your rules and leaves your files alone. It's additive, not destructive. - Does not require an API key. Everything runs 100% offline. No telemetry, no network calls.
- Does not lock you in. The
.vibe/directory is plain Markdown files. You can read, edit, or delete them anytime. No proprietary format. - Does not change how you work with AI. You still talk to Claude, Cursor, Copilot the same way. vibe just makes sure they all start each session with the right context.
- Does not auto-commit or push code. It only reads git status. Your repository is yours.
Install
pipx install vibe-state-cli
Why
pipx? Because this is a CLI tool, not a library.pipxinstalls it in an isolated environment so it never conflicts with your project dependencies.
Smart Migration
Already have AI config files? vibe detects them automatically:
$ vibe init
Scanning project...
Found 2 existing config file(s):
- CLAUDE.md
- .cursorrules
Imported 9 rules into .vibe/state/standards.md
The following legacy config files have been imported into .vibe/
and are no longer needed:
- CLAUDE.md
- .cursorrules
Your rules are preserved. Your files are not overwritten. You decide when to clean up.
Supported AI Tools
| Tool | What vibe generates | How it's detected |
|---|---|---|
| Claude Code | .claude/rules/vibe-standards.md |
.claude/ directory |
| Cursor | .cursor/rules/vibe-standards.mdc |
.cursor/ directory |
| GitHub Copilot | .github/copilot-instructions.md |
existing copilot config |
| Windsurf | .windsurf/rules/vibe-standards.md |
.windsurf/ directory |
| Cline | .clinerules/01-vibe-standards.md |
.clinerules/ directory |
| Roo Code | .roo/rules/01-vibe-standards.md |
.roo/ directory |
| Antigravity / Gemini | GEMINI.md |
GEMINI.md or .gemini/ |
| AGENTS.md (universal) | AGENTS.md |
always generated |
Only detected tools get adapter files. When multiple adapters are active, duplicate content is automatically eliminated to save tokens.
Autoresearch Integration
Works with autoresearch experiment loops. vibe sync detects experiment commits in your git history and records which ones were kept vs reverted in state/experiments.md. Patterns are configurable in .vibe/config.toml.
Safety
- Adapter removal defaults to dry-run — nothing gets deleted until you confirm
- Every generated file gets a snapshot; vibe warns you before overwriting your manual edits
- Backups are kept (last 3) before any deletion
- Corrupt config halts execution instead of silently using defaults
- File writes are atomic (temp + rename) with exponential backoff locking
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.2.0.tar.gz.
File metadata
- Download URL: vibe_state_cli-0.2.0.tar.gz
- Upload date:
- Size: 32.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0f0c21b5fd48185b7cb89077c7fe84a677a0651450ff5547d96dbd6d2e1135f
|
|
| MD5 |
7cf0275a9691d1608fe17ba587ef3237
|
|
| BLAKE2b-256 |
57949dc30721bf10aefdf7dddacf99a240167d55424a252a76a94b0765f93208
|
Provenance
The following attestation bundles were made for vibe_state_cli-0.2.0.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.2.0.tar.gz -
Subject digest:
d0f0c21b5fd48185b7cb89077c7fe84a677a0651450ff5547d96dbd6d2e1135f - Sigstore transparency entry: 1247284862
- Sigstore integration time:
-
Permalink:
liyoncso-Theone/vibe-state-cli@ba94c82731eb27bad855e15e2ccd09e28ebf1cad -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/liyoncso-Theone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba94c82731eb27bad855e15e2ccd09e28ebf1cad -
Trigger Event:
release
-
Statement type:
File details
Details for the file vibe_state_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: vibe_state_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 50.4 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 |
8c7d77448dbad276d3cd5c159a7a603cce62ad29af0a1caff5c12b68dd14fe24
|
|
| MD5 |
8b5041d89913b58a36603c407ff7751d
|
|
| BLAKE2b-256 |
b57ded85c7a80da5ba1305ae71d669999f7ad464ca3d398794295bd120f00651
|
Provenance
The following attestation bundles were made for vibe_state_cli-0.2.0-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.2.0-py3-none-any.whl -
Subject digest:
8c7d77448dbad276d3cd5c159a7a603cce62ad29af0a1caff5c12b68dd14fe24 - Sigstore transparency entry: 1247284870
- Sigstore integration time:
-
Permalink:
liyoncso-Theone/vibe-state-cli@ba94c82731eb27bad855e15e2ccd09e28ebf1cad -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/liyoncso-Theone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba94c82731eb27bad855e15e2ccd09e28ebf1cad -
Trigger Event:
release
-
Statement type: