llmglot
A CLI tool for syncing canonical LLM agent configuration files across different coding assistants.
Why llmglot?
Managing configurations for multiple AI coding assistants is tedious. Each tool has its own location for instructions and skills:
- Claude uses
CLAUDE.mdand.claude/skills/ - Cursor uses
.cursorrulesand.cursor/rules/ - Windsurf uses
.windsurfrulesand.windsurf/rules/ - And so on...
llmglot lets you maintain a single source of truth (LLMGLOT.md + skills/) and sync it everywhere.
Installation
pip install llmglot
Or with uv:
uv add llmglot
Quick Start
- Create your canonical config:
# Create LLMGLOT.md with your project instructions
echo "# My Project\n\nProject-specific instructions for AI assistants." > LLMGLOT.md
# Create skills directory
mkdir -p skills
echo "# Code Review\n\nWhen reviewing code, check for..." > skills/code-review.md
- Sync to all agents:
llmglot sync all
That's it! Your config is now available to Claude, Cursor, Windsurf, Copilot, Cline, and Gemini.
Usage
# Preview what will be synced (recommended first step)
llmglot sync all --dry-run
# Sync everything to all agents
llmglot sync all
# Sync only to specific agents
llmglot sync all --target claude --target cursor
# Sync only skills or only the main instructions
llmglot sync skills
llmglot sync agents
Supported Agents
| Agent | Skills Directory | Instructions File |
|---|---|---|
| Claude | .claude/skills/ |
CLAUDE.md |
| Cursor | .cursor/rules/ |
.cursorrules |
| Windsurf | .windsurf/rules/ |
.windsurfrules |
| Copilot | .github/copilot-skills/ |
.github/copilot-instructions.md |
| Cline | .cline/rules/ |
.clinerules |
| Gemini | .gemini/skills/ |
GEMINI.md |
Templating
Use Jinja2 templates to customize content per agent:
# Project Guide
{% if agent_name %}
You are **{{ agent_name }}**.
{% endif %}
{% if agent_id == "claude" %}
Use /help for assistance.
{% elif agent_id == "cursor" %}
Use Cmd+K for inline edits.
{% endif %}
Available Variables
| Variable | Description | Example |
|---|---|---|
{{ agent_name }} |
Human-readable name | "Claude", "Cursor" |
{{ agent_id }} |
CLI identifier | "claude", "cursor" |
{{ skill_name }} |
Skill file stem (skills only) | "code-review" |
Project Structure
your-project/
├── LLMGLOT.md # Canonical instructions (synced to all agents)
├── skills/ # Reusable skills
│ ├── code-review.md
│ └── testing.md
├── CLAUDE.md # Generated - don't edit directly
├── .cursorrules # Generated - don't edit directly
└── ...
License
MIT
Metadata
Release files for llmglot 0.0.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 | |
|---|---|---|---|
| llmglot-0.0.0.tar.gz | 17.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llmglot-0.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / llmglot-0.0.0.tar.gz
| Download URL | llmglot-0.0.0.tar.gz |
|---|---|
| Size | 17.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ed36cbbfeeddf6524a445d9b339f2246677686235cf12748b0c32be2ff38dff
|
|
BLAKE2b-256 checksum How to use checksums |
f6f0291e07ce4332fdc564ae5a11bc79da7baf17f5465ea33db5ce2cd27c4c7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.22
|
Release files / llmglot-0.0.0-py3-none-any.whl
| Download URL | llmglot-0.0.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
85b2fa766b9272a7a6f7eb0386456f782559de5c9d9527186093e57537016a4a
|
|
BLAKE2b-256 checksum How to use checksums |
8d8414c1d577dd65a73e176085d427d6ee005a4e9de7dcd5148f05e30c996920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.22
|