npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hungv47/syncthis

v0.2.2

Published

Keep your AI tools in sync. Cross-pollinate MCP server configs across 11 coding agents (Claude, Cursor, Codex, Gemini, Kimi, OpenCode, OpenClaw, Hermes, Windsurf, Antigravity, Copilot). Skills delegated to npx skills. Install with mcpm or npx skills add;

Downloads

593

Readme

syncthis

npm site license

syncthis

syncthis run mirroring MCP servers across 11 agents

Keep your AI coding agents in sync.

A sync layer for MCP server configs across 11 AI coding agents — Claude Code, Cursor, Codex, Gemini CLI, Kimi CLI, OpenCode, OpenClaw, Hermes, Windsurf, Antigravity, GitHub Copilot CLI. Install MCPs with whatever tool you prefer — mcpm, claude mcp add, etc. — then run syncthis run to mirror them everywhere.

For skills, syncthis delegates to vercel-labs/skills, which supports 55 agents.

What syncthis is — and isn't

| | | |---|---| | ✅ syncs MCP server configs across 11 coding agents | ❌ installs MCP servers (use mcpm, claude mcp add, etc.) | | ✅ refreshes skills via npx skills update -y | ❌ installs skills from registries (use npx skills add) | | ✅ supports one-way mirror and fan-out from one agent | ❌ starts desktop-owned MCP servers like Paper/Pencil | | ✅ removes one MCP server across every supported agent | ❌ treats legacy/unmanaged MCP files as source of truth |

Install

bun install -g @hungv47/syncthis
# or
npm install -g @hungv47/syncthis

How it works

# 1. install MCP servers / skills with your preferred tool
mcpm install github
npx skills add vercel-labs/agent-skills --skill frontend-design

# 2. mirror everything to every agent
syncthis run

That's it. No config file, no source-of-truth to maintain.

For removals, do not use union sync first. Remove from a clean source or use syncthis rm; otherwise a server that still exists in one agent will be propagated back to the others.

Commands

syncthis                              # interactive picker (or HELP if non-TTY)
syncthis run    [--dry-run] [--no-skills]   # MCP + skills (alias for sync)
syncthis sync   [--dry-run] [--no-skills]   # same as run
syncthis mcp    [--dry-run]                 # MCP only
syncthis skills                             # skills only — `npx skills update -y`
syncthis <from> <to> [--yes] [--dry-run]    # one-way mirror MCP from one agent to another
syncthis from <agent> --all [--yes] [--dry-run] # mirror one agent to every other agent
syncthis rm <server> --all [--yes] [--dry-run]  # remove one MCP server everywhere
syncthis doctor                             # coverage + conflict report
syncthis help

--dry-run prints what would change without writing. --no-skills skips the skills update phase. --all is required for fan-out and remove-all commands. --yes skips the confirmation prompt for destructive commands.

Supported agents

| Agent | Config file | |---|---| | claude-code | ~/.claude.json (merges top-level + every projects.*.mcpServers scope) | | cursor | ~/.cursor/mcp.json | | codex | ~/.codex/config.toml | | gemini-cli | ~/.gemini/settings.json | | kimi-cli | ~/.kimi/mcp.json | | antigravity | ~/.gemini/antigravity/mcp_config.json | | github-copilot | ~/.copilot/mcp-config.json (override via $COPILOT_HOME) | | windsurf | ~/.codeium/windsurf/mcp_config.json | | opencode | ~/.config/opencode/opencode.json | | openclaw | ~/.openclaw/openclaw.json (override via $OPENCLAW_CONFIG_PATH) | | hermes-agent | ~/.hermes/config.yaml |

What syncthis run does

  1. Reads MCP servers from each agent's config. For Claude, merges top-level + every per-project scope.
  2. Computes the union. Any server present in any agent gets propagated to every agent.
  3. Detects conflicts. If the same server name has different configs across agents, syncthis leaves each agent's own version untouched and reports the conflict — you resolve manually.
  4. Refreshes skills by running npx skills update -y. Skills sync is delegated to vercel-labs/skills, which handles 55 agents.

Every target file is backed up to <file>.syncthis.bak on the first write so you can recover if something goes wrong.

Directional sync

syncthis claude-code codex --dry-run

Mirrors MCP servers from claude-code to codex (one-way, destructive). Shows a diff and asks for confirmation before writing — pass --yes to skip the prompt. The conflict policy of the union sync does NOT apply here: this is an explicit overwrite of to's config with from's.

To fan out one clean source to every other supported agent:

syncthis from antigravity --all --dry-run
syncthis from antigravity --all --yes

Conflict example (union sync)

$ syncthis run
read 3 server name(s) across 11 agent(s); 2 synced, 1 conflict(s)
  ✓ claude-code     ~/.claude.json
  ✓ cursor          ~/.cursor/mcp.json
  ...

1 conflict(s) — left each agent's own copy untouched:
  ~ github
      in claude-code
      in cursor
  resolve by deleting the version you don't want, then re-run sync.

Removing a server

Use the explicit remove command:

syncthis rm executor --all --dry-run
syncthis rm executor --all --yes

syncthis run is a union sync. If executor still exists in one agent, union sync will re-propagate it. syncthis rm avoids that by deleting the named server from every supported agent in one pass.

Desktop-owned servers

Paper and Pencil can be desktop-owned: the config may be synced, but the server only responds when the desktop client starts it. syncthis only syncs config; it does not launch those apps.

Unmanaged MCP files

syncthis doctor warns when known side files contain MCP servers that syncthis does not write, such as VS Code user MCP config or the legacy ~/.config/mcp/servers.json. Treat those as app-owned or legacy files, not the canonical source for coding-agent sync.

Skills

Skills are handled entirely by npx skills (Vercel Labs). syncthis runs npx skills update -y as part of run/sync to refresh registry-installed skills. For installing skills, use npx skills add <repo> directly. See skills.sh for the registry.

License

MIT