magus v0.4.2 is out. See what's new
¶ View generated markdown
1 min read

magus-init

Bootstrap a workspace (magus.yaml + magusfile.buzz + merge driver)

Synopsis

magus init [flags]

Description

Bootstrap a magus workspace in the current directory.

By default, magus.yaml is written to $XDG_CONFIG_HOME/magus/ (the global user config location). Use --local to write it into the repo instead (useful for checked-in, team-shared config). The magusfile stub and VCS merge driver are always wired in the repo.

With --global only the global config is written; the per-clone workspace bootstrap (magusfile stub + merge driver) is skipped.

The VCS is taken from --vcs, or chosen interactively when stdin is a terminal.

The "spell" subcommand scaffolds a new spell instead of bootstrapping a workspace: "magus init spell <name>" writes spells/<name>/spell.buzz with the mgs_ contract stubbed, each function documented, and a runnable test block.

Options

--dry-run
Print the config, magusfile, and merge-driver destinations without writing any of them
--force
Overwrite an existing config file
--global
Write only the global config; skip the workspace bootstrap
--local
Write config into the repo (CWD) instead of $XDG_CONFIG_HOME/magus/
--vcs string
VCS to wire the merge driver for (git|hg); prompts when omitted on a TTY

Examples

Bootstrap the current repo

magus init

Non-interactive (CI): pick the VCS explicitly

magus init --vcs git

Write only the global config

magus init --global

Scaffold a new spell

magus init spell mytool

See Also

magus(1), magus-ls(1), magus-describe(1), magus-run(1), magus-x(1), magus-where(1), magus-affected(1), magus-graph(1), magus-query(1), magus-explain(1), magus-path(1), magus-refs(1), magus-watch(1), magus-events(1), magus-status(1), magus-clean(1), magus-vcs(1), magus-doctor(1), magus-config(1), magus-session(1), magus-memory(1), magus-notes(1), magus-diff(1), magus-server(1), magus-mcp(1), magus-buzz(1), magus-completion(1), magus-man(1), magus-agent(1), magus-self(1), magus-version(1)

generatedinternal/cli/registry.goclimagus initbootstrapsetupmagus.yamlmagusfileworkspace
Last updated (4f8cc295)
Earlier changes on this page (7)

Full history ↗ · Blame source ↗

Glossary

Workspace

The magus root directory that owns a set of projects and shared config; the unit magus operates over. See workspace.

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. See targets.

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Spell

A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands. See spells.

Buzz

The language magusfiles are written in (the .buzz engine). See engines.

Affected

The set of projects touched by a change; magus affected <target> runs a target only over them. See affected.

CI

An ordinary magusfile-defined target you compose yourself with magus\needs - magus does not hardcode its stages. Magus.RunCI treats it specially only in that it strips the rw charm, it is the anchor magus affected ci keys off, and a selected scope with no project declaring it is a load error rather than a silent no-op. See targets.

MAGUS.md

The committed routing index at a workspace root, regenerated from the knowledge graph: it lists every node and points at the exact query for a given question, so it is the entry point an agent reads first. See knowledge.

Session

One magus process's recorded facts - the targets it finished, their outcomes, and the lease it acted as - kept in a repo-scoped store every worktree shares. magus session lists them; the store prunes itself by last-fact age.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.