Guidance for AI coding agents (Claude Code, Codex, Cursor, etc.) working in this repository. CLAUDE.md is a symlink to this file, so both resolve to the same content.
This is the Plane developer documentation site built with VitePress (Vue 3-based static site generator). It covers REST API reference, self-hosting guides, and developer tools documentation for the Plane project management platform.
Live site: https://developers.plane.so
pnpm install # Install dependencies (use --frozen-lockfile in CI)
pnpm dev # Start dev server at http://localhost:5173
pnpm build # Production build
pnpm preview # Preview production build
pnpm check:format # Check Prettier formatting
pnpm fix:format # Auto-fix Prettier formatting
pnpm check:types # Type-check the VitePress config and themeCI checks on PRs (to master): Prettier formatting + VitePress build must pass.
docs/β All documentation content and VitePress configdocs/.vitepress/config.mtsβ Main VitePress config: navigation, sidebar structure, SEO, Algolia search, analytics. This is a large file that defines the entire site structure.docs/.vitepress/theme/β Custom theme (extends@voidzero-dev/vitepress-themeviaextendConfig) with Vue components and global stylesdocs/api-reference/β REST API endpoint docs (180+ endpoints across 30+ resource categories)docs/self-hosting/β Deployment and configuration guidesdocs/dev-tools/β Webhooks, OAuth apps, agents, MCP server docs
docs/
api-reference/ # REST API docs β 30+ resource categories (issues, cycles, modules, pages, etc.)
dev-tools/ # Developer tooling guides
agents/ # Agent development (overview, building, signals, best practices)
build-plane-app/ # App development guide
mcp-server.md # MCP server setup
mcp-server-claude-code.md # MCP server with Claude Code
plane-compose.md # Plane Compose reference
openapi-specification.md
intro-webhooks.md
self-hosting/ # Deployment and configuration guides
methods/ # Docker, Kubernetes, Podman, Coolify, Portainer, one-click, airgapped
install-methods-commercial/ # Commercial Docker Compose and Kubernetes
govern/ # Auth, integrations, settings, SSL, DNS, env vars
integrations/ # GitHub, GitLab, Slack, Sentry
plane-ai/ # AI features configuration (configure-plane-ai, embedding models)
manage/ # Backup/restore, Prime CLI, update Plane, logs, user management
troubleshoot/ # CLI errors, installation, license, storage errors
self-hosting/methods/kubernetes.mdβ K8s deployment guideself-hosting/methods/install-methods-commercial/β Commercial Docker Compose and Kubernetesself-hosting/govern/integrations/β GitHub, GitLab, Slack, Sentryself-hosting/govern/plane-ai/β AI features configuration (configure-plane-ai.md,configure-embedding-model.md,aws-opensearch-embedding.md)self-hosting/govern/environment-variables.mdβ All env var referenceself-hosting/govern/authentication.mdβ Auth setup (LDAP, OIDC, SAML, OAuth)self-hosting/govern/reverse-proxy.mdβ Reverse proxy setupself-hosting/manage/β Instance management, backup/restore, Prime CLIdev-tools/agents/β Agent development docsdev-tools/mcp-server.mdandmcp-server-claude-code.mdβ MCP server docs
Used directly in markdown files β defined in docs/.vitepress/theme/components/:
| Component | Usage |
|---|---|
<ApiParam> |
API parameter with name, type, required badge, expandable details |
<CodePanel> |
Multi-language code tabs (cURL, Python, JavaScript) |
<ResponsePanel> |
Syntax-highlighted API response JSON |
<Card> |
Feature card with icon, title, description |
<CardGroup cols="N"> |
Responsive grid layout (2, 3, or 4 columns) |
API endpoint pages follow a strict two-column layout pattern:
<div class="api-two-column">
<div class="api-left">
<!-- Parameters using <ApiParam> -->
</div>
<div class="api-right">
<!-- Code examples using <CodePanel> + <ResponsePanel> -->
</div>
</div>Each endpoint page: one file per endpoint, includes path/body params, OAuth scopes, and code examples in cURL/Python/JavaScript.
- Frontmatter: Every markdown page needs
title,description, andkeywordsfields - Images: Stored in
docs/.vitepress/public/images/, referenced with absolute paths (/images/...) - Branch workflow: Branch from
master, usefix/,feat/,docs/,update/prefixes - Formatting: Prettier enforced β 120 char width, 2-space indent, semicolons, double quotes, ES5 trailing commas
- Sidebar updates: When adding new pages, update the sidebar config in
docs/.vitepress/config.mts
- Not all features are documented immediately after release
- API reference covers 30+ resource categories β check
docs/api-reference/for the full list self-hosting/govern/plane-ai/is the correct location for AI configuration (the formerself-hosting/govern/plane-ai.mdwas split into a directory)