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: