sesyncai
Capture, sync, and share your AI project context across tools and machines.
Stop re-explaining your project every time you switch between Claude, Cursor, ChatGPT, or move to a new machine. sesyncai scans your codebase once, captures your developer instructions, and generates a portable context snapshot you can export, sync, and reload anywhere.
Install
pip install sesyncai
Quick start
Just run sesyncai in your project directory — it walks you through everything:
cd your-project
sesyncai
┌──────────────────────────────────────────────┐
│ sesyncai — AI context capture & sync │
│ Project directory: /your-project │
└──────────────────────────────────────────────┘
1 Re-scan project (refresh context)
2 Scan for instructions in AI context files
3 Import instructions from a markdown file
4 Add an instruction manually
5 View captured instructions
6 Remove an instruction
7 Save as local markdown file
8 Export for Claude Code (CLAUDE.md)
9 Export for Cursor (.cursorrules)
10 Export for Windsurf (.windsurfrules)
11 Copy system prompt to paste anywhere
12 Sync to GitHub Gist
13 Exit
What would you like to do?
Pick a number. No commands to memorize.
Direct commands
Power users can also use individual commands:
sesyncai init # scan project
sesyncai capture --scan # extract rules from AI context files
sesyncai capture "your rule" # add a rule (category auto-detected)
sesyncai import notes.md # import rules from any markdown file
sesyncai instructions # view captured rules
sesyncai export claude # → CLAUDE.md
sesyncai export cursor # → .cursorrules
sesyncai export windsurf # → .windsurfrules
sesyncai export prompt # paste-ready system prompt (copied to clipboard)
sesyncai sync # push to GitHub Gist
sesyncai load <gist-id> # pull on another machine
sesyncai status # quick summary
sesyncai diff # check for context drift
What it captures
sesyncai init auto-detects from your project files:
| Signal | Source |
|---|---|
| Language & framework | pyproject.toml, package.json, pubspec.yaml, Cargo.toml, go.mod |
| Dependencies | Lock files, manifest files |
| Build & test commands | Package manager configs, Makefiles |
| Project structure | Directory tree (filtered) |
| Git remote & branch | .git/config |
| Existing AI context | CLAUDE.md, .cursorrules |
Everything is stored in .sesyncai/context.yaml — a single YAML file you can version, edit, or ignore.
Instruction capture
The rules and preferences you build up while prompting AI — "use functional components", "never mock the database", "we chose Riverpod over Bloc because..." — normally get lost when you start a new session.
sesyncai captures them:
# manually, as you make decisions
sesyncai capture "Prefer composition over inheritance" -c architecture
sesyncai capture "All API responses must include request_id" -c constraint
# or auto-extract from existing AI context files
sesyncai capture --scan
Auto-scan reads from:
CLAUDE.md— Claude Code project context.cursorrules— Cursor editor rules.claude/rules/*.md— scoped Claude rules with path metadata.github/copilot-instructions.md— GitHub Copilot config.windsurfrules— Windsurf editor rules
Instructions are categorized automatically (constraint, architecture, style, preference, convention, decision, workflow) and included in every export.
# review what's captured
sesyncai instructions
# remove one by number
sesyncai instructions --remove 3
# clear all
sesyncai instructions --clear
Export formats
| Format | Command | Output |
|---|---|---|
| Claude Code | sesyncai export claude |
CLAUDE.md |
| Cursor | sesyncai export cursor |
.cursorrules |
| Windsurf | sesyncai export windsurf |
.windsurfrules |
| System prompt | sesyncai export prompt |
Copied to clipboard + stdout |
Cloud sync
Push your context to a private GitHub Gist and pull it on any machine:
# push (creates or updates a gist)
sesyncai sync
# pull (downloads and saves locally)
sesyncai load abc123def456
Requires GitHub CLI authenticated: gh auth login
Supported languages
- Python (pyproject.toml, setup.py, requirements.txt)
- JavaScript / TypeScript (package.json)
- Flutter / Dart (pubspec.yaml)
- Rust (Cargo.toml)
- Go (go.mod)
How it works
your-project/
├── pyproject.toml ← sesyncai reads these for context
├── package.json ← (also Cargo.toml, pubspec.yaml, go.mod)
├── .git/ ← git remote & branch
├── CLAUDE.md ← extracts instructions from these
├── .cursorrules ← (also .claude/rules/, .windsurfrules,
├── .claude/rules/ ← copilot-instructions.md)
└── .sesyncai/
├── context.yaml ← project snapshot
└── instructions.yaml ← captured rules & preferences
sesyncai export claude → CLAUDE.md (with instructions)
sesyncai export cursor → .cursorrules (with instructions)
sesyncai export windsurf → .windsurfrules (with instructions)
sesyncai export prompt → clipboard + stdout
sesyncai sync → GitHub Gist (private)
License
MIT
Metadata
Release files for sesyncai 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sesyncai-0.1.0.tar.gz | 20.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sesyncai-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.7 kB
Release files / sesyncai-0.1.0.tar.gz
| Download URL | sesyncai-0.1.0.tar.gz |
|---|---|
| Size | 20.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d19542b3006c6e2db49b7ebc78abe28b30bbe2c9197c7ef67661811c4aec41c
|
|
BLAKE2b-256 checksum How to use checksums |
a9669495e690a89312239b3e86a79f364d93f883a2a1e5fad3b0d7af83ae6242
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / sesyncai-0.1.0-py3-none-any.whl
| Download URL | sesyncai-0.1.0-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bc9ae1200c47b4daa231a5630465b070db7eb827c74b495f7567057cebc5129
|
|
BLAKE2b-256 checksum How to use checksums |
78e8b5cbc4f7791675cdae9a67927bc32c66a2267f2bf30126bf9c812a9e36b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|