Git-native context for AI coding agents
Git ships your code. CI/CD ships your delivery. Archcore ships your understanding.
Archcore is a context layer for your repository. Architecture decisions, rules, plans, and incidents live as structured documents that every AI coding agent — Claude Code, Cursor, Copilot, Gemini CLI, Codex — can read, reuse, and follow.
# Install (macOS / Linux)
curl -fsSL https://archcore.ai/install.sh | bash
# Initialize in your project
cd your-project
archcore init
# Verify setup
archcore statusOn Windows? Use PowerShell:
irm https://archcore.ai/install.ps1 | iex. For WSL,go install, and other options, see the full install guide.
Now open your AI agent and say: "Record an ADR: we're using PostgreSQL for primary storage." The agent will create a structured decision document in .archcore/ that every future session can read.
- Why Archcore
- Installation
- How It Works
- What Lives in
.archcore/ - Why Not Just Instruction Files?
- Try It
- Document Types
- Document Relations
- Commands
- AI Agent Integration
- Configuration
- Development
- Links & License
AI coding agents don't understand your system. They:
- ignore your architecture
- break your conventions
- duplicate logic that already exists
- make inconsistent decisions across sessions
The real context lives in your head, in scattered docs, and in implicit patterns that never reach the model. Archcore makes that context explicit, structured, and versioned alongside your code:
- Shared repo context — architecture, rules, plans, and postmortems next to the code they describe
- Works across agents — Claude Code, Cursor, Gemini CLI, GitHub Copilot, Codex CLI, OpenCode, Roo Code, and Cline
- Structured document types — ADRs, RFCs, rules, guides, plans, PRDs, incidents, and more
- Git-native — local-first, version-controlled, reviewable with code
- MCP-powered — agents read, create, update, and link documents in real time
- Built for teams — context survives sessions, teammates, and tool changes
AI should follow your system, not guess it.
curl -fsSL https://archcore.ai/install.sh | bashirm https://archcore.ai/install.ps1 | iexInstalls archcore.exe under %LOCALAPPDATA%\Programs\archcore and adds it to your user PATH. Open a new PowerShell window after install so the PATH change is picked up.
Install WSL, then run inside it:
curl -fsSL https://archcore.ai/install.sh | bashgo install github.com/archcore-ai/cli@latestgit clone https://github.com/archcore-ai/cli.git
cd cli
go build -o archcore .Supported platforms: macOS, Linux, Windows — amd64 and arm64.
For all install methods, environment variables (ARCHCORE_VERSION, ARCHCORE_INSTALL_DIR, GITHUB_TOKEN), and PATH troubleshooting, see the full install guide on docs.archcore.ai.
-
Initialize your repo
archcore initcreates.archcore/and installs integrations for supported agents. -
Capture durable context
Store architecture decisions, rules, plans, product docs, and incident learnings as structured Markdown files. -
Let agents reuse it
Hooks and MCP let your coding agents read existing context and create or update documents during real work. -
Keep it in Git
Review context changes like code, evolve them over time, and keep them portable across tools.
Archcore CLI is a context compiler for your repository. It turns scattered documents into structured, machine-readable context. MCP and hooks are the runtime — the surface agents use to consume that context during real work.
implicit repo knowledge → structured context → AI-readable system
.archcore/
├── settings.json
├── .sync-state.json
├── auth/
│ ├── jwt-strategy.adr.md
│ └── auth-redesign.prd.md
├── backend/
│ └── error-wrapping.rule.md
├── incidents/
│ └── connection-pool-exhaustion.cpat.md
└── notifications/
└── notifications-implementation.plan.md
The structure is free-form — organize documents by domain, feature, team, or whatever fits your repo. Categories are virtual and inferred from the document type in the filename (slug.type.md).
Use .archcore/ for:
- architecture decisions
- coding rules and conventions
- implementation plans
- product requirements
- incidents and postmortems
- reusable workflow knowledge
See the Archcore CLI repository itself for a working example: .archcore/ in this repo
CLAUDE.md, AGENTS.md, and repository instructions are useful starting points, but they break down when your team needs:
- more than one flat memory file
- structured document types — ADRs, rules, plans, incidents
- reusable context across multiple AI tools
- versioned project knowledge that grows with the codebase
- relations between documents (a plan that implements a PRD, an RFC that extends an ADR)
- incident learnings and recurring workflows that agents can pick up later
Instruction files tell the agent what you want. Archcore tells the agent how your system works — so the agent can follow your system instead of guessing it.
After archcore init, open your AI agent and start talking. The agent already knows your existing documents and has tools to create new ones.
“We decided to use PostgreSQL instead of MongoDB for our primary database. Record this decision.”
Creates infrastructure/use-postgres.adr.md with context, decision, alternatives considered, and consequences.
“We have a team convention: always wrap errors with context using fmt.Errorf and %w. Make this a rule.”
Creates backend/error-wrapping.rule.md with imperative guidance, rationale, and good/bad code examples.
“Last week we had a connection pool exhaustion incident because idle connections weren't being recycled. Document this so we don't repeat it.”
Creates incidents/connection-pool-exhaustion.cpat.md with root-cause analysis and prevention steps.
“I need a PRD for the user notifications feature — push, email digests, and in-app alerts.”
Creates notifications/user-notifications.prd.md with goals, user stories, requirements, and success metrics.
“Create an implementation plan for the notifications PRD and link them together.”
Creates notifications/notifications-implementation.plan.md, then links it to the PRD with an implements relation.
Archcore organizes context into 3 layers of knowledge: Vision, Knowledge, and Experience.
| Type | Full Name | Description |
|---|---|---|
prd |
Product Requirements Document | Goals, user stories, acceptance criteria, and success metrics |
idea |
Idea | Lightweight capture of a product or technical idea for future exploration |
plan |
Plan | Phased task list with acceptance criteria and dependencies |
Archcore also supports two additional requirements tracks for teams that need structured discovery or formal decomposition:
Sources track (MRD → BRD → URD) — captures where requirements come from:
| Type | Full Name | Description |
|---|---|---|
mrd |
Market Requirements Document | Market landscape, TAM/SAM/SOM, competitive analysis, and market needs |
brd |
Business Requirements Document | Business objectives, stakeholders, ROI, and business rules |
urd |
User Requirements Document | User personas, journeys, usability requirements, and acceptance criteria |
ISO/IEC/IEEE 29148:2018 track (BRS → StRS → SyRS → SRS) — captures how requirements decompose:
| Type | Full Name | Description |
|---|---|---|
brs |
Business Requirements Specification | Mission, goals, objectives, and business operational concept |
strs |
Stakeholder Requirements Specification | Stakeholder needs, operational concept, and user requirements |
syrs |
System Requirements Specification | System functions, interfaces, performance, and design constraints |
srs |
Software Requirements Specification | Software functions, external interfaces, and detailed behavioral specs |
Use PRD for most projects. Add the sources track when you need structured requirement discovery. Add ISO 29148 when you need formal traceability for regulated or complex multi-team systems. Mix freely — some features can use a PRD while others use the full cascade.
| Type | Full Name | Description |
|---|---|---|
adr |
Architecture Decision Record | Captures a finalized technical decision with context, alternatives, and consequences |
rfc |
Request for Comments | Proposes a significant change open for team review and feedback |
rule |
Rule | Coding or process standard with imperative guidance and examples |
guide |
Guide | Step-by-step instructions for completing a specific task |
doc |
Document | Reference documentation, registries, and descriptive material |
spec |
Specification | Canonical normative contract for a system, component, interface, or protocol |
| Type | Full Name | Description |
|---|---|---|
task-type |
Task Type | Reusable checklist and workflow for a recurring task |
cpat |
Code Change Pattern | Root-cause analysis of a bug or incident with prevention steps |
Each document is a Markdown file with YAML frontmatter:
---
title: "Use PostgreSQL for Primary Storage"
status: draft
---
## Context
...Valid statuses: draft, accepted, and rejected.
Documents can be linked with directed relations to other documents:
- related — general association
- implements — source implements what target specifies
- extends — source builds upon target
- depends_on — source requires target to proceed
Relations are stored in .sync-state.json and managed automatically by the AI agent through MCP tools.
| Command | Description |
|---|---|
archcore init |
Initialize .archcore/ directory interactively |
archcore doctor |
Check your archcore setup and fix issues |
archcore status |
Check .archcore/ structure and document health |
archcore config |
View or modify settings |
archcore hooks install |
Install hooks for detected AI agents |
archcore update |
Update Archcore to the latest version |
archcore mcp |
Run the MCP stdio server |
archcore mcp install |
Install MCP config for detected agents |
# Update to the latest version
archcore updateThe command checks GitHub Releases for a newer version, downloads it, verifies the SHA-256 checksum, and atomically replaces the current binary.
# Install integrations for a specific agent
archcore hooks install --agent cursor
archcore mcp install --agent gemini-cliArchcore integrates with AI coding agents in two ways:
- Hooks inject context at session start, so the agent is aware of your
.archcore/documents from the first message. - MCP (Model Context Protocol) gives the agent tools to list, read, create, update, and link documents in real time.
| Agent | Hooks | MCP |
|---|---|---|
| Claude Code | yes | yes |
| Cursor | yes | yes |
| Gemini CLI | yes | yes |
| GitHub Copilot | yes | yes |
| OpenCode | — | yes |
| Codex CLI | — | yes |
| Roo Code | — | yes |
| Cline | — | manual |
# Auto-detect agents in your project and install everything
archcore hooks install
# Or target a specific agent
archcore mcp install --agent opencodeSettings are stored in .archcore/settings.json and created during archcore init.
| Field | Description | Values |
|---|---|---|
sync |
Sync mode. Cloud and on-prem are coming soon. | none (local only), cloud, on-prem |
language |
Document language. Helps the agent generate documentation in the right language. | String, defaults to en |
archcore config # show all settings
archcore config get <key> # get a specific value
archcore config set <key> <value> # set a value- Go 1.24+
# Build
go build -o archcore .
# Run all tests
go test ./...
# Run a specific package
go test ./cmd/
# Run a single test
go test ./cmd/ -run TestConfigCmd├── cmd/ # Cobra commands (init, doctor, config, status, hooks, mcp, ...)
├── internal/
│ ├── agents/ # Supported AI agents with hooks/MCP capabilities
│ ├── api/ # HTTP client for archcore server
│ ├── config/ # Settings management and directory init
│ ├── display/ # Terminal output formatting (lipgloss)
│ ├── update/ # Self-update logic (version check, download, verify, replace)
│ ├── mcp/ # MCP stdio server implementation
│ └── sync/ # Sync logic
├── templates/ # Document type templates
├── install.sh # Install script
└── .goreleaser.yaml # Release configuration
- Documentation: docs.archcore.ai
- Website: archcore.ai
- Issues: github.com/archcore-ai/cli/issues
- License: Apache 2.0