marvis init
Interactive bootstrap wizard for the local MarvisX open-core runtime. Five prompts (license,
storage, BYOK, first project, recap) reusing the shared core/wizard/
state machine so the CLI and the Console /welcome route produce
byte-identical settings when given the same answers.
Install
pip install marvisx-cli
marvis init
Pre-install (clone and run) works too:
python -m core.cli.marvis_init init
Quick start (interactive)
marvis init
You will be asked:
- License — accept BSL 1.1 (
y/n). - Storage — projects root path, database backend (
sqliteorpostgres), and either the SQLite file path or the Postgres DSN. - LLM provider (BYOK) —
anthropic,openai,mac_gateway,bedrock, orskip. API key prompt is hidden input. Mac gateway asks for the base URL. - First project — name, slug, and type (
code,work,system). - Recap — review choices, confirm.
On confirmation the wizard writes:
~/.marvis/settings.yaml— workspace + storage + llm choice (no secrets), chmod 600.~/.marvis/master.key+~/.marvis/byok.vault— Fernet-encrypted API key store (only if a provider was chosen).<projects_root>/<slug>/project.yaml— first project seed.
Non-interactive / CI
marvis init \
--accept-bsl \
--no-interactive \
--projects-root /var/lib/marvis/projects \
--db-backend sqlite \
--db-path /var/lib/marvis/console.db \
--llm-provider anthropic \
--llm-api-key "$ANTHROPIC_API_KEY" \
--project-name "Local Workspace" \
--project-slug local-workspace \
--project-type code
YAML preset (preferred for repeatable provisioning):
marvis init --no-interactive --config init.yaml
init.yaml:
welcome:
bsl_accepted: true
storage:
projects_root: /var/lib/marvis/projects
db_backend: sqlite
db_path: /var/lib/marvis/console.db
llm_provider:
provider: anthropic
api_key: sk-ant-...
first_project:
name: Local Workspace
slug: local-workspace
type: code
Dry run
marvis init --dry-run --accept-bsl --no-interactive ...
Prints the planned filesystem writes and the rendered settings.yaml
without touching the disk. Exit 0.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success (or dry-run) |
| 1 | Generic runtime error |
| 2 | User abort at recap confirmation |
| 3 | Validation failure (field-level errors printed) |
Tests
python -m pytest tests/test_cli_marvis_init.py
Ten cases cover dry-run, non-interactive flags, YAML preset, BYOK vault
write, invalid slug rejection, Postgres backend, interactive prompts via
CliRunner(input=...), BSL gate, and show-state JSON dump.
Relation to core/scripts/marvis-init.sh
marvis-init.sh (bash) is a deploy bootstrap: copies
deploy/_template/, renders .env with secrets, runs
setup-server.sh, and brings up Docker Compose. It targets server
administrators provisioning a host.
marvis init (this Python CLI) is an onboarding wizard: writes
settings.yaml + BYOK vault + first project seed in the user's home.
It targets people running the source-available MarvisX runtime locally.
The two flows are complementary and will converge in a later phase. Until then both ship side-by-side.
Metadata
Release files for marvisx-cli 0.4.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| marvisx_cli-0.4.8.tar.gz | 2.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| marvisx_cli-0.4.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.1 MB
Release files / marvisx_cli-0.4.8.tar.gz
| Download URL | marvisx_cli-0.4.8.tar.gz |
|---|---|
| Size | 2.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11d190cb45d946ef5e2e4bee67ad8777c689fb8cae971f3dc3c01c6bfa7a4ed5
|
|
BLAKE2b-256 checksum How to use checksums |
dbf2e0478a8e48bf2b8eabf99da91ae48e9a710f1226f311bfce183adea68e43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency logRelease files / marvisx_cli-0.4.8-py3-none-any.whl
| Download URL | marvisx_cli-0.4.8-py3-none-any.whl |
|---|---|
| Size | 3.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f0e200200c865c52371ad291fbb458339564479b715582267bf71566e0ebd855
|
|
BLAKE2b-256 checksum How to use checksums |
62eb5462bda9645e5c0ab08741dd541ec63e750f77b2f5bb73ca3f1f495c1d8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency log