Skip to content

Sync Cursor Cloud Agent skills from dotfiles - #27

Merged
rwjblue merged 3 commits into
masterfrom
rwjblue/cursor-skills-sync-cloud-agents
Nov 5, 2026
Merged

rwjblue merged 3 commits into
masterfrom
rwjblue/cursor-skills-sync-cloud-agents

Conversation

@rwjblue

@rwjblue rwjblue commented Nov 5, 2026

Copy link
Copy Markdown
Owner

BLUF: Feed Cursor's Cloud Agent skill sync from this repo, including private skills.

Cursor's "Sync Skills for Cloud Agents" uploads from its own store, seeded once from ~/.cursor/skills. With that path symlinked here, the store froze at the first import: rwjblue-mode and later edits never reached Cloud Agents, and symlinked private skills from local-packages were skipped entirely. Turning sync on also trashes the folders it imports, which through a symlink means this checkout.

Details

  • mise run cursor:skills-sync mirrors packages/agents/skills into the store, copying symlink targets, and removes a ~/.cursor/skills symlink. Cursor still reads the same skills locally from ~/.agents/skills and ~/.claude/skills. dot:install runs it after local setup; rerun it after editing skills.
  • Synced skills don't load in automations, so the cloud bootstrap stays. It can now also link a private skills repo via CURSOR_PRIVATE_SKILLS_REPO / CURSOR_PRIVATE_SKILLS_TOKEN Cloud Agent secrets, since the agent's GitHub token can't see personal private repos. The token goes in a request header, not .git/config.
  • The user rule becomes a fallback: use catalog skills when present, otherwise pull dotfiles on every run. It previously skipped the pull whenever the symlink existed, so cached environments kept stale skills.

Cursor's "Sync Skills for Cloud Agents" uploads skills from its own
store, which it seeds once from ~/.cursor/skills. Pointing that path at
this repo through a symlink left the store frozen at the first import:
new skills like rwjblue-mode never reached Cloud Agents. Sync also skips
symlinked skills, so the private ones from local-packages were never
uploaded, and turning sync on trashes the folders it imports.

The task mirrors packages/agents/skills into the store, copying symlink
targets so private skills come along, and removes a ~/.cursor/skills
symlink so sync can't trash this checkout. Cursor still reads the same
skills locally from ~/.agents/skills and ~/.claude/skills. dot:install
runs it after local setup.
The Cloud Agent GitHub token only covers the host repo's org, so a
start script can't clone personal private repos such as the local
dotfiles that hold work-specific skills.

When CURSOR_PRIVATE_SKILLS_REPO and CURSOR_PRIVATE_SKILLS_TOKEN are set
as Cloud Agent secrets, the bootstrap clones that repo with the token
in a request header (never in .git/config) and links its skill
directories next to the public ones.
The rule only pulled dotfiles when the ~/.cursor/skills symlink was
missing, so a cached environment kept serving stale skills. It also
relinked ~/.cursor/skills, which can clobber skills Cursor synced.

Skill sync and the bootstrap script are now the primary paths. The rule
tells the agent to use catalog copies when present, and otherwise to
pull dotfiles on every run and read skills from that checkout.
@rwjblue
rwjblue marked this pull request as ready for review November 5, 2026 05:14
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-05T05:16:12.813883Z cb58f04 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@rwjblue
rwjblue merged commit c79c79a into master Nov 5, 2026
4 checks passed
@rwjblue
rwjblue deleted the rwjblue/cursor-skills-sync-cloud-agents branch November 5, 2026 05:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cb58f044e7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

--exclude .gitignore \
--exclude .DS_Store \
--exclude node_modules \
"$src/" "$store/skills/"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include the cloud rule referenced by the synced skills

For Cloud Agent launches that use synced catalog skills without running the bootstrap, this copies rwjblue-mode/SKILL.md but omits its dependency: line 73 instructs cloud agents to follow ../../cursor-cloud-user-rule.md, which lives outside the copied subtree. Running this task against a temporary store confirmed that the referenced file is absent. The updated fallback rule also explicitly skips fetching dotfiles when catalog skills exist, so that path no longer supplies the missing instructions either. Make the skill self-contained or package the referenced rule with it so synced agents can read the complete cloud-specific restrictions.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant