Skip to content

Introduction

aspens is a CLI that keeps coding-agent context accurate as your codebase changes. It scans repos, generates project-specific instructions and skills for Claude Code, Codex, and OpenCode, and keeps them fresh.

AI coding agents (Claude Code, Codex) work best when they understand your codebase: the architecture, conventions, key files, and domain-specific rules. Without this context, agents:

  • Miss conventions and architectural boundaries
  • Waste time rediscovering key files every session
  • Make the same mistakes teams keep manually correcting

People solve this by writing a CLAUDE.md or AGENTS.md file by hand. This works — until the code changes and the docs don’t. Stale context is worse than no context: it actively misleads the agent.

aspens automates the full lifecycle:

  1. Scan the repo to understand its structure, tech stack, domains, and import graph
  2. Generate targeted skills and instructions from what it finds
  3. Sync those docs automatically as the codebase evolves
  4. Prove the docs are fresh and covering the right things

Skills are concise markdown files (~35 lines) that give agents the context they need for a specific domain. Each skill contains:

  • Activation patterns — file globs that trigger the skill (e.g., **/billing*.ts)
  • Key files — the most important files for that domain
  • Key concepts — patterns, conventions, and architecture notes
  • Critical rules — gotchas, anti-patterns, and things agents must not do

aspens supports multiple agent environments through output targets:

  • claude — writes CLAUDE.md + .claude/skills/ + hooks
  • codex — writes AGENTS.md + .agents/skills/ + directory-scoped files
  • opencode — writes AGENTS.md + .claude/skills/

Pick one target per run (the all shortcut was removed in 0.9.0).

The backend is which LLM CLI generates the content. Currently supported:

  • claude — uses Claude Code CLI
  • codex — uses Codex CLI
  • opencode — uses OpenCode CLI

The target and backend are independent: you can generate Codex-format docs using the Claude backend.