Skill Foundations
Start here. What a skill is, how to write one, and how your coding agent reaches for it on intent.
There are two ways through this course. You can read each lesson on this site and step through it here, or run it hands-on in your own coding agent. The two cover the same ground — pick whichever suits you, or do both.
To run the lessons in your agent, install the course once. Do this in a fresh project directory (for example a new foundations folder — Tessl won't initialize in your home directory):
npx tessl install tessl-academy/skill-foundations
This installs the skills your agent uses to walk you through each lesson interactively — the course ships as a single plugin bundling a guided walkthrough for every lesson (01-skills-in-30-minutes, 02-writing-your-first-skill, and so on) plus a ready-to-use commit-conventions skill you'll meet in Lesson 1.
Once the course is installed, start a lesson by asking your agent. Open your coding agent (Claude Code, Cursor, Codex, or Tessl Agent) in that directory and ask it:
"guide me through skills in 30 minutes"
The installed skill picks up the request and walks you through the lesson step by step. Prefer a command? Launch it directly:
tessl launch skill --agent claude-code -i 01-skills-in-30-minutes
Swap claude-code for cursor, codex, or tessl-agent. (Install must run first — tessl launch skill does not install for you.) Each lesson hands off to the next, so your agent keeps its context as you move through the course.
Skills in 30 minutes
Install a skill, run it, see what changed. The fastest path to feeling what a skill is.
Writing your first skill
Author a SKILL.md from scratch, lint it, and install it locally so your agent fires it on intent.
Skills vs MCP, and context files
A skill is one of three ways to give an agent what it needs. Place each (context files, skills, MCP) by how often it's relevant and whether it's instructions or capability.
Building a multi-skill plugin
Bundle related skills into one versioned, installable plugin, and learn what makes a set of skills a coherent library rather than a junk drawer.
Publishing & installing across a team
Publish your plugin to the registry, install it the way a teammate would, and ship updates with a version bump: the last step from a local skill to one your whole team relies on.