How to keep prompts and skills in sync across Claude Code, Codex, and OpenCode (without copy/paste drift)
A practical workflow for reusable instructions across computers: one source of truth, safe installs, and drift detection when providers expect files on disk.
- CLI
- 0.1.0
- Preview ref
- f36aa45
I like the idea of “skills” and reusable prompts.
I don’t like the reality of how they’re usually managed:
- a folder on one machine
- a different folder on another
- a bunch of slightly different versions
Then you start a session and you can’t tell which instruction set it’s actually using.
That’s the drift problem.
This guide is about a workflow that keeps prompts/skills boring across Claude Code, Codex, and OpenCode.
TL;DR
- If you want reproducible behavior across computers, you need one source of truth for prompts/skills.
- If your providers expect files on disk, you also need an install/export path.
- The failure mode is silent drift (you changed one copy, forgot the other).
- Happier is one option that helps because it treats the library as the source of truth, can export/install to provider-native locations, and tracks links/digests so it can detect drift instead of overwriting silently.
The problem
Reusable instructions are only useful if they’re consistent.
Once you have:
- more than one machine, or
- more than one provider,
…copy/paste becomes a liability.
What I tried first (and where I bounced off)
- Just keep a gist and copy/paste when needed: works, but it’s manual and inconsistent.
- Git repo of prompts: better, but you still need to install/export into provider-native locations.
- Separate per-provider folders: fine until you want one rule to apply everywhere.
If you’re new to Happier
If you haven’t seen Happier before: it’s an open-source companion app (mobile/web/desktop) for running sessions like Claude Code, Codex, and OpenCode across computers.
The relevant part for this guide is: it gives you a single prompt/skill library, plus safe ways to export/install to provider-native locations.
Get set up:
- How to run Happier from your phone
- GitHub: https://github.com/happier-dev/happier
- Install/download: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
A workflow that works
1) Treat the library as your source of truth
The mental shift is:
- don’t treat
.claude/skillsor.opencode/skillsas your library - treat those as export targets
2) Use templates when you want quick composer shortcuts
If you want “/review” or “/ship-check” style shortcuts, use templates that insert a saved prompt.
This is better than copy/paste because it stays synced.
3) Use system prompt additions for durable behavior
When you want a rule to apply to every session (or a profile), use system prompt additions.
This is how you keep “how I review diffs” consistent without retyping it.
4) Export/install to provider-native locations (copy vs symlink)
This is the practical part people trip over.
Some tools (or teams) expect real files on disk:
.claude/skills.opencode/skills.agents/skills.claude/commands
So you need an export path.
In Happier you can export prompts/skills to machine targets, and you can choose the install method:
- Copy: writes a standalone copy into the target location.
- Good when you need a fully self-contained folder.
- Trade-off: updates are manual.
- Symlink: keeps one Happier-managed materialized copy and links the external target to it.
- Good when you want updates to be easy.
- Trade-off: some environments don’t like symlinks (or you want a fully portable folder).
The reason this matters for multi-computer workflows is that you can make the same skill bundle appear in the provider-native locations on multiple computers, without keeping multiple divergent copies.
5) Secrets and provider tokens: don’t bake them into skill files
A very common mistake is putting API keys inside a skill bundle.
That works… until you:
- export the skill to another machine
- share the repo
- paste the skill into an issue
If a skill needs credentials, treat the skill as code and treat credentials as secrets:
- keep the skill content generic
- pull credentials from the environment or a saved secret system
- bind secrets per profile / per machine
(If you’re using Happier profiles, the CLI secret resolution order matters: env → saved secret binding → interactive prompt.)
5) Don’t silently overwrite: detect drift
The best feature here is boring safety:
- if the external copy changes, Happier detects a digest mismatch
- it doesn’t overwrite your files silently
That means you can intentionally edit locally when you need to, and still know you’re out of sync.