본문으로 건너뛰기
cccskills
무료GitHub에 공개

install-skill

Install a Skill into the current workspace from a Git repository or local directory. Use this whenever the user wants to: - Add a new Skill to the agent ("install the X skill", "add the foo skill", "I want a skill that does Y, find one") - Pull the latest version of an already-installed Skill ("update the X skill", "refresh my skills") - List Skills currently active in the workspace - Remove a Skill they no longer need Trigger on phrases like "装一个 X skill", "安装技能", "install skill", "update skill", "list skills", "remove skill", "找个能 X 的 skill". Do not require the user to say the literal Skill name — if they describe a capability, propose a candidate Skill (Git URL or local path) and confirm before installing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md6.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Install Skill

A Skill that helps the agent install, list, update, and remove other Skills in the workspace.

Skills live under {workspace}/skills/<skill-name>/ and are auto-discovered by the deepagents skills middleware on the next agent session. Built-in Skills shipped with octop-harness live under {workspace}/_builtin_skills/ and must not be edited directly — they are wiped and re-synced from the package on every HarnessAgent.init() call.

Sources we support

SourceWhat you give the agentExample
Git repo (single Skill)A Git URL whose root contains SKILL.mdhttps://github.com/owner/my-skill.git
Git repo (subdir)A Git URL + a relative path inside the repohttps://github.com/owner/skills-collection.git + ./searxng
Local directoryAn absolute or workspace-relative path/Users/me/my-drafts/cool-skill

We deliberately don't bundle a remote registry. Hosting Skills on GitHub (or any HTTPS-accessible Git server) is enough.

Workflow

1. Identify the workspace skills directory

The user's installable Skills live at {workspace}/skills/. Use current_time or execute_shell_command pwd to get oriented if the path is ambiguous, then:

SKILLS_DIR="<workspace>/skills"
mkdir -p "$SKILLS_DIR"

If the user hasn't run HarnessAgent.init() yet, suggest doing so first — it creates {workspace}/skills/ and seeds the built-in Skills.

2. Install from a Git repo (single Skill at the root)

cd "$SKILLS_DIR"
git clone --depth 1 <repo-url> <skill-name>

Then verify the Skill is well-formed:

test -f "$SKILLS_DIR/<skill-name>/SKILL.md" || {
  echo "❌ no SKILL.md at the repo root — try installing a subdir instead"
  rm -rf "$SKILLS_DIR/<skill-name>"
  exit 1
}

Validate the frontmatter parses:

python3 - <<'PY'
import sys, re, pathlib
p = pathlib.Path("$SKILLS_DIR/<skill-name>/SKILL.md")
text = p.read_text(encoding="utf-8")
m = re.match(r"^---\n(.*?)\n---", text, re.DOTALL)
if not m:
    sys.exit("❌ SKILL.md is missing YAML frontmatter")
import yaml
fm = yaml.safe_load(m.group(1)) or {}
for k in ("name", "description"):
    if not fm.get(k):
        sys.exit(f"❌ frontmatter is missing required field: {k}")
print(f"✅ {fm['name']}: {fm['description'][:80]}…")
PY

(If yaml isn't installed, pip install pyyaml first — it's a common dependency the user is likely to want anyway.)

3. Install from a subdirectory of a repo

When the upstream repo holds many Skills:

TMPDIR=$(mktemp -d)
git clone --depth 1 <repo-url> "$TMPDIR"
cp -r "$TMPDIR/<subpath>" "$SKILLS_DIR/<skill-name>"
rm -rf "$TMPDIR"

Run the same SKILL.md validation as in step 2.

4. Install from a local directory

For Skills the user is authoring locally:

cp -r "<source-dir>" "$SKILLS_DIR/<skill-name>"

Or, if they want a live link while iterating:

ln -s "<absolute-source-dir>" "$SKILLS_DIR/<skill-name>"

A symlink is the right call when the user is writing the Skill and wants edits to be picked up without reinstall.

5. List installed Skills

for d in "$SKILLS_DIR"/*/; do
  name=$(basename "$d")
  desc=$(awk '/^description:/{sub(/^description: */, ""); print; exit}' "$d/SKILL.md" 2>/dev/null)
  printf "  • %-30s %s\n" "$name" "$desc"
done

Show this output to the user verbatim — the per-Skill description is exactly what they need to recognise what's installed.

6. Update a Skill

If the original was installed via git clone:

cd "$SKILLS_DIR/<skill-name>" && git pull --ff-only

Otherwise re-install: remove the directory and run step 2/3/4 again.

7. Remove a Skill

Confirm with the user first (this deletes user-modified files too if they edited the Skill in place):

rm -rf "$SKILLS_DIR/<skill-name>"

Operating principles

  • Confirm before mutating. Cloning into the workspace is fine to do without asking, but rm -rf and forced overwrites need explicit user confirmation.
  • Reject malformed Skills. A Skill without valid frontmatter is worse than no Skill — it bloats the loader and confuses the model. Run the YAML check from step 2 every time.
  • Don't touch _builtin_skills/. That directory is owned by the package; edits will be lost on the next HarnessAgent.init(). Built-in Skills can be shadowed by installing a Skill of the same name into skills/ — Harness Agent prefers user-installed Skills over built-ins.
  • Tell the user when to reload. Newly installed Skills are picked up on the next agent session, not mid-conversation. Mention this so they don't expect immediate effect.

Common questions

"I want a Skill for X, can you find one?"

Search GitHub via the web fetcher or any other tool you have, propose 1–2 candidate repos, summarise their SKILL.md description, and let the user pick before installing.

"Where do Skills come from?"

Anywhere reachable by git clone — public GitHub, internal GitLab/Gitea, file://, etc. There's no central registry by design.

"Can I edit a built-in Skill?"

Don't edit the file in _builtin_skills/ directly — it's overwritten on init. Instead, copy it into skills/ with the same name; the user-installed copy shadows the built-in.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Manage Apple Notes via memo CLI: create, search, edit.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

通过 memo CLI 管理 Apple Notes:创建、搜索、编辑。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

Manage Apple Reminders on macOS via remindctl — list, add, edit, complete, delete to-dos that sync to iPhone/iPad. Trigger on "reminder", "Reminders app", "提醒我" with phone sync, or adding personal todos with due dates. macOS only. Skip when the user wants agent-internal alerts (use memory_store or external scheduling) or calendar events.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

通过 remindctl 在 macOS 上管理 Apple Reminders——列出、添加、编辑、完成、 删除同步到 iPhone/iPad 的待办事项。在提及"提醒"、"Reminders app"、 需要手机同步的"提醒我"或添加带截止日期的个人待办事项时触发。macOS only。 当用户需要代理内部提醒(使用 memory_store 或外部 调度)或日历事件时跳过。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

Dark-themed SVG architecture/cloud/infra diagrams as HTML.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

暗色主题的 SVG 架构/云/基础设施图表,输出为 HTML。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TencentCloud/octop-harness1082026년 10월 19일 업데이트

TencentCloud의 스킬 모두 보기

이 스킬의 문제 신고