Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Fadenstack

PyPI version Python 3.12+ License

The single entry point to deploy, configure, and manage the fadenstack platform — an open-source LLM gateway that routes, secures, and observes traffic across local runtimes and remote providers.

pipx install fadenstack       # or: uv tool install fadenstack
faden deploy                 # installs Fadenstack into ~/fadenstack and starts it

The CLI carries the deployment files of its release and runs that release's published images: fadenstack 0.4.3 deploys Fadenstack 0.4.3. To upgrade, upgrade the CLI and run faden upgrade. See Installing Fadenstack.


Features

  • One-command production deploy — pre-flight checks, .env generation, the release's images, database migrations, and service startup.
  • Upgrade, backup and restore — faden upgrade backs up every database, moves the install to the CLI's release and keeps your settings.
  • Auto-tuning — detects host CPU / RAM and computes optimal worker counts, DB pool sizes, and queue channel pools.
  • Module management — enable / disable optional services (PII redaction, MCP tools, skills, provenance) via Docker Compose profiles.
  • GPU detection — faden doctor lists the host's GPUs; faden deploy adds the NVIDIA GPU overlay when the host has an NVIDIA runtime.
  • Developer workflow — clone all repos, install deps, run infra + migrations, and generate a VS Code workspace in one command.
  • Rich terminal UI — tables, progress bars, and themed output powered by Rich.
  • Command abbreviation — type faden st instead of faden status.

Requirements

Dependency Minimum
Python 3.12
Docker Engine 24.0
Docker Compose v2

Git is only needed to deploy from a source checkout (--build) or for the developer workflow.


Installation

From PyPI

pip install fadenstack

# or with uv
uv tool install fadenstack

From source

git clone https://github.com/fadenstack/fadenstack.git
cd fadenstack/cli
uv sync                   # install deps + editable entry point
uv run faden --help

Verify

faden version
faden doctor

Quick start

Production deployment

# Full deploy — pre-flight, env gen, pull this release's images, migrate, start
faden deploy                      # into ~/fadenstack
faden deploy /opt/faden         # into a directory of your choice

# Enable optional modules
faden deploy --modules pii,mcp

# From a source checkout: build the images instead of pulling them
faden deploy --build

# Upgrade to the CLI's release (backs up first), back up, restore
faden upgrade
faden backup
faden restore ~/fadenstack/backups/<time>

# Provision node-agent on this host during deploy
faden deploy /opt/faden --local-node

# Provision node-agent on remote host over SSH
faden deploy /opt/faden --local-node --local-node-host ubuntu@10.0.0.12

Day-to-day operations

faden up                          # start all services
faden up --build faden-gateway     # rebuild a single service
faden down                        # stop all services
faden down --volumes              # stop + remove volumes
faden status                      # service table
faden logs -f                     # tail all logs
faden logs -f faden-backend    # tail one service

Modules

faden module list                 # show available modules
faden module enable pii skills    # enable modules
faden module disable mcp          # disable a module

Provenance marks AI-generated content (EU AI Act Art. 50(2)) and is on by default: faden deploy and faden upgrade switch it on. faden module disable provenance warns that generated content will no longer be marked, asks first (--yes for scripts), and records in faden.yaml who switched it off and when; upgrades then leave it off until faden module enable provenance.

Configuration

faden config show                 # print current config
faden config set dev.branch main  # update a value (dot-notation)
faden config edit                 # open in $EDITOR
faden config path                 # print config file location

Auto-tuning

faden tune                        # detect resources, write .env
faden tune --profile prod         # production-grade sizing
faden tune --dry-run              # preview without writing

Admin utilities

faden admin reset-password --email admin@localhost

Developer workflow

# Bootstrap everything — clone repos, install deps, start infra,
# run migrations, generate VS Code workspace
faden dev init ~/projects/fadenstack
faden dev init ~/projects/fadenstack --ssh        # SSH cloning
faden dev init ~/projects/fadenstack --overwrite   # re-clone existing repos

# Start / stop / status
faden dev up                            # on this machine only (127.0.0.1)
faden dev up --lan                      # on every interface, for one run
faden dev up --backend-only
faden dev up --modules pii,mcp,skills,provenance   # also run the optional modules
faden dev up --local-node
faden dev up --local-node --local-node-host ubuntu@10.0.0.12
faden dev down
faden dev status

# Check dev prerequisites (optionally auto-install missing tools)
faden dev doctor
faden dev doctor --install --yes

--modules runs PII (8003), MCP (8007), skills (8008) and provenance (8009) on the host beside the backend, and points the gateway and backend at them. Provenance has a repository of its own: it runs from a checkout beside the core one (../fadenstack-provenance), and without that checkout dev up says so and starts the rest. Without --modules, the modules switched on with faden module enable run; the others are switched off in the gateway and backend. See What happens to a request.

--local-node installs a systemd unit by default and requires sudo on Linux. Use --local-node-no-sudo to skip privileged systemd setup.


Command reference

Command Description
faden version Print CLI, Python, Docker, and Compose versions
faden doctor Run system health checks (OS, RAM, disk, Docker, GPU, ports)
faden deploy [DIR] Full production deployment with pre-flight checks
faden upgrade Back up, move to the CLI's release, restart with health gate
faden backup / faden restore DIR Dump every database and .env / put them back
faden maintenance on|off|status Show the maintenance page instead of the platform (-m note)
faden deploy [DIR] --local-node Deploy + provision node-agent (local or SSH host)
faden up [SERVICES...] Start services (supports --build, --pull)
faden down Stop and remove containers (--volumes, --all)
faden status Show service state, health, and ports (--json)
faden logs [SERVICES...] Stream logs (-f, -n, --timestamps)
faden config show|set|edit|path|init Manage YAML configuration
faden module list|enable|disable Toggle optional platform modules
faden tune Auto-tune worker and pool settings (--profile, --dry-run)
faden admin reset-password Reset a user password directly in the database
faden dev init [DIR] Bootstrap full developer workspace
faden dev up Start backend, worker, gateway, and frontend dev servers
faden dev up --lan The same, reachable from the network (dev mode signs anyone in as admin)
faden dev up --modules pii,mcp,skills Also run the optional modules on the host
faden dev up --local-node Start dev services and provision node-agent
faden dev down Stop all dev processes
faden dev status Show repo branches, infra, and dev processes
faden dev doctor Check dev prerequisites (--install)

Project structure

cli/
├── pyproject.toml
├── src/
│   └── faden_cli/
│       ├── cli.py                 # Click root group + AliasedGroup
│       ├── commands/
│       │   ├── version.py         # version
│       │   ├── doctor.py          # doctor
│       │   ├── deploy.py          # deploy
│       │   ├── up.py              # up
│       │   ├── down.py            # down
│       │   ├── status.py          # status
│       │   ├── logs_cmd.py        # logs
│       │   ├── config.py          # config group
│       │   ├── module.py          # module group
│       │   ├── tune.py            # tune
│       │   ├── admin.py           # admin group
│       │   └── dev/               # developer workflow
│       │       ├── dev_init.py
│       │       ├── dev_up.py
│       │       ├── dev_status.py
│       │       └── dev_doctor.py
│       ├── core/                  # shared utilities
│       │   ├── compose.py         # Docker Compose wrapper
│       │   ├── detect.py          # OS / GPU / port detection
│       │   ├── settings.py        # YAML config (~/.config/faden/)
│       │   ├── api_client.py      # Backend REST client (httpx)
│       │   ├── bootstrap.py       # First-admin bootstrap
│       │   ├── env_gen.py         # .env generation (Jinja2)
│       │   ├── git.py             # Git clone / checkout helpers
│       │   ├── install.py         # Cross-platform tool installer
│       │   ├── registry.py        # Central metadata registry
│       │   ├── sysinfo.py         # Resource detection + tuning
│       │   └── console.py         # Rich themed output
│       ├── tui/                   # Textual TUI wizard
│       └── templates/             # Jinja2 .env templates
└── tests/

License

Apache License 2.0 — see LICENSE for details.

Part of the fadenstack project.

Metadata

Release files for fadenstack 0.5.0rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fadenstack 0.5.0rc2
File Size Uploaded Provenance
fadenstack-0.5.0rc2.tar.gz 383.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fadenstack 0.5.0rc2
File Interpreter ABI Platform
fadenstack-0.5.0rc2-py3-none-any.whl Python 3 none any Details

Total release size: 715.4 kB

Release files / fadenstack-0.5.0rc2.tar.gz

Download URL fadenstack-0.5.0rc2.tar.gz
Size 383.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fa564f6554d12eca85093e659e3f9570e079dc21a064247b855fe27b31cf1122
BLAKE2b-256 checksum
How to use checksums
26747da83c4c12b340af42ab705a827608c651ac06dd5f5e698a4d7e1bd526b2
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 Oct 21, 2026.

Transparency log

Release files / fadenstack-0.5.0rc2-py3-none-any.whl

Download URL fadenstack-0.5.0rc2-py3-none-any.whl
Size 332.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18a4fff70200721cdd507a71fcd409a1cdba11a5726b225de62f9e2e17b10309
BLAKE2b-256 checksum
How to use checksums
0d29c7774871887228fdc60679c8fba22c7b367f4710e54a816137f89fd2daf2
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 Oct 21, 2026.

Transparency log

Security for fadenstack 0.5.0rc2

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fadenstack-0.5.0rc2.tar.gz

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 Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page