Coderrr

Skills

Skills are markdown guidance — how to approach a class of problem — fetched when the agent decides it needs them, and deleted after use.

Guidance, not code

A skill adds no executable capability. It is a document that tells the model how to think about a kind of task; the tools it uses to act are Coderrr's own, already gated by mode and workspace containment.

That split is the whole safety argument: the worst a malicious skill can do is give bad advice to an agent whose tools are already constrained.

This changed in v2

v1 skills shipped Python tools that the CLI downloaded and executed — remote, unreviewed code running outside any sandbox. v2 fetches only the markdown. Registry documents that still say "run python tools/<name>.py" refer to scripts v2 will not provide, and need rewriting against Coderrr's tool set.

Retrieval is automatic

You do not install skills. While analysing your request during planning, the agent consults the registry index, decides whether anything there is relevant, and loads only what it needs. Skills that were loaded are dropped from disk when the session ends.

Coderrr needs the network for inference anyway, so re-fetching costs a round trip and nothing else — and it guarantees the agent always runs against current guidance rather than a stale local copy.

ToolWhen the agent uses it
search_skillsWhile working out what the request involves
load_skillWhen a search hit looks relevant enough to read

Browsing the registry yourself

coderrr skills search "pdf report"
  Skill          Description
  pdf-generator  Create and edit PDF documents, extract text and tables...
  data-analysis  Load, clean, and summarise tabular data with pandas...

This is a read-only lookup — it tells you what guidance exists, it does not install anything.

The default registry

Skills come from Akash-nath29/coderrr-skills. A single registry.json indexes each skill, and each skill directory holds a Skills.md with the guidance.

{
  "version": "1.0",
  "skills": {
    "web-scraper": {
      "name": "web-scraper",
      "displayName": "Web Scraper",
      "description": "Fetch, parse, and extract content from web pages...",
      "version": "1.0.0",
      "author": "Akash Nath",
      "download_url": ".../main/skills/web-scraper",
      "tags": ["web", "scraping", "http"]
    }
  }
}

The description field is what search matches against, so it should describe when to reach for the skill, not just what it is about.

Using your own registry

Point [skills].registry at any URL serving the same shape — a team registry of internal conventions, or your own fork:

[skills]
registry  = "https://internal.example.com/coderrr/registry.json"
ephemeral = true
KeyDefaultWhat it does
registrycoderrr-skillsURL of a registry.json index
ephemeraltrueDelete fetched skills from disk after use. Leave this on.

Limits on what gets fetched

ConstraintValue
Entry fileSkills.md only — tools/ is never fetched
Maximum size256 KB. Guidance is prose; anything larger is not a skill.
FrontmatterStripped before the body enters context — the registry already supplies name and description
LifetimeDeleted when the session ends

Writing a skill

A skill is a Skills.md with YAML frontmatter and a body of guidance. Write the body for a model that already has read, write, sandbox, and spec tools — describe the approach, the pitfalls, and how to verify, not the mechanics of editing files.

---
name: pdf-generator
description: Create and edit PDF documents, extract text and tables. Use when
  the request involves reading, generating, or filling PDFs.
---

## When this applies

...

## Approach

1. ...

## Verifying

...

Contribute one to the coderrr-skills repository, or keep it in a registry of your own. See Configuration for the registry setting.