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 install edgecitadel

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

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

Create a Core

Start Docker, then choose a hostname or IP that Edge hosts can reach:

edgecitadel create --host core.example.internal
edgecitadel doctor

The command 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:

brew install nats-server  # macOS; use your system package manager elsewhere
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.

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.2.0.tar.gz (227.6 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.2.0-py3-none-any.whl (321.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for edgecitadel-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2cdcecd97ccccb640981760d9c1d51e0bf6caf2bd7b5270fb2eb61a8806eb10e
MD5 ad5ad3b6b527a4ed7e174ec8ba94bc95
BLAKE2b-256 d6e8a50bd75ffab75645f66184df7911009dc268fb2f9297d261168cdabbf878

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgecitadel-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: edgecitadel-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 321.6 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27d61181ccf1d1c6825e2cb12e8d4b1c00f3b28379a9072e7288645667811df9
MD5 c416c497332b549f2b93d790b16b992a
BLAKE2b-256 26c9643741342a3e519f248f57ff548107c3ab387285a6255629ed4b88e8605f

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgecitadel-0.2.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

0.3.0

2 files

This release

0.2.0 This release

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