Augment (augment)
Set up this tool
Augment Code reads the root AGENTS.md, .augment/, and the shared .agents/skills/ tree.
First rule
Select augment in agnostic-ai.yaml, then follow First rule to add the shared commit-prefix rule and sync it. With the default paths, it reaches AGENTS.md.
MCP and permission settings on this page apply to Auggie CLI. The IDE reads the project rules and skills, and runs project hooks from .augment/settings.json once you trust the workspace (Augment changelog).
Already configured? Import reads ignore patterns and selected permission rules only. Review the remaining native files before syncing.
Verify
Run agnostic-ai sync --check and inspect AGENTS.md for the commit-prefix rule. Open the project in Augment and ask for a commit subject for a small fix; it should use fix:.
Next, add a skill.
Output
AGENTS.md # entry-point pointer body + rules (written by sync, shared path)
.augment/
├── rules/<name>.md # one per rule the root AGENTS.md does not carry, and per agent_requested rule
├── agents/<name>.md # one per agent
├── commands/<name>.md # one per command; nested source scope becomes a namespace
└── settings.json # mcpServers + hooks + toolPermissions, merged; only with MCP, hook, or settings specs
.agents/skills/<name>/SKILL.md # one folder per skill (shared cross-tool tree)
.augmentignore # workspace indexing exclusions
.augment-guidelines # opt-in legacy joined rules, only when rules-file is set
Native mappings
Field mappings, discovery, and compatibility
- Rules: rule bodies go into the shared
## Rulesblock ofAGENTS.md. Augment also loads.augment/rules/.- An always-applied rule that is already in the block gets no
.augment/rules/file. See target behavior. - A spec with
alwaysApply: falsegetstype: agent_requestedand adescription(falling back to the rule name). Rules have nonamekey.
- An always-applied rule that is already in the block gets no
- Legacy guidelines:
outputs.augment.rules-file: .augment-guidelinesalso writes all rules as one document. It is opt-in, because Augment cuts it first when context runs short. - Agents (subagents docs):
.augment/agents/<name>.mdwithname(required),description(falls back to the spec name), and, when set,color(written as is; Augment expects an ANSI color name) andmodel.- Augment's
toolsanddisabled_toolstake its own tool names (view,codebase-retrieval,str-replace-editor, ...), so the generictoolsfield raises a sync note. Setx-augment: {tools: [...]}orx-augment: {disabled_tools: [...]}instead.
- Augment's
- Skills: Augment also scans
.claude/skills/and.augment/skills/. - Commands:
.augment/commands/<scope>/<name>.md, with a directory scope from the source folder as a nested folder name.description,argument-hint, andmodelstay in frontmatter. - Ignore: ignore specs write
.augmentignore.import augmentrestores a hand-written one, keeping pattern order and negation.
Entry point off AGENTS.md
Moving the entry point off root AGENTS.md with a file override, or listing it in sync.unmanaged, makes every rule keep a .augment/rules/ file. The default always_apply is left out. Before making the shared file unmanaged, check its effect on other targets.
MCP
Servers merge into .augment/settings.json under mcpServers. Stdio uses command, args, and env with no type. Remote uses type: http or type: sse plus url and headers. This is the Auggie CLI project file Augment recommends for team-shared servers (config docs), not the IDE Settings Panel.
- Sync changes only its own keys.
shell,startupScript,theme, plugin keys, and tool permissions stay. - If the file is JSONC, sync drops comments and trailing commas and prints a one-line warning. Keys stay, comments do not.
- Augment documents no per-server
disabledkey, sodisabled: trueis dropped with a sync note. Useauggie mcp remove. - Transports are
stdio,sse, andhttponly (integrations docs). Atype: wsspec writes no server and raises a sync note.
Hooks
Hooks merge in under hooks, in the same write as mcpServers. Supported events: PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd (hooks docs). agnostic-ai hook run tests them before a session, using Auggie's event data, shell, and timeout.
timeoutis in milliseconds: the spec's seconds times 1000 (vendor default 60000).commandmust be a script ending in.sh,.ps1,.cmd, or.bat, because Augment never runs an inline shell string. Other commands are written as is with a sync note. A hook withargsis skipped with a note, because Augment has no shell to fold them into.matcheris optional onPreToolUseandPostToolUse(vendor default.*) and left out on the session events.- Matchers use Augment's tool names (
launch-process,str-replace-editor,save-file, ...). A Claude-style matcher (Bash,Write, ...) matches nothing and raises a sync note.
Shared memory
With builtins: [memory], sync adds an executable .augment/hooks/memory-augment-session-start.sh and a SessionStart entry for Auggie CLI on its supported platforms: macOS, Linux, and Windows WSL. The script finds the project from its working directory and returns both memory indexes through hookSpecificOutput.additionalContext. The same script is installed for sync --global. Auggie 0.x injects that output. The 1.x prerelease runs SessionStart hooks in the background and does not add their output to the agent's context (1.x hooks docs), so there the memory rule tells the agent to read the indexes.
The IDE keeps the memory rule. See shared memory for the context limit and how to keep the tool's own memory.
Permissions
Settings specs merge into the same file under toolPermissions, which Auggie CLI and Cosmos cloud agents follow. Augment recommends committing .augment/settings.json so the policy applies to every cloud agent in the repo (permissions docs).
- Rules are an ordered array and the first match wins, so deny rules come first.
- Each
permissionis an object such as{ "type": "deny" }. Augment ignores a bare-string permission. - Bare tool names map onto Augment's six tools (
Readtoread,Bashtoterminal,WebFetchtoweb-fetch, ...). Bash(prefix:*)becomes aterminalrule withshellInputRegex: ^prefix. An exactBash(command)is anchored at both ends.mcp__<server>__<tool>becomes{tool-name}_{server-name}.
These are not written and raise a sync note:
model: the file has no documented key.- The
asklist: none of Augment's types (allow,deny,webhook-policy,script-policy) prompts. - Path- or URL-scoped rules such as
Read(src/**): onlyterminaltakes a matcher, and a barereadwould cover every file.
x-augment.toolPermissions writes Augment's rule objects as is, ahead of the translated ones. Other x-augment keys, such as shell or startupScript, merge in as written.
Config keys
| Key | Default | Notes |
|---|---|---|
outputs.augment.rules-dir | .augment/rules | |
outputs.augment.agents-dir | .augment/agents | |
outputs.augment.skills-dir | .agents/skills | |
outputs.augment.commands-dir | .augment/commands | |
outputs.augment.ignore-file | .augmentignore | |
outputs.augment.rules-file | unset | opt-in, writes the legacy .augment-guidelines document |
outputs.augment.mcp-file | .augment/settings.json | also the hooks and permissions file, because all three merge into one document |
Import
import augment reads .augmentignore and the toolPermissions policy in .augment/settings.json for Augment's six tools. It skips shellInputRegex entries (no portable form) and bare-string permission entries (invalid in Augment). Nothing else is imported.
Protected paths
Not enforced. Sync cannot write an edit-blocking rule or hook for this tool, so it prints a protected-path coverage note.