brainiac-install
v0.20.38
Published
One-command bootstrap for the Brainiac 'brain' CLI engine — installs brainiac-cli from PyPI (uv/pipx/pip), verifies it, and initializes a vault.
Downloads
1,793
Maintainers
Readme
brainiac-install
Thin bootstrap for the Brainiac brain
CLI engine. One command on any machine with Node.js >=18:
npx brainiac-installWhat it does
Detects an existing
brainon PATH. If found, it skips reinstalling and points you atbrain updateinstead.Installs the engine from PyPI (
brainiac-cli[mcp]), trying in order:uv tool install->pipx install->python3 -m pip install --user(Windows:py -3/python). First one available on PATH wins. If none of uv/pipx/Python >=3.9 are found, it prints the two official install commands (the uv standalone installer, and python.org) and exits — it never installs anything on your behalf beyond thebrainiac-clipackage itself.On a machine with Node but no Python, use the shell installer instead. This package deliberately stops rather than fetching a toolchain for you, so it cannot help there.
install.sh/install.ps1(see the repo README) do fetchuv— a self-contained binary needing no Python — and let uv download its own CPython. This package is for machines that already have a Python toolchain and would rather type onenpxcommand than curl a script.Verifies the install (
brain --version) and prints a PATH hint if the new shim directory isn't on PATH in the current shell yet.Initializes a vault — prompts for a workspace directory (or accept one via
--vault <path>) and runsbrain init --full --applyagainst<path>/vault, so the bootstrap ends at a searchable vault, not just an installed CLI. Decline (or run non-interactively without--vault) and it prints the exact command to run yourself later.Optionally wires one client with
--client <name>(one ofclaude-code,claude-desktop,codex,gemini), delegating tobrain connect --client <name>. Without the flag it just lists the available clients.
Add --dry-run to print the full command plan without executing anything —
no installs, no network access, no filesystem writes.
What it never does
- No telemetry. This script makes zero network calls itself; every
network access happens inside the tools it invokes (
uv,pipx,pip), which you can inspect independently. - No shell strings. Every subprocess is spawned from an explicit argv
array (
spawnSync(..., { shell: false })) against a binary this script resolved to an absolute path itself. The one narrow exception: on Windows, a resolved binary that turns out to be a.cmd/.bat/.ps1shim can't be exec'd without a shell, so that one call is shell-routed with fully static, hardcoded arguments — never user input, never a piped remote script. - No runtime dependencies. Pure Node.js stdlib (
node:child_process,node:fs,node:os,node:path,node:readline). - The engine is Python, distributed on PyPI — this package is a thin
wrapper that shells out to
uv/pipx/pipto install it. It is not a reimplementation ofbrainin JavaScript, and it does not vendor or bundle the engine. - Not for Node-free machines. If Node.js itself isn't available, this
package can't run — use the
uvx-based install path documented in the main repo'sdocs/install/instead.
Flags
--dry-run print the command plan; execute nothing
--vault <path> workspace directory; vault created at <path>/vault
--no-vault skip the vault-init step
--client <name> claude-code | claude-desktop | codex | gemini
-h, --help show helpLicense
Apache-2.0
