Allow ~/.jcode/skills to symlink shared skills instead of copying them
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 19.9k
- Forks
- 2.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 30
Description
What happens now
On first run, jcode appears to copy every skill from ~/.agents/skills (and/or ~/.claude/skills) into ~/.jcode/skills as independent files. On my machine all 64 entries in ~/.jcode/skills/ are real directories, byte-copies of ~/.agents/skills/, created at the same timestamp as mcp.json/servers.json (first launch of this version). By contrast, ~/.claude/skills/<skill> is a symlink into ~/.agents/skills/<skill>.
Problem
The copies silently drift. I edited reviewing-prs/SKILL.md in ~/.jcode/skills; the .agents/.claude copies stayed on the old version. There's no indication the jcode copy is a fork, and no way to keep them converged short of manual cp/ln.
Request
Offer a way to have ~/.jcode/skills reference shared skills by symlink rather than copy, e.g.:
- a
config.tomloption (e.g.[skills] link = trueor askills_dirpointer), and/or - prefer symlinking when the source is already a symlink farm like
~/.agents/skills.
Context / possible rationale
This mirrors the documented MCP behavior ("one-time import... then jcode-owned, not synced"). I suspect copying is intentional for edit safety, so editing a jcode skill doesn't mutate the shared .agents source used by other harnesses. If so, a symlink mode should be opt-in with that caveat documented. For users who treat .agents/skills as the single source of truth, copy-on-first-run is just duplication and drift.
Environment
jcode v0.84.0 (57d587899), macOS aarch64.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by locating the skill import logic and config.toml handling, then determine how an opt-in symlink mode should interact with existing copy behavior. Done means shared skills can be referenced without silent copies, with the safety caveat documented and relevant behavior covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100