Custom skills let you teach Clicky exactly how to handle any recurring workflow, tool integration, or domain-specific task. If you have a deployment pipeline Clicky consistently gets wrong, a third-party API it doesn’t know about, or an internal process you’ve explained three times already — write a skill once and Clicky will follow it every time. Skills are just text files: a YAML frontmatter block followed by freeform markdown instructions.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jasonkneen/openclicky/llms.txt
Use this file to discover all available pages before exploring further.
The SKILL.md Format
Every skill, whether bundled or custom, is aSKILL.md file with this structure:
Frontmatter Fields Explained
name
Machine identifier. Use
kebab-case. This is what other skills reference in related_skills. Keep it short and unambiguous.description
The most important field. Clicky matches user requests against this string semantically. Write a precise trigger: “Use when the user asks to…” or state the action directly.
version
Semantic version string (
MAJOR.MINOR.PATCH). Increment when you make meaningful changes so you can track which version is running.argument-hint
Short placeholder shown in the OpenClicky UI, e.g.
"[task or auth setup]". Tells the user what context to provide alongside the skill trigger.tags
Array of keyword tags under
metadata.openclicky.tags. Used for discovery and grouping in Settings → Agents.related_skills
Array of
name values for complementary skills. Helps Clicky chain skills intelligently — e.g. listing github-auth as related to a GitHub skill means Clicky will check auth state first.Writing Clear Trigger Descriptions
Thedescription field is what Clicky reads when deciding whether your skill applies to a user request. A weak description means your skill is never activated or activated for the wrong tasks.
Weak trigger descriptions:
- Name the specific tools or APIs involved (
gh,gog,curl,psql) - List the key actions (create, triage, label — not just “manage”)
- Include the trigger phrase Clicky should recognise (“Use when the user asks to…”)
- Stay under 200 characters
Writing the Skill Body
The body is freeform markdown. Clicky reads it before starting the task. Write it like a runbook: step-by-step, with concrete commands, and explicit decision rules for edge cases.Prerequisites Section
Start with what must be true before the skill can run:-
Run the deploy — use the project’s Makefile, not direct AWS CLI calls:
-
Verify — check the deploy URL responds with HTTP 200:
- Report — tell the user the URL and the deploy duration.
Transport Details
If your skill calls an API or local service, document the transport explicitly. Here’s the pattern fromopenclicky-screen-control:
Placing a Custom Skill
OpenClicky looks for learned/custom skills in yourOpenClickyLearnedSkills/ directory. Each skill must live in its own subdirectory named after the skill’s name field.
Verify OpenClicky sees it
Open OpenClicky and ask Clicky: “What skills do you have available?” Your skill’s
name should appear in the list. Alternatively, check Settings → Agents for the new skill toggle.You don’t need to restart OpenClicky after adding a skill file — Clicky picks up changes from the filesystem on each request.
Learned Skills: Auto-Generated from Log Analysis
You don’t always need to write skills manually. OpenClicky can generate them for you by analysing conversation logs. Thelearn-from-openclicky-logs bundled skill reads your recent conversation JSONL logs, identifies repeated multi-step workflows, and drafts SKILL.md files for them. The generated skills follow the same format as hand-written ones and are saved directly to your OpenClickyLearnedSkills/ directory.
To trigger this manually:
- Tell Clicky: “Review my logs and learn from them.”
- Or: “Find patterns in my logs and create skills for them.”
- Read recent conversation history (bounded log scan — it won’t read everything)
- Identify workflows that appeared more than once
- Draft a
SKILL.mdfor each pattern - Save the files and report back with the skill names and trigger descriptions
Optimizing Existing Skills
Theoptimize-openclicky-skills bundled skill improves skills based on how they’ve performed in practice. It reads log evidence, identifies cases where a skill’s instructions led to incorrect or inefficient behavior, and proposes targeted edits.
Always archive before overwriting. The safe protocol for updating any skill — bundled or learned — is to copy the current
SKILL.md to SKILL.md.bak before overwriting it. If the new version performs worse, you can restore from the backup.- Tell Clicky: “Optimize my skills based on how they’ve been performing.”
- Or: “Audit the github-issues skill and improve it.”
SKILL.md.
Manual Optimization Pattern
For hand-editing a skill:Worked Example: A Custom Deployment Skill
Here is a complete, realisticSKILL.md based on the patterns you see throughout the bundled skills:
STAGING_TOKEN is missing, stop and tell the user to add it to
~/.config/openclicky/secrets.env, then retry.
Deploy Flow
-
Confirm the branch and check for uncommitted changes:
If there are uncommitted changes, ask the user: “You have uncommitted changes. Deploy anyway, or commit first?”
-
Run the staging deploy target:
This uses the project’s Makefile, not direct provider CLI calls. Timeout: 5 minutes. If it times out, report the last 20 lines of output.
-
Extract the preview URL from output:
-
Verify the deploy is live:
A
200means the deploy succeeded. Anything else — report the status and the full/tmp/deploy-output.log. -
Report to the user:
- Preview URL
- Branch and commit SHA deployed
- Deploy duration (check
makeoutput for timing) - Any warnings from the build log
Safety
- Never run
make deploy-productionunless the user explicitly says “production”. - Do not force-push the branch as part of this workflow.
- If the health check returns non-200, do not declare success. Report the failure.
- If
make deploy-stagingexits non-zero, stop immediately and show the error output.