Skip to main content

EdgeCitadel

EdgeCitadel connects AI Agents across a Core and enrolled Edge hosts. It runs complete Agents from packages such as Gemma and Home Assistant adapters, and connects active Pi, Claude Code, and Codex sessions through their native plugin systems.

Install

Install uv if it is not already available, then install EdgeCitadel as an isolated CLI tool:

uv tool install edgecitadel

On macOS, Homebrew is also supported through the EdgeCitadel tap:

brew tap EdgeCitadelTeam/edgecitadel
brew trust --tap EdgeCitadelTeam/edgecitadel
brew install edgecitadel

Homebrew 6 requires the trust step before loading formulas from a non-official tap.

uv tool install avoids modifying an operating-system-managed Python environment. See the Python distribution guide for a manual virtual-environment fallback.

Then run the guided, idempotent installer from the project where host-local Plugins should be configured:

edgecitadel install

The terminal guide first asks whether this host should join an existing Core or create a new one. It then collects the reachable Core address or invitation, explains the Edge messaging choices, detects available native agent hosts, and shows the exact Plugin installation plan before asking for confirmation.

For automation, make every choice explicit, for example edgecitadel install --create --host core.example.internal --plugin codex --scope user --yes on a Core.

Create a Core

For normal setup, run edgecitadel install and choose create. The guide asks for the hostname or IP that Edge hosts can reach; no separate edgecitadel create command is required.

For unattended setup, start Docker and provide every choice as flags:

edgecitadel install --create --host core.example.internal --plugin codex --scope user --yes
edgecitadel doctor

The unified command creates the Core, starts its services, installs the selected Plugin, checks local requirements, and prints the dashboard URL.

Join an Edge

Create a one-time invitation on the Core:

edgecitadel invite --node-id studio-macmini --host core.example.internal

Copy the returned invitation URI to the Edge. The default single-client mode connects the EdgeCitadel service directly to Core NATS:

edgecitadel install --join 'ecjoin://...' --plugin codex --scope user --yes

Use nats_leaf when Agents on this host must keep communicating while the Core connection is unavailable:

edgecitadel install --join 'ecjoin://...' --messaging-mode nats_leaf --plugin codex --scope user --yes

The unified commands enroll the Edge, start its EdgeCitadel services and any mode-specific NATS process, and install the selected native-host Plugin. Use the lower-level edgecitadel join command only when those remaining steps will be managed separately.

In both modes, Agent integrations talk to the host-local EdgeCitadel service. Only nats_leaf needs a local NATS server; it is the durable local message bus and maintains the outbound Leaf connection to Core. If nats-server is not already on PATH, EdgeCitadel downloads its pinned, SHA-256-verified NATS release into ~/.edgecitadel/runtime/nats-server. A custom executable can be selected with EDGECITADEL_NATS_SERVER.

Install an Agent Package

Agent Packages contain complete runtimes operated by EdgeCitadel. An installed runtime may declare one or more Agent identities:

edgecitadel agent install gemma
edgecitadel agent list
edgecitadel agent status edgecitadel.gemma

Home Assistant is installed the same way after its URL, token, and allowlist are configured. EdgeCitadel operates the adapter and never installs or removes Home Assistant itself. See the Gemma guide and Home Assistant guide.

Connect an existing Agent

Plugins add Agent discovery, delegation, inbox, task-state, trace, and diagnostic tools to an active host session. They do not start the host in the background, and EdgeCitadel does not pass NATS credentials through the plugin protocol.

edgecitadel plugin install codex
edgecitadel plugin install claude-code --scope project
edgecitadel plugin install pi --scope user
edgecitadel plugin list

Each command delegates to the host's native package manager and reports package installation separately from activation. Start a new host session, then use its edgecitadel_* tools. Inspect active sessions with edgecitadel connector list and edgecitadel connector status <connector-id>. The unified installer repairs a selected Plugin whose distribution path moved; use edgecitadel plugin repair <host> to perform that repair explicitly.

Operate

edgecitadel status
edgecitadel doctor
edgecitadel service status
edgecitadel task list --connector-id <connector-id>
edgecitadel trace list --connector-id <connector-id>

Stop a Core without deleting its data with edgecitadel down.

Upgrade or uninstall

Use the package manager that installed EdgeCitadel:

uv tool upgrade edgecitadel
uv tool uninstall edgecitadel

brew upgrade edgecitadel
brew uninstall edgecitadel

Before uninstalling an Edge, run edgecitadel service stop; in nats_leaf mode also run edgecitadel messaging stop. Uninstall preserves local state in ~/.edgecitadel.

More detail: onboarding and troubleshooting and contributing.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edgecitadel-0.3.0.tar.gz (230.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edgecitadel-0.3.0-py3-none-any.whl (324.8 kB view details)

Uploaded Python 3

File details

Details for the file edgecitadel-0.3.0.tar.gz.

File metadata

  • Download URL: edgecitadel-0.3.0.tar.gz
  • Upload date:
  • Size: 230.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for edgecitadel-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b8b3fbc88dbd22730b0b95dc01d193b8c351f2f0d237a4bfc5aef6ea7cecbe0c
MD5 783dbaea97f15c3db0003df98755587e
BLAKE2b-256 a6ea690855c01bb73ec496589c57b93aa566236337e04f755dfbdb47c1109bfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgecitadel-0.3.0.tar.gz:

Publisher: publish-pypi.yml on EdgeCitadelTeam/EdgeCitadel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file edgecitadel-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: edgecitadel-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 324.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for edgecitadel-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f961fc73b87fe18104c67f415966e272abe4d0ff17b4883df358c59b783b414c
MD5 4839b4a49740108307f644293d33468c
BLAKE2b-256 fd20d0d4e6a6631af3a399fe84526ae5157f97cd95d8502d2674d2458a50c993

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgecitadel-0.3.0-py3-none-any.whl:

Publisher: publish-pypi.yml on EdgeCitadelTeam/EdgeCitadel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.0

2 files

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

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