Agent skill

Config Sync

by fmflurry in fmflurry/settings-opencode

Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code).

MITAuto-check passed

Install Config Sync

skills CLI
$ npx skills add fmflurry/settings-opencode --skill config-sync -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fmflurry/settings-opencode config-sync --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/config-sync .claude/skills/config-sync && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
config-sync
GitHub stars
171
Token cost
~2.7k tokens
SKILL.md length
945 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code).

  • Works in 3 steps: Edit the Repo → Propagate via settings-sync → Verify Propagation
  • SKILL.md covers Overview, What Goes Where: Decision &…, Workflow: Edit → Propagate →… and Encode Lessons in Structure, plus 3 more sections
  • Calls bash

What it does

Config Sync is an agent skill from fmflurry/settings-opencode. Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code). Invoke when adding, updating, or removing agents, rules, hooks, commands, prompts, skills, or harness config. Keywords: "add agent", "change rule", "update skill", "modify config", "add hook", "keep configs in sync", "propagate settings", "update my config", "harness configuration"

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Custom OpenCode settings. The licence is MIT.

Example prompts

  • “add agent”
  • “change rule”
  • “update skill”
  • “/config-sync”

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Edit the Repo
  2. Propagate via settings-sync
  3. Verify Propagation

What it can do on your machine

Read from SKILL.md and the folder at commit 0e6c33c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Config Sync loads about 2.7k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 945 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fmflurry/settings-opencode at commit 0e6c33c, republished under its MIT licence (© fmflurry). 945 words, ~2,690 tokens.

Download SKILL.mdSave it as .claude/skills/config-sync/SKILL.md (or your agent's skills folder).
name
config-sync
description
Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code). Invoke when adding, updating, or removing agents, rules, hooks, commands, prompts, skills, or harness config. Keywords: "add agent", "change rule", "update skill", "modify config", "add hook", "keep configs in sync", "propagate settings", "update my config", "harness configuration"

Configuration Sync

Overview

This repo is the single source of truth for both OpenCode and Claude Code harness configuration. Never hand-edit the live directories (~/.config/opencode, ~/.claude). Always edit the repo first, then propagate via settings-sync (works from any directory) or bash install.sh --yes (from the repo root).

What Goes Where: Decision & Mapping Table

Verified directory structure:

  • OpenCode target (~/.config/opencode) receives: entire repo tree minus .claude and excludes
  • Claude target (~/.claude) receives: ONLY the allowlist from .claude/ subtree
  • Skills are the only "edit once → both" case via union sync (root skills/ ∪ .claude/skills/, root wins)
ItemRepo source location(s)OpenCodeClaudeEdit location(s)Notes
Agents (OpenCode)opencode.jsonc (inline defs) + prompts/agents/*.txt (prompts)✓✗opencode.jsonc or prompts/agents/OpenCode-only. Agents defined inline in opencode.jsonc or as prompt templates. NO top-level agents/ dir exists.
Agents (Claude).claude/agents/✗✓.claude/agents/Claude-only agent definitions.
Rules.claude/rules/✗✓.claude/rules/Claude-only rules (e.g., orchestration.md, verification-gate.md, codebase-exploration.md).
Hooks.claude/hooks/✗✓.claude/hooks/Claude-only runtime hooks (e.g., installed by learning runtime).
Commandscommands/✓✗commands/OpenCode-only slash commands.
Promptsprompts/✓✗prompts/ (including prompts/agents/ for agent prompts)OpenCode-only prompt templates.
Contextscontexts/✓✗contexts/OpenCode-only context definitions.
Toolstools/✓✗tools/OpenCode-only tool definitions.
Pluginsplugins/✓✗plugins/OpenCode-only plugins.
Skills (shared)skills/ (primary source)✓✓skills/The ONLY "edit once, both harnesses" type. Root skills/ wins on name conflict with .claude/skills/ via union sync.
Skills (Claude-only/override).claude/skills/ (secondary source)✓✓.claude/skills/Lower priority; root skills/ overrides. Both targets receive via union sync.
Harness configopencode.jsonc✓✗opencode.jsoncOpenCode harness configuration (models, providers, settings, agent defs).
Global instructions.claude/CLAUDE.md + .claude/RTK.md✗✓.claude/CLAUDE.md, .claude/RTK.mdClaude-only global instructions and token-optimization guide.
Personal: settings.json.claude/settings.json (seed) or settings.json (root seed, if exists)⚠⚠Manual merge if neededSeed-only; never overwritten on reinstall. Edit live copy or merge after repo changes.
Personal: settings.local.json.claude/settings.local.json (seed)⚠⚠Manual merge if neededSeed-only; local overrides.
Personal: policy-limits.json.claude/policy-limits.json (seed)⚠⚠Manual merge if neededSeed-only; rate limit policies. User edits in live dir will NOT propagate via reinstall.
*Personal: .local.json*.local.json (seed)⚠⚠Manual merge if neededSeed-only; any other .local.json files.

Legend:

  • ✓ = Item is propagated to this target
  • ✗ = Item does not reach this target
  • ⚠ (seed-only) = Only populated on first install; user edits in the live dir are NOT synced back to the repo on reinstall. To propagate changes: edit repo source, run bash install.sh --yes, then manually re-apply personal customizations to the live copy.

Workflow: Edit → Propagate → Verify

This workflow is cwd-independent — it works from any directory, not just the repo root. The settings-sync command (installed globally onto PATH by install.sh) locates the repo for you.

Repo discovery order

settings-sync resolves the repo path in this order:

  1. $SETTINGS_OPENCODE_REPO — exported by the managed shell rc block, if it points at a directory with an executable install.sh
  2. $HOME/Workspace/settings-opencode
  3. $HOME/.local/share/settings-opencode

If none resolve, it exits with an error asking you to set SETTINGS_OPENCODE_REPO.

Step 1: Edit the Repo

Edit files under $SETTINGS_OPENCODE_REPO/... (absolute paths — always edit the canonical repo, never a live harness directory). Example:

bash
# Add a Claude-only agent
mkdir -p /Users/fmflurry/Workspace/settings-opencode/.claude/agents
vi /Users/fmflurry/Workspace/settings-opencode/.claude/agents/my-agent/AGENT.md

# Add an OpenCode agent (edit opencode.jsonc or create a prompt template)
vi /Users/fmflurry/Workspace/settings-opencode/opencode.jsonc
# OR add a prompt template:
echo "..." > /Users/fmflurry/Workspace/settings-opencode/prompts/agents/my-agent.txt

# Edit a Claude rule
vi /Users/fmflurry/Workspace/settings-opencode/.claude/rules/common/my-rule.md

# Add a new shared skill
mkdir -p /Users/fmflurry/Workspace/settings-opencode/skills/my-skill
echo "..." > /Users/fmflurry/Workspace/settings-opencode/skills/my-skill/SKILL.md
Step 2: Propagate via settings-sync

From any directory:

bash
settings-sync

This single command:

  1. Copies the repo tree → ~/.config/opencode (OpenCode target)
  2. Copies the .claude/ allowlist → ~/.claude (Claude target)
  3. Runs scripts/sync-skills.sh to build the canonical skill union (root skills/ ∪ .claude/skills/)
  4. Installs learning runtime (if applicable)

Fast path — skills only:

bash
settings-sync --skills-only

Use this only if you changed ONLY skills and want to skip the full install cycle.

Fallback (raw scripts, if settings-sync isn't on PATH yet):

bash
cd "$SETTINGS_OPENCODE_REPO" && bash install.sh --yes
# or, skills only:
bash "$SETTINGS_OPENCODE_REPO/scripts/sync-skills.sh" ~/.config/opencode/skills ~/.claude/skills
Show full SKILL.md (391 more words)Show less
Step 3: Verify Propagation

Spot-check that the edited file landed in the live directory:

bash
# Example: check that a Claude agent propagated
ls -la ~/.claude/agents/my-agent

# Example: check that an OpenCode prompt template propagated
ls -la ~/.config/opencode/prompts/agents/my-agent.txt

# Example: check that a new shared skill propagated to both
ls -la ~/.config/opencode/skills/my-skill
ls -la ~/.claude/skills/my-skill

# Example: check that a rule updated
diff /Users/fmflurry/Workspace/settings-opencode/.claude/rules/common/my-rule.md ~/.claude/rules/common/my-rule.md

# Example: check that opencode.jsonc propagated
diff /Users/fmflurry/Workspace/settings-opencode/opencode.jsonc ~/.config/opencode/opencode.jsonc

Propagation is complete when the edited files appear in their respective target locations.

Encode Lessons in Structure

A second written rule for the same failure is a signal: build a mechanism instead of another rule. Strength order: unrepresentable state (makes the error impossible) > lint rule / CI gate (fails the build) > shared helper / utility (reusable code) > runtime check (guards at the boundary) > prose rule (text). One-off slip → add a note. Recurring pattern → encode it: a hook, linter, plugin, or script, then delete the duplicated rule file.

Important: Seed-Only Personal Files

Files marked seed-only in the table above are populated only on first install. On subsequent reinstalls, install.sh preserves user edits in those files by never overwriting them.

Example:

  1. First install: ~/.claude/settings.json is seeded from the repo with defaults.
  2. User edits ~/.claude/settings.json manually (e.g., changes a model preference).
  3. Second install (bash install.sh --yes): The edited ~/.claude/settings.json is left untouched.
  4. To apply new defaults from the repo, you must manually merge or replace the file in the live dir.

Workaround: If you need to push a new default to a seed-only file:

bash
# Backup the current live version
cp ~/.claude/settings.json ~/.claude/settings.json.backup

# Copy the repo version (with new defaults)
cp /Users/fmflurry/Workspace/settings-opencode/.claude/settings.json ~/.claude/settings.json

# Manually re-apply your user edits
vi ~/.claude/settings.json  # add back your custom values

tldr: Do NOT expect bash install.sh --yes to overwrite your personal config files. They are managed by you, not the repo.

When NOT to Use This Skill

  • Project-local installations (--local flag): These create ./.opencode and ./.claude in your working directory for project-specific config. Do not use this skill for project-local installs; the propagation model is different (cwd-scoped, no global shell rc).
  • Runtime/session state: Do not use this skill to sync session data (conversations, proposals, cached proposals, debug state). Those are harness runtime artifacts and are excluded from propagation.
  • Manual editing of live dirs: If you hand-edited ~/.config/opencode or ~/.claude directly (not via the repo), those changes are local and will NOT propagate back to the repo on reinstall. Always edit the repo source first.

Command Reference

Run from anywhere via settings-sync; the raw install.sh/sync-skills.sh invocations below are the documented fallback (require cd "$SETTINGS_OPENCODE_REPO" or an absolute path first).

Full install (both harnesses, repo → ~/.config/opencode + ~/.claude):

bash
settings-sync
# fallback: bash install.sh --yes

OpenCode target only:

bash
settings-sync --opencode-only
# fallback: bash install.sh --yes --no-claude

Claude target only:

bash
settings-sync --claude-only
# fallback: bash install.sh --yes --no-opencode

Skills sync only (fast path):

bash
settings-sync --skills-only
# fallback: bash scripts/sync-skills.sh ~/.config/opencode/skills ~/.claude/skills

Where is the repo resolved to?

bash
settings-sync --where

Uninstall (removes live copies, keeps repo):

bash
settings-sync --uninstall
# fallback: bash install.sh --uninstall

Project-scoped (local mode, creates ./.opencode + ./.claude in cwd):

bash
bash install.sh --yes --local

See bash install.sh --help for full flag reference.

© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/config-sync of fmflurry/settings-opencode.

Open the folder on GitHubat commit 0e6c33c

Compare with similar skills

Config Sync next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Config Sync compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Config Sync this skillfmflurry/settings-opencode171—~2.7kAutomated safety check: PassMIT
Manage Settingsasgeirtj/system_prompts_leaks69k—~3.1kAutomated safety check: PassCC0-1.0
React Syncvercel/next.js143k—~486Automated safety check: PassMIT
Claude-Mem Cloud Syncthedotmack/claude-mem98k1 repos~1kAutomated safety check: NotesApache-2.0
Warp Settings Editorwarpdotdev/warp65k1 repos~675Automated safety check: PassAGPL-3.0
Agent Sync Coordinatorruvnet/ruflo74k2 repos~4kAutomated safety check: PassMIT

Similar skills

  • Manage Settings

    asgeirtj/system_prompts_leaks

    Any explicit Muse Code setting question or change (model, reasoning effort, /settings) requires a silent readskill call for bundled:manage-settings as FIRST ACTION—no assistant text or other tool…

    69k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • React Sync

    vercel/next.js

    Official

    Build local React changes in the bundle variants consumed by Next.js, sync them into a local Next.js checkout, and test the resulting integration.

    143k GitHub stars~486 tokensUpdated today
    Auto-check passed
  • Claude-Mem Cloud Sync

    thedotmack/claude-mem

    Checks claude-mem cloud sync status and guides you through connecting a cmem.ai Pro account without the sync token ever passing through the chat.

    98k GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check: notes
  • Warp Settings Editor

    warpdotdev/warp

    Finds and changes Warp application settings by searching a bundled JSON schema and editing the matching TOML settings file at the right nesting depth.

    65k GitHub starsUsed in 1 repo~675 tokens
    Productivity & AutomationAuto-check passed
  • Agent skill for sync-coordinator - invoke with $agent-sync-coordinator

    74k GitHub starsUsed in 2 repos~4k tokens
    Auto-check passed
  • Fix Sync

    ClickHouse/ClickHouse

    Fix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse.

    50k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed

More from fmflurry/settings-opencode

All 20 skills in this repo
  • Show Your Work

    fmflurry/settings-opencode

    Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result).

    171 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Playwright E2E Authoring

    fmflurry/settings-opencode

    Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.

    171 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Why

    fmflurry/settings-opencode

    A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

    171 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Angular Accessibility

    fmflurry/settings-opencode

    Audit and fix common accessibility issues in Angular templates and Angular Material components.

    171 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Angular Clean Architecture

    fmflurry/settings-opencode

    Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

    171 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Angular Cop

    fmflurry/settings-opencode

    Pre-merge code review for Angular + TypeScript pull requests.

    171 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Config Sync

What does Config Sync do?

Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code). Config Sync is an agent skill from fmflurry/settings-opencode. Sync configuration changes across the settings-opencode repo and live harness directories (OpenCode and Claude Code).

How do I install Config Sync in Claude Code?

Run `npx skills add fmflurry/settings-opencode --skill config-sync -a claude-code`. Or copy the skill folder (skills/config-sync in fmflurry/settings-opencode) into .claude/skills/config-sync in your project. Claude Code loads it when a task matches its description.

How do I install Config Sync in Codex?

Run `npx skills add fmflurry/settings-opencode --skill config-sync -a codex`. Or copy the skill folder (skills/config-sync in fmflurry/settings-opencode) into .agents/skills/config-sync in your project. Codex loads it when a task matches its description.

Can I use Config Sync in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fmflurry/settings-opencode --skill config-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/config-sync, .gemini/skills/config-sync, .github/skills/config-sync and .opencode/skills/config-sync in your project.

What does Config Sync need to run?

Going by SKILL.md and its folder, Config Sync needs the command-line tools its instructions call (bash).

Does Config Sync access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Config Sync safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Config Sync use?

Config Sync is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Config Sync use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Config Sync?

Skills that share tags, products or a category with Config Sync: Manage Settings (asgeirtj/system_prompts_leaks, 69k stars), React Sync (vercel/next.js, 143k stars), Claude-Mem Cloud Sync (thedotmack/claude-mem, 98k stars) and Warp Settings Editor (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Config Sync?

fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: fmflurry/settings-opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.