Skip to content

Repository files navigation

Frontseat

Polyglot build orchestrator for the AI age. Entity-centric (Backstage catalog model), plugin-based, with REAPI-compatible caching.

Why Frontseat

  • Your catalog is your build graph. Build targets are Backstage catalog entities (Components, Systems, APIs) declared in catalog-info.yaml — not directory paths. The same model that documents your software builds it, so ownership, relationships, and dependencies stay in one place.
  • Polyglot out of the box. Plugins cover Go, Rust, Java (Maven, Gradle, Tycho), .NET, Node.js (npm, yarn, pnpm, Vite, Fumadocs), Python (uv), Deno, Protobuf, OpenAPI/AsyncAPI, OCI images (apko), Helm, and more. Each plugin discovers buildable facets from the manifests already in your repo — no per-target build files to write.
  • Hermetic builds, zero setup. Every build action runs on a Remote Execution API (REAPI) grid with full input/output enforcement and content-addressed caching. With no configuration, frontseat build starts an embedded local grid in-process; point reapi: at BuildGrid, BuildBuddy, or any REAPI-compatible service to share caches and scale out — the action model is identical either way.
  • Reproducible toolchains. Tool versions live in your mise config and are the single source of truth: actions declare tool names, the resolved version is hashed into every action digest, and an unpinned tool fails the build instead of silently using whatever is on $PATH.
  • One lifecycle from checkout to release. Setup → Build → Ship as a single DAG: install, codegen, compile, test, then assemble, tag, publish to GitHub Releases, Homebrew, Scoop, Maven Central, and friends. Running a phase runs everything it depends on, cached.
  • Built for AI agents. fs setup registers the Frontseat MCP server with Claude Code or Codex, so an agent can inspect the workspace, run builds, and apply fixes through structured tools and commands instead of scraping terminal output.

Install

Installs the frontseat CLI (also available as fs). mise is a hard dependency; installation methods install it automatically unless stated otherwise.

Homebrew (macOS, Linux)

brew tap frontseat-dev/tap
brew install frontseat

Scoop (Windows)

scoop bucket add frontseat https://github.com/frontseat-dev/scoop-bucket
scoop install frontseat

Getting started

Workspace setup is AI-driven: Frontseat ships an MCP server that your AI coding agent uses to scan the repo and generate the workspace files.

1. Install the AI integration

frontseat setup

This detects your AI clients (Claude Code, Codex) and registers the fs mcp server with them. It exposes the workspace through structured MCP tools (scan, build, catalog queries, conformance, sync) and MCP commands like /fs:init, /fs:status, /fs:build, and /fs:conform that drive those tools.

2. Initialize the workspace

In your repository, start your AI client and run the init command:

claude          # or codex
> /fs:init

The agent scans the repo, detects which plugins fit (Go, Maven, npm, ...), previews the workspace files, and — after your approval — writes them:

  • frontseat.yaml — workspace config: repositories and enabled plugins
  • catalog-info.yaml — your entities (Backstage Components, Systems, APIs)
  • mise.toml — pinned Frontseat plugins (frontseat:<name>) and project tool versions; versions here are the single source of truth, and a tool a build action needs but isn't pinned fails the build

3. Build

frontseat build //        # build everything (starts the embedded grid automatically)
frontseat test //         # run through the test phase
frontseat conform         # run conformance checks
frontseat ship //         # assemble, tag, release, publish

// selects every entity; frontseat build //greet builds one. The first build starts a local REAPI grid in-process — no Docker, no daemon setup. Subsequent builds are incremental via the content-addressed cache.

Contributing

Frontseat builds itself, hermetically, on a local REAPI grid (Docker). The short version:

mise install                                                # pinned toolchain
docker compose -f reapi/buildgrid/docker-compose.yml up -d  # local build grid
mise dev                                                    # dev build into bin/
frontseat build //

See CONTRIBUTING.md for the full guide: how the dev/stable isolation works, starting a grid (BuildGrid or BuildBuddy), single-binary iteration, running tests, and Windows setup.

Licence

Apache-2.0 — see LICENSE and NOTICE.

About

Polyglot build and ship orchestrator for the AI age — entity-centric, plugin-based, with REAPI-compatible caching

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages