Search Documentation

Find and navigate to documentation pages and their content

Skills Runtime

Run secure, task-specific code locally in a sandboxed Docker container. Skill code runs with no network access.

What are Skills?

Skills are small, reusable capabilities (for example “analyze a CSV” or “extract text from a PDF”) that the agent can load and run in an isolated Docker container. Skill code executes locally with no network access.

TL;DR Setup
  1. Install the Codistry VSIX (includes the Skills Dockerfile).
  2. Open Codistry's settings (the gear icon at the top of the Codistry panel) → Tools & Integrations → enable Skills.
  3. On first use, Codistry pulls the Skills runtime image (adronite/adronite-skills:latest); if a pull isn't possible it falls back to building locally.

Requirements

  • Docker installed and running (Docker Desktop on macOS/Windows or Docker Engine on Linux).
  • Internet on first run: the runtime image is pulled the first time (adronite/adronite-skills:latest). After that, skill execution itself runs with no network access.
docker --version
docker info
docker run --rm hello-world

Set up in 3 steps

1) Enable Skills

  • Open the Codistry sidebar and click the settings gear at the top, then go to Tools & Integrations.
  • In the Skills System section, turn Skills on.
  • (Optional) Where custom skills live (default ~/.adronite/skills) and the runtime image name (default adronite/adronite-skills:latest) can also be adjusted, see the Settings Reference.

2) Get the Runtime Image

When you first use a Skill, Codistry detects that the image is missing and pulls adronite/adronite-skills:latest automatically. If a pull isn't possible, it falls back to building the image locally.

# Pull manually (optional)
docker pull adronite/adronite-skills:latest

# Or build locally as a fallback
docker build -t adronite/adronite-skills:latest .

This completes automatically before your first Skill runs. The base image is python:3.11-slim.

3) Try a Skill

Use the hello-world skill to show me what skills can do

The agent will load the Skill description and execute the code securely inside the local container.

Adding More Skills

Skill Directory Layout

Skills can live in either location:

  • ~/.adronite/skills/<skill-name>/ - user skills (highest priority)
  • <workspace>/.adronite/skills/<skill-name>/ - workspace skills
  • dist/skills/<skill-name>/ - bundled skills (lowest priority)
  • <workspace>/.codistry/skills/<skill-name>/ - Dynamic Skills the agent captures for this repo

Discovery order is user → workspace → bundled → repo Dynamic Skills (earlier locations win on name conflicts).

my-skill/
├─ SKILL.md            # required
├─ examples/           # optional
└─ templates/          # optional

Example SKILL.md

---
name: csv-analyzer
description: Analyze CSV files and summarize columns
---

# CSV Analyzer
Given one or more CSV files, compute row counts and summary statistics.

Dynamic Skills

Dynamic Skills are repo-specific Skills that the agent creates and maintains for you, stored inside the repository at <workspace>/.codistry/skills/<skill-name>/SKILL.md. They are discovered, listed, and loaded exactly like regular Skills — the difference is that the agent authors them as it learns how your codebase works, so the knowledge is committed alongside your code and is available in every future session (and to your teammates).

Context vs. Dynamic Skills
  • .codistry/context.md holds the concise, high-level project map — overview, architecture, conventions, and gotchas.
  • Dynamic Skills hold deeper procedural knowledge that is too detailed for context.md: multi-step workflows, recipes, and playbooks (for example “how to add a new provider”, the release process, or “how to debug subsystem X”). They can also bundle repo-specific scripts and templates next to the SKILL.md.

You don't author these yourself. When the agent works through a non-obvious, repeatable procedure that is specific to your repo — or you explain or correct how something is done — it saves that procedure as a Dynamic Skill so a future session doesn't have to rediscover it. This happens as part of completing the task, and you can also ask for it explicitly. The result is a plain SKILL.md file you can read, edit, or delete like any other file in your repo.

Enabling Dynamic Skills
Dynamic Skills are controlled by adronite-agent.dynamicSkillsEnabled (see Relevant Settings). Because they live in .codistry/skills/ inside the repo, commit them to share the captured workflows with your team.

Security

  • Skill code runs inside a Docker container with no network access (network: none).
  • Resource limits: 512MB RAM, 1 CPU, and a 30s default timeout per call.
  • Containers are reused across calls for speed (they are not started with --rm and are not read-only).
  • Only files explicitly shared with the agent are placed inside the container.
  • The base image is python:3.11-slim; the runtime image is pulled once and skill execution then runs offline.

Relevant Settings

{
  "adronite-agent.skillsEnabled": true,
  "adronite-agent.dynamicSkillsEnabled": true,
  "adronite-agent.skillsDirectory": "",
  "adronite-agent.skillsDockerImage": "adronite/adronite-skills:latest"
}

Troubleshooting

Docker not available

  • Start Docker Desktop or the Docker service.
  • docker info should display server information.

Image missing

  • Run: docker pull adronite/adronite-skills:latest (or build it locally as a fallback).
  • Re-run the Skill once the image is available.

Skill not found

  • Confirm folder name matches the Skill name.
  • Ensure SKILL.md exists with valid metadata.

Quick FAQ

  • Does skill code reach the network? No. Skill execution runs with network: none. Only the one-time image pull needs internet.
  • Do I need to download anything? The runtime image is pulled automatically on first use (adronite/adronite-skills:latest); building locally is a fallback.
  • Can I use a custom image? Yes. Point skillsDockerImage at your own image, or build the runtime image locally.