Compiler, not an AI tool

One context. Every coding agent.

Stemma is a deterministic, local-first compiler for coding-agent context. Keep repository guidance in one canonical project, then compile it into each agent's native format.

shell
brew install alexvinola/stemma-cli/stemma
  • DeterministicSame input, same bytes
  • Local-firstNo network calls
  • No LLMExplicit grammar, not a model
  • No telemetryNothing is collected
  • Static binaryZero Go dependencies

Works with your agents

  • Copilot
  • Claude
  • Codex
  • Kiro
Compare providers →

How it works

A single source of truth for agent guidance.

Your repositoryAGENTS.md
CLAUDE.md
.github/**
.kiro/**
Stemmacompiles repository guidance
Agent-ready outputCopilot format
Claude format
Codex format
Kiro format
Import one existing format into .stemma/, then compile the same canonical source for every supported target.

Quick workflow

Provider files become build artifacts.

Import what already exists or start with stemma init. From then on, edit the canonical Markdown and regenerate every target deliberately.

  1. 01

    Scan

    Detect existing agent configuration without opening source code or writing files.

    stemma scan
  2. 02

    Import

    Turn one provider into ordinary Markdown and structured metadata under .stemma/.

    stemma import --from github-copilot --targets github-copilot,claude,codex,kiro
  3. 03

    Review

    Preview every generated file and every exact, adapted, lossy or blocked outcome.

    stemma plan --all
  4. 04

    Apply

    Write provider-native output transactionally after the plan looks right.

    stemma apply --all --yes

Native output

Compile once. Target every agent.

Stemma never pretends the providers are identical. It uses each provider's own mechanism and reports the adaptations their different capabilities require.

  • GitHub Copilot

    .github/copilot-instructions.md

    applyTo has no negative patterns, so canonical excludes are lossy. Its comma-separated list is split on brace nesting, and a literal comma is lossy.

  • Claude Code

    CLAUDE.md

    .claude/rules/ with paths: front matter; procedures are delivered as skills. Brace groups are expanded, not passed through.

  • Codex (AGENTS.md)

    AGENTS.md

    Directory proximity only, and no native specialist agents.

  • Kiro

    .kiro/steering/

    inclusion: always | fileMatch | manual | auto.

The contract

Predictable enough to trust.

No inferred intent, no silent data loss and no hidden network activity. Ambiguity becomes a diagnostic you can review.

Explainable by construction

Every canonical entity receives exactly one projection outcome per target. Loss is always attached to a diagnostic.

Safe around your repository

Stemma refuses symlinks, path traversal, untracked overwrites and files changed after it wrote them.

Reversible where formats allow it

Same-provider round trips preserve original bytes when meaning has not changed, including line endings and BOM.

Stemma v0.4.0

Make agent context part of your build.