Sync LLM agent configuration files (AGENTS.md, skills/) across different coding assistants
Project description
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
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 llmglot-0.0.0.tar.gz.
File metadata
- Download URL: llmglot-0.0.0.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ed36cbbfeeddf6524a445d9b339f2246677686235cf12748b0c32be2ff38dff
|
|
| MD5 |
251afde8b857dd0801bad273a7736795
|
|
| BLAKE2b-256 |
f6f0291e07ce4332fdc564ae5a11bc79da7baf17f5465ea33db5ce2cd27c4c7c
|
File details
Details for the file llmglot-0.0.0-py3-none-any.whl.
File metadata
- Download URL: llmglot-0.0.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85b2fa766b9272a7a6f7eb0386456f782559de5c9d9527186093e57537016a4a
|
|
| MD5 |
30373cb5d918670ae3d12e22496b190d
|
|
| BLAKE2b-256 |
8d8414c1d577dd65a73e176085d427d6ee005a4e9de7dcd5148f05e30c996920
|