ConceptsExtending Syntic Code

Extending Syntic Code

Syntic Code is useful out of the box, but its real power comes from tailoring it to your project. Amara can be extended through skills, hooks, MCP servers, plugins, and subagents — each addressing a different need.

Skills and commands

Skills are reusable, named workflows that capture how your team does something — running a release, scaffolding a component, or auditing for a class of bug. You define them under .syntic/skills/, and Amara invokes the right one when a task matches. Custom slash commands work similarly, giving you shortcuts you can trigger explicitly during a session. Both let you encode institutional knowledge so Amara applies it consistently.

Hooks and MCP

Hooks run shell commands at defined points in the agent loop — for example, formatting code after every edit or blocking a command that violates policy. Because the harness executes hooks rather than Amara, they are deterministic and reliable. MCP (Model Context Protocol) servers connect Amara to external tools and data: issue trackers, databases, internal APIs, or documentation. You declare both in your project’s settings.json, so the configuration travels with the repository.

Plugins and subagents

Plugins bundle skills, hooks, commands, and MCP servers into a single installable unit, making it easy to share a complete setup across teams. Subagents let Amara delegate a self-contained piece of work — a broad search or an isolated implementation — to a fresh agent that reports back a result without cluttering the main session. Together these mechanisms let you scale Syntic Code from a personal tool to a shared, opinionated platform. Start with the .syntic/ directory to see where each of these lives.