About this project

magus is a build system and task orchestrator designed for polyglot monorepos. It ships as a single statically linked Go binary with no second toolchain to install. Targets are written in Buzz, a small typed scripting language embedded in the binary, and are declared as exported functions in a `magusfile.buzz`. Key features include: - **Affected sets**: A dependency graph of projects and file-level input declarations lets `magus affected <target>` run only the projects a change can reach, in dependency order. This narrows CI work to what a diff actually touches. - **Content-addressed caching**: Every target declares its inputs and outputs. magus hashes inputs and replays stored outputs (SHA-256) when the same work is requested again, producing byte-for-byte identical results. - **Knowledge graph**: Built from declared sources (magusfile, docs, SCIP index, git history, CODEOWNERS), not inferred by an external indexer. It answers queries like `magus query "kind=target lint"`, `magus explain <node>`, and `magus refs <symbol>`. The graph is a byproduct of being the source of truth for builds. - **One vocabulary**: Targets, spells (language adapters), charms (modifiers like `rw` for read-write), and ops (tool invocations) are named once and reused across CLI, config, and graph. - **Terminal UI**: A pinned progress band at the bottom of the terminal that doesn't clear scrollback, with failure trees grouped by project and a graph-search picker. All surfaces degrade to plain text without a terminal. - **Browser console**: Optional read-only web apps (dashboard, graph explorer, log viewer, activity trail, diff) served by the daemon over loopback, with no embedded UI in the binary. Data never leaves the machine. - **Agent integration**: Installable skills for Codex and Claude Code, plus a committed `MAGUS.md` routing index, let AI agents query the graph and run targets deterministically. Architecture: A daemon (`magus server start`) exposes a Unix socket for local CLI dispatch and an HTTP server for MCP, read-only API, and Connect services, all behind a guard chain (DNS-rebind check, bearer token, CORS). Health endpoints are unguarded. A time-boxed LAN listener can share a read-only console to a phone. Non-goals: no remote execution, no toolchain management, no hermetic sandbox (off by default, no kernel layer on macOS), no container isolation, and a small ecosystem (young project, mostly one person's work). Getting started: Install via a curl script (review before running), then write a `magusfile.buzz` with exported functions for build, test, lint, etc. Commands like `magus ls`, `magus run test`, `magus affected ci`, and `magus query` provide immediate answers.