cursor-setup — Claude Code skill: what it does, how to install
Configures and checks the Cursor backend for Claude Code Harness. Useful when setting Cursor as your default local execution engine.
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a claude-codeWhat cursor-setup does
This skill manages implementation backends inside Claude Code Harness. It invokes bash helper scripts setup-cursor.sh and set-impl-backend.sh to inspect or switch execution targets. Upstream distribution defaults remain untouched. Changes affect only your local repository or user settings when passing --project-default or --user-default.
Diagnostics search for the agent or cursor-agent executable in $PATH and $HOME/.local/bin. Without this binary, execution halts with exit code 3. The skill deliberately leaves ~/.cursor/permissions.json and .cursorignore to manual user control.
What it helps with
- verify local
cursor-agentbinary availability and version - assign Cursor as the project-level default execution backend
- configure Cursor as the user default backend engine
- remove backend override configurations using
--unset
Example prompts for the agent
- Check Cursor readiness:
cursor:setup --check - Set Cursor as default for this repository:
cursor:setup --project-default - Clear current backend settings:
cursor:setup --unset
How to install cursor-setup
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a claude-code2Manually: put the files in place
~/.claude/skills/cursor-setup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cursor-setup/
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a codex2Manually: put the files in place
.agents/skills/cursor-setup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a cursor2Manually: put the files in place
.cursor/skills/cursor-setup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Chachamaru127/claude-code-harness cursor-setup2Manually: put the files in place
.github/skills/cursor-setup/SKILL.md1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a gemini-cli2Platform CLI
gemini skills install https://github.com/Chachamaru127/claude-code-harness --path skills/cursor-setupManually: put the files in place
.devin/skills/cursor-setup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cursor-setup
How to install cursor-setup in Claude Code?
Run npx skills add Chachamaru127/claude-code-harness --skill cursor-setup -a claude-code.
What does cursor-setup do?
It verifies local Cursor tooling and switches the execution backend in Claude Code Harness.
Which binary is required for the setup check?
You need cursor-agent or agent available in $PATH or under $HOME/.local/bin. Missing binaries trigger exit code 3.
Source text
SKILL.md · MIT
---
name: cursor-setup
description: "Configure and verify the Cursor backend for Claude Code Harness. Use when user invokes cursor:setup, wants Cursor as the local default implementation backend, or asks to check Cursor plugin/agent readiness. Distribution default remains opt-in; only local env/user settings are changed when explicitly requested."
description-en: "Configure and verify the Cursor backend for Claude Code Harness. Use when user invokes cursor:setup, wants Cursor as the local default implementation backend, or asks to check Cursor plugin/agent readiness. Distribution default remains opt-in; only local env/user settings are changed when explicitly requested."
description-ja: "Claude Code Harness の Cursor backend を設定・検証するスキル。cursor:setup、Cursor を現環境の default 実装 backend にしたい、Cursor plugin/agent readiness を確認したい時に使う。配布 plugin の default は opt-in のまま維持し、明示依頼がある場合だけ local env/user 設定を変更する。"
allowed-tools: ["Read", "Bash"]
argument-hint: "[--check | --user-default | --project-default | --unset]"
user-invocable: true
---
# cursor:setup - Cursor Backend Setup
Cursor backend の setup / verification 用 skill。配布 plugin の fallback は `claude` のままにし、現在の repo / user 環境だけ `cursor` default にする時に使う。
## Quick Reference
```bash
cursor:setup --check
cursor:setup --user-default
cursor:setup --project-default
cursor:setup --unset
```
## Rules
- Do not change distribution defaults or plugin manifests to make Cursor the shipped fallback.
- Use `scripts/resolve-impl-backend.sh` / `scripts/set-impl-backend.sh`; do not infer from `HARNESS_IMPL_BACKEND` alone.
- Treat `~/.cursor/permissions.json`, `.cursorignore`, and Claude sandbox allowlists as manual/user-owned setup surfaces unless the user explicitly asks to edit a local file.
## Flow
First resolve the Harness helper root. Keep the current working directory as the target project so project-scoped `env.local` writes still land in the user's repo:
```bash
HARNESS_PLUGIN_ROOT="${HARNESS_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}"
if [ -z "$HARNESS_PLUGIN_ROOT" ] && [ -n "${CLAUDE_SKILL_DIR:-}" ]; then
probe="$(cd "${CLAUDE_SKILL_DIR}" && pwd)"
while [ "$probe" != "/" ] && [ ! -d "$probe/scripts" ]; do
probe="$(cd "$probe/.." && pwd)"
done
[ -d "$probe/scripts" ] && HARNESS_PLUGIN_ROOT="$probe"
fi
if [ -z "$HARNESS_PLUGIN_ROOT" ]; then
echo "ERROR: HARNESS_PLUGIN_ROOT is not set and could not be derived from CLAUDE_PLUGIN_ROOT or CLAUDE_SKILL_DIR" >&2
exit 2
fi
```
1. For `--check`, run:
```bash
bash "${HARNESS_PLUGIN_ROOT}/scripts/setup-cursor.sh" --check
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --show
bash "${HARNESS_PLUGIN_ROOT}/scripts/resolve-impl-backend.sh" --role worker
CURSOR_AGENT_BIN="${CURSOR_AGENT_BIN:-}"
if [ -z "$CURSOR_AGENT_BIN" ]; then
# `agent`(公式の新表記)→ `cursor-agent`(legacy alias)の順に探す。
# `agent` は汎用的な名前なので、symlink 解決後の実パスの「成分」に
# cursor-agent が完全一致で現れる場合だけ採用する(部分文字列一致だと
# /x/cursor-agent-not-really/agent のようなディレクトリ名で突破される)。
for _c in agent cursor-agent; do
_p="$(command -v "$_c" 2>/dev/null)" || continue
[ -n "$_p" ] || continue
_r="$(realpath "$_p" 2>/dev/null || readlink -f "$_p" 2>/dev/null || echo "$_p")"
case "/$_r/" in */cursor-agent/*) CURSOR_AGENT_BIN="$_p"; break ;; esac
done
if [ -z "$CURSOR_AGENT_BIN" ] && [ -x "$HOME/.local/bin/cursor-agent" ]; then
CURSOR_AGENT_BIN="$HOME/.local/bin/cursor-agent"
fi
fi
if [ -z "$CURSOR_AGENT_BIN" ]; then
echo "ERROR: cursor-agent not found in PATH or $HOME/.local/bin" >&2
exit 3
fi
"$CURSOR_AGENT_BIN" --version
```
2. For `--user-default`, run:
```bash
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --user cursor
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --show
```
3. For `--project-default`, run:
```bash
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" cursor
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --show
```
4. For `--unset`, ask whether the target is user or project scope if not clear from the request, then run exactly one matching unset command:
Project scope:
```bash
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --unset
```
User scope:
```bash
bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" --unset --user
```
## Output
Report three facts only:
- resolved backend (`claude` / `codex` / `cursor`)
- Cursor package readiness (`setup-cursor.sh --check`)
- next manual step if Cursor is not ready
© Chachamaru127 · MIT · Chachamaru127/claude-code-harness