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

magus-buzz

Run a Buzz script

Synopsis

magus buzz [file|-|lsp] [flags]

Description

Run Buzz source from a REPL, a file, stdin, or an inline snippet.

With no argument on a terminal it opens a REPL with the magusfile at the current directory loaded, its targets and bindings ready. A piped or redirected stdin runs as a script instead. In both, the Buzz stdlib, every magus host module (fs, os, http, markdown, and the rest), and the magus namespace are available, so a one-off script needs no dependency install.

Parsing is upstream-strict by default: a file written for the magusfile engine needs --embedded, or it fails on rules upstream Buzz enforces and magus does not. The most common one is "argument N must be labeled".

-t runs a file's test blocks and reports pass or fail, which is how Buzz code in this ecosystem is tested. The lsp subcommand speaks the Language Server Protocol over stdio for an editor integration.

Options

-C string
Working directory for the REPL's import resolution (default: cwd)
-e code
Execute `code` given on the command line instead of a file
--embedded
Relax upstream strictness (top-level statements, optional argument labels) to match the magusfile engine
--no-autoload
Start the REPL without executing the magusfile
-t
Run the file's test "..." {} blocks and report pass/fail
--test
Alias for -t

Subcommands

lsp
Language server over stdio (LSP)

Examples

Open a REPL with the magusfile loaded

magus buzz

Run a script

magus buzz scripts/report.buzz

Run an inline snippet

magus buzz -e 'import "std"; fun main() > void { std\print("hi"); } main();'

Run a file's test blocks

magus buzz -t scripts/report.buzz

Run a magusfile-style file

magus buzz --embedded scripts/target.buzz

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-completion(1), magus-man(1), magus-init(1), magus-agent(1), magus-self(1), magus-version(1)

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

Full history ↗ · Blame source ↗

Glossary

Magusfile

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

Target

A named operation (build, test, ...) you invoke with magus run <target>; it may compose a spell's tool-native operations and depend on other targets. 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.

Module

A magus stdlib namespace a magusfile imports for host capabilities: filesystem, exec, vcs, and more. See the module reference.

Buzz

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

Engine

The interpreter a magusfile runs on; magus embeds 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.

One-off

A single magus invocation that runs a target and exits, using a per-process pool; the opposite of the long-lived daemon or a service. See daemon.

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.