Metadata-Version: 2.4
Name: agentsmd
Version: 1.2.4
Summary: CLI tool for scaffolding and syncing AI agent workspace configuration files
License-Expression: MIT
Author: Gentlabs.ai: Admin
Author-email: contact@gentlabs.ai
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Requires-Dist: httpx (>=0.28.0,<0.29.0)
Requires-Dist: jinja2 (>=3.1.0,<4.0.0)
Requires-Dist: pydantic (>=2.0.0,<3.0.0)
Requires-Dist: pyyaml (>=6.0,<7.0.0)
Requires-Dist: typer (>=0.9.0,<1.0.0)
Project-URL: Bug Tracker, https://gentlabs.ai/contact
Project-URL: Documentation, https://agentsmd.live/docs/cli
Project-URL: Homepage, https://agentsmd.live/
Description-Content-Type: text/markdown

# AgentsMD

CLI tool for scaffolding and syncing AI agent workspace configuration files.

## Installation

```bash
pip install agentsmd
```

## Quick Start

```bash
# First, authenticate (get a token from https://agentsmd.live)
agentsmd login --token <your-token>

# Create a new workspace in the current folder
agentsmd init

# Push your workspace to the cloud
agentsmd sync
```

### On another machine

```bash
agentsmd login --token <same-token>
agentsmd init                    # pick your workspace from the list
```

## Features

- **Import-or-Generate Init** — `agentsmd init` detects existing agent files (CLAUDE.md, .cursor/rules/, .claude/, .cursorrules, .windsurfrules, copilot-instructions.md, CONVENTIONS.md, .clinerules, .continue/, AGENTS.md, .rules, KIMI.md…) and imports them. If none are present, it asks one question (which tool?) and scans your repo (package.json scripts, framework, README) to generate a single high-quality config file.
- **Multi-Machine Sync** — Push and pull workspaces across machines with a single token
- **Cross-Tool Sync** — Convert between AI tool config formats (Claude Code, Cursor, Copilot, Windsurf)
- **Format Migration** — Migrate existing config files between formats
- **Reconciliation** — Re-derive all tool formats from a single source of truth

## How workspaces work

A workspace is a named set of agent config files that lives in your AgentsMD
cloud account. Each local folder is bound to one workspace, so commands like
`sync` know what to push and pull.

You can rename or move the folder freely. The binding follows the directory.
Free accounts get 1 workspace; Pro unlocks unlimited.

## Commands

| Command | Description |
|---------|-------------|
| `agentsmd login --token <X>` | Authenticate via API token |
| `agentsmd logout` | Clear local credentials |
| `agentsmd init` | Show workspace picker (clone existing or create new) |
| `agentsmd init --name NAME` | Create a new workspace (shortcut when no cloud workspaces exist) |
| `agentsmd init --from <name>` | Clone an existing workspace by name |
| `agentsmd init --directory <dir>` | Target directory when cloning with `--from` |
| `agentsmd init --force` | Overwrite a target file in generate-mode if it already exists |
| `agentsmd init --no-push` | Skip the automatic cloud upload at the end of init |
| `agentsmd init --no-hide-ide` | Don't auto-hide `.agentsmd/` from VS Code / Cursor / Zed / Sublime / JetBrains |
| `agentsmd list` | List your cloud workspaces |
| `agentsmd link <name>` | Bind the current folder to an existing workspace |
| `agentsmd link --remove` | Remove the local binding (cloud workspace is preserved) |
| `agentsmd delete <name>` | Delete a cloud workspace and all its files |
| `agentsmd delete <name> --force` | Skip confirmation when deleting |
| `agentsmd up` | Upload local changes to the cloud |
| `agentsmd down` | Download cloud changes to local |
| `agentsmd sync` | Bidirectional sync with the cloud. Default conflict policy: prompt per file |
| `agentsmd sync --interactive` | Per-conflict prompt: [L]ocal / [C]loud / [M]erge (also the default) |
| `agentsmd sync --auto` | Newest-mtime wins; rejected version saved under `.agentsmd/conflicts/` |
| `agentsmd status` | Show sync status for the current workspace |
| `agentsmd restore` | Undo the last `sync`/`up`/`down` by restoring backed-up files |
| `agentsmd restore --dry-run` | Preview what `restore` would do without writing |
| `agentsmd resolve <path>` | Redo the most recent conflict for a single file |
| `agentsmd config get <key>` | Print a stored preference (e.g. `conflict.strategy`) |
| `agentsmd config set <key> <val>` | Store a preference (e.g. `conflict.strategy interactive`) |
| `agentsmd config unset <key>` | Remove a preference (restores default behavior) |
| `agentsmd config list` | Show every stored preference |
| `agentsmd convert --reconcile` | Re-derive all tool config formats from the source of truth |
| `agentsmd convert --from <fmt>` | Convert between AI tool config formats |
| `agentsmd convert --from <fmt> --to <fmt>` | Convert to a specific target format |
| `agentsmd convert --from <fmt> --dry-run` | Print conversion output without writing files |

## Supported AI Tools

`agentsmd init` detects and syncs config from any of these. Generate-mode picks
one as the target.

| Tool | Files |
|------|-------|
| Claude Code | `CLAUDE.md`, `.claude/` |
| Cursor | `.cursorrules`, `.cursor/rules/*.mdc` |
| GitHub Copilot | `.github/copilot-instructions.md`, `.github/instructions/` |
| Windsurf | `.windsurfrules`, `.windsurf/rules/` |
| OpenCode / Codex | `AGENTS.md` |
| Aider | `CONVENTIONS.md`, `.aider.conf.yml` |
| Cline | `.clinerules` |
| Continue | `.continue/` |
| Zed | `.rules` |
| Kimi CLI | `KIMI.md`, `.kimi/` |

## Requirements

- Python 3.9+

