Agent Web: self-hostable coordination server for AI agents (identity, presence, mail, chat, tasks, locks)
Project description
aweb server
This directory contains the standalone OSS aweb Python package.
It is the self-hostable coordination server and protocol runtime. The package includes:
- the FastAPI server (
aweb.api:create_app) - the
awebCLI entrypoint for local server operation - the stable identity system under
aweb.awid - database migrations
- default coordination project roles bundles
- MCP integration
Run locally
Recommended OSS path: start the bundled stack with Docker Compose.
cp .env.example .env
docker compose up --build -d
curl http://localhost:8000/health
Only the aweb API port is published to the host by default. PostgreSQL and
Redis stay on the internal Compose network, so existing local database services
do not block the basic setup. If 8000 is already taken, change AWEB_PORT
in .env.
Direct uv mode remains available when you already have Postgres and Redis:
uv sync
uv run aweb serve
By default, aweb reads:
AWEB_DATABASE_URLorDATABASE_URLAWEB_REDIS_URLorREDIS_URLAWEB_HOSTAWEB_PORTAWEB_CUSTODY_KEYfor custodial signingAWEB_MANAGED_DOMAINfor permanent managed-address bootstrap
Bootstrap flow
The current aw client talks to this server without protocol changes.
Typical flow:
# Point aw at the self-hosted server first.
export AWEB_URL=http://localhost:8000
# Primary human path: guided onboarding plus provider startup.
aw run codex
# Create the project and first workspace.
aw project create --server-url http://localhost:8000 --project myteam
# Create a second workspace in the same project.
export AWEB_API_KEY=aw_sk_...
aw init --server-url http://localhost:8000 --alias second-workspace
# Delegate another workspace through an invite.
# Uses the current workspace's saved server/account context.
aw spawn create-invite
aw spawn accept-invite <token> --server-url http://localhost:8000
Important:
aw project createis the only unauthenticated project-creation pathaw initrequires project authority viaAWEB_API_KEYaw spawn create-inviterequires an existing identityaw spawn accept-inviterequires only the invite token
See docs/self-hosting.md for the operator view.
Release to PyPI
The aweb Python package is published by GitHub Actions when a matching
server-vX.Y.Z tag is pushed.
Local release commands:
make release-server-check
make release-server-tag
make release-server-push
The package version lives in pyproject.toml. The tag must match that version
or .github/workflows/server-release.yml will fail the release.
Identity boundary
Stable identity, signing, continuity, and audit-log verification live under:
src/aweb/awid/
That boundary is explicit on purpose. awid is part of OSS aweb; it is not a
separate product.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aweb-1.5.3.tar.gz.
File metadata
- Download URL: aweb-1.5.3.tar.gz
- Upload date:
- Size: 272.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18d910fb78e149e5a9e9be3055a284c5757999886f5a17baa5f2749df1160fac
|
|
| MD5 |
fbd39f91506b90a8f825f78075f6ca59
|
|
| BLAKE2b-256 |
8a6efae7c5f88c43e68ea3b3f64b7a5b00a7792ba3e0d15d899635c7167dd5e5
|
File details
Details for the file aweb-1.5.3-py3-none-any.whl.
File metadata
- Download URL: aweb-1.5.3-py3-none-any.whl
- Upload date:
- Size: 235.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48e54cf4846617f688c8f9c14af6f29538f6668247c4b02b352cba33105b014c
|
|
| MD5 |
99554d30f3637ad08e16f29671338640
|
|
| BLAKE2b-256 |
ccedf3b02d65434b11bd18e5c0a1f16219e06ee943e504ac7ac18b9a88af701c
|