An open directory convention for AI agent configuration. One place for MCP tools, AGENTS.md instructions, Skills, Memories, and model config — in plain, version-controllable files.
$ tree .agents/
.agents/
├── agents.md # instructions (AGENTS.md compatible)
├── system-prompt.md # system prompt
├── mcp.json # MCP server configuration
├── models.json # model presets & provider keys
├── skills/
│ └── code-review/
│ └── skill.md # skill definition
└── memories/
└── project-arch.md # persistent memory Why another convention?
.cursor/ .claude/ .github/copilot-instructions.md .agents/) houses everything an agent needs ~/.agents/, workspace at ./.agents/ Five open standards. One directory.
| Standard | Maps to |
|---|---|
| MCP ↗ Anthropic · Linux Foundation | mcp.json |
| AGENTS.md ↗ OpenAI · Linux Foundation | agents.md |
| Skills ↗ Anthropic | skills/*/skill.md |
| ACP ↗ Zed Industries | agent profiles |
| Memories .agents protocol | memories/*.md |
Two layers with overlay semantics. Workspace overrides global.
.agents/
├── speakmcp-settings.json # general settings
├── mcp.json # MCP servers & tools
├── models.json # model presets & keys
├── system-prompt.md # system prompt
├── agents.md # agent guidelines
├── layouts/
│ └── ui.json # UI/layout prefs
├── skills/
│ ├── code-review/
│ │ └── skill.md
│ └── deploy-pipeline/
│ └── skill.md
├── memories/
│ ├── arch-decisions.md
│ └── user-prefs.md
└── .backups/ # auto-rotated
├── skills/
└── memories/ ~/.agents/ Canonical config. Created on startup, synced with settings changes. Base layer for all projects.
<project>/.agents/ Optional overrides. Shallow-merges with global — workspace wins. Commit to git for team config.
JSON: shallow-merge by key. Skills/memories: merge by ID (newest wins).
Simple frontmatter + markdown for content. Plain JSON for config. No YAML dependency.
---
id: code-review
name: Code Review Expert
description: Thorough code review
enabled: true
---
Review code changes for:
- Security vulnerabilities
- Performance implications
- Test coverage gaps ---
id: arch_001
title: Database Architecture
content: PostgreSQL with Drizzle ORM
importance: high
tags: database, architecture, orm
---
We chose PostgreSQL over MongoDB for
relational data integrity and complex
query support across billing. {
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@mcp/server-filesystem"],
"transport": "stdio"
},
"github": {
"url": "https://api.github.com/mcp",
"transport": "streamable-http"
}
}
} ---
kind: agents
---
# Project Guidelines
## Build & Test
- Use `pnpm` for package management
- Run `pnpm test` before committing
- TypeScript strict mode required --- fences with simple key: value lines.
Not full YAML — no external dependencies. Values can be quoted. List fields accept CSV (tags: a, b, c)
or JSON arrays (tags: ["a", "b"]). Keys are sorted deterministically for clean diffs.
Constraints that shaped the protocol.
| Principle | Rationale |
|---|---|
| Human-readable | Plain JSON and Markdown only. No binary formats, no proprietary schemas. Open any file in a text editor. |
| Version-controllable | Deterministic key sorting for clean diffs. Commit entire agent config to git — review, branch, collaborate. |
| Portable | Relative paths, no vendor lock-in. Share as profile packs, transfer between machines, distribute as packages. |
| Safe by default | Atomic writes (temp+rename). Timestamped backups with rotation. Auto-recovery from parse failures. Workspace layer only discovered if already present. |
| Layered | Global defaults at ~/.agents, workspace overrides at ./.agents. Shallow merge for configs, ID-based merge for skills and memories. |
| Extensible | Add new config files without breaking existing ones. Simple frontmatter avoids YAML dependency bloat. |
Adopt incrementally. Start with what you need.
$ mkdir -p .agents/skills .agents/memories Compatible with the AGENTS.md standard.
# .agents/agents.md
# Project Guidelines
- Use TypeScript strict mode
- Run `pnpm test` before every commit
- Follow existing patterns // .agents/mcp.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@mcp/server-filesystem", "."]
}
}
} # .agents/skills/deploy/skill.md
---
name: Deploy to Production
description: Our deployment workflow
---
1. Run `pnpm test`
2. Build with `pnpm build`
3. Deploy via `./scripts/deploy.sh` Your .agents/ directory is now a portable, version-controlled agent configuration.
This specification is a draft. The protocol is open and evolving. If you're building AI tools, managing agents, or want portable config — contribute to the spec.