Skills
Domain knowledge the agent reads on demand
Slash Commands
Markdown-defined commands from files
Subagents
Specialist agents for delegation
Tool Profiles
New tools via Java SPI
Skills
Skills are the fastest way to make Loopy smarter. A skill is a Markdown file with YAML frontmatter. The agent sees skill names and descriptions upfront but only loads full content when relevant โ no tokens wasted.Create a skill
Place aSKILL.md in your project:
Where skills live
Install from the catalog
Loopy ships with 23+ curated skills from 8 publishers:Publish skills as a JAR (SkillsJars)
Package skills as a Maven dependency so teams get them automatically:pom.xml and Loopy discovers it on the classpath. Skills follow the agentskills.io spec โ they work in 40+ agentic CLIs, not just Loopy.
Slash Commands
Slash commands let you define reusable prompts as Markdown files, following Claude Codeโs~/.claude/commands/ convention. Type /command-name in the chat and the agent executes the expanded prompt.
Create a slash command
Create a.md file in your project or home directory:
How it works
- YAML front matter โ
nameanddescriptionfields. If no front matter, the filename becomes the name. $ARGUMENTSsubstitution โ replaced with whatever the user types after the command./review focus on error handlingsubstitutes โfocus on error handlingโ.- Agent delegation โ the expanded prompt is sent to the agent as if the user typed it.
Where commands are discovered
Markdown commands override built-in Java commands with the same name.
Subagents
Subagents are specialist agents the main agent delegates to via theTask tool. Define them as Markdown files โ no Java required.
Create a subagent
Create.claude/agents/test-runner.md:
description field.
Frontmatter fields
Tips
- Keep
descriptionspecific โ โRuns tests and reports resultsโ routes better than โhelps with testingโ - Restrict
toolsto what the subagent needs. A test runner doesnโt needEdit - Subagents run in isolated context windows โ they canโt see the main conversation
- Subagents cannot spawn other subagents (the
Tasktool is excluded automatically)
Tool Profiles (Java SPI)
Add new tools the agent can call. Implement a Java interface, package as a JAR, and Loopy discovers it at startup viaServiceLoader.
Implement ToolProfileContributor
Register via ServiceLoader
CreateMETA-INF/services/io.github.markpollack.loopy.tools.ToolProfileContributor:
What ToolFactoryContext provides
Built-in profiles
Custom profiles load alongside built-in profiles, not replacing them.
Listeners
Observe what the agent does without changing its behavior.ToolCallListener
Fires around every tool execution:AgentLoopListener
Fires at loop lifecycle boundaries:MiniAgent builder:
Listener methods should not throw exceptions โ exceptions are logged and swallowed to avoid crashing the agent loop.
Programmatic API
Embed Loopyโs agent in other Java applications:Multi-step with session memory
Context is preserved acrossrun() calls by default: