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.

Based on
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

  1. If you want reproducible behavior across computers, you need one source of truth for prompts/skills.
  2. If your providers expect files on disk, you also need an install/export path.
  3. The failure mode is silent drift (you changed one copy, forgot the other).
  4. 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:

A workflow that works

1) Treat the library as your source of truth

The mental shift is:

  • don’t treat .claude/skills or .opencode/skills as 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.

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.

skillspromptsclaudecodexopencodemulti-machine
Last updated: 2026-04-03