Edgit extends Git with component-aware versioning. It tracks components (prompts, configs, queries, scripts, schemas), agents, and ensembles in a registry, uses Git tags for semantic versioning, and provides deployment tracking.Everything lives in Git. No proprietary storage. No vendor database. You own the source of truth.
Edgit’s job ends at git push. It creates Git tags, updates the registry, and pushes to your repository. That’s it.GitHub Actions handles everything after that. Deployment, validation, notifications—all standard Git workflows. Edgit doesn’t manage infrastructure, run webhooks, or orchestrate deploys. It’s just Git with component awareness.This keeps Edgit simple, portable, and compatible with any Git-based workflow you already have.
Modern AI systems have hundreds of independently evolving pieces:
50+ prompts
20+ agent implementations
Dozens of SQL queries
Multiple config files
Various scripts and transforms
Traditional approach: Everything gets the same version number. Change one prompt, bump the entire app to v2.0.0. Want to rollback? Revert the entire codebase.Edgit approach: Each component versions independently. Mix optimal versions from different points in time. Rollback one component without touching anything else.
Copy
# Version components independentlyedgit tag create prompts/extraction v1.0.0edgit tag create agents/company v2.1.0edgit tag create queries/validation v0.5.0edgit tag create schemas/invoice v1.0.0edgit tag create ensembles/data-pipeline v1.0.0# Deploy optimal combinationedgit tag set prompts/extraction prod v0.1.0 # Ancient but perfectedgit tag set agents/company prod v3.0.0 # Latest stableedgit tag set schemas/invoice prod v1.0.0 # Structured outputs# Push tags to trigger deploymentedgit push --tags
Components are hot-swappable artifacts that don’t require rebuilds:
Prompts (.md) - AI instructions
Configs (.json, .yaml) - Settings
Queries (.sql) - Database queries
Scripts (.js, .ts) - Reusable functions
Schemas (.json) - JSON Schema for structured AI outputs
Each gets its own version history via Git tags.
Copy
# Create versionedgit tag create prompts/extraction v1.0.0# List versionsedgit tag list prompts/extraction# Output: v1.0.0, v1.1.0, v1.2.0# View changesgit show components/prompts/extraction/v1.0.0
Agents are worker implementations that require rebuilds to deploy:
Copy
# Version agent implementationsedgit tag create agents/scraper v1.5.0edgit tag create agents/analyzer v2.0.0# Set environment tagsedgit tag set agents/scraper prod v1.5.0edgit tag set agents/analyzer prod v2.0.0# Push tagsedgit push --tags
Now you can reference versioned agents in ensembles:
Copy
ensemble: my-workflowagents: - name: scraper agent: [email protected] # Locked to specific version - name: analyzer agent: [email protected] # Different version component: [email protected] # With specific prompt version
Ensembles are workflow definitions that orchestrate agents. They can be written in YAML or TypeScript:
Copy
# Version TypeScript ensemblesedgit tag create ensembles/data-pipeline v1.0.0# Version YAML ensemblesedgit tag create ensembles/scraping-workflow v2.0.0# Set environment tagsedgit tag set ensembles/data-pipeline prod v1.0.0
# Create immutable version tagedgit tag create prompts/extraction v1.0.0# Set mutable environment tagedgit tag set prompts/extraction prod v1.0.0edgit tag set agents/scraper staging v2.0.0-beta# Push tags to trigger deploymentedgit push --tagsedgit push --tags --force # Force update remote tags
Edgit is 100% Git-compatible. Every git command works as an edgit command.
Copy
# Use edgit for all version controledgit initedgit add src/edgit commit # AI-powered if OPENAI_API_KEY setedgit push origin mainedgit checkout -b feature/new-promptedgit merge main
Reproduce bugs from last week by recreating the exact environment:
Copy
# View tag history using Gitgit log --oneline refs/tags/components/prompts/extraction# Recreate exact environmentedgit tag set prompts/extraction debug v3.1.0edgit tag set agents/processor debug v1.9.2