Skip to main content

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 aweb CLI 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_URL or DATABASE_URL
  • AWEB_REDIS_URL or REDIS_URL
  • AWEB_HOST
  • AWEB_PORT
  • AWEB_CUSTODY_KEY for custodial signing
  • AWEB_MANAGED_DOMAIN for 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 create is the only unauthenticated project-creation path
  • aw init requires project authority via AWEB_API_KEY
  • aw spawn create-invite requires an existing identity
  • aw spawn accept-invite requires 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


Download files

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

Source Distribution

aweb-1.6.2.tar.gz (275.4 kB view details)

Uploaded Source

Built Distribution

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

aweb-1.6.2-py3-none-any.whl (237.0 kB view details)

Uploaded Python 3

File details

Details for the file aweb-1.6.2.tar.gz.

File metadata

  • Download URL: aweb-1.6.2.tar.gz
  • Upload date:
  • Size: 275.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

Hashes for aweb-1.6.2.tar.gz
Algorithm Hash digest
SHA256 0e04fd9123e25396e80afb0390c47d79222d86debfdb6e5336140e87d2b512ad
MD5 e4519c67ee655ceb53bc02c89e7adeb9
BLAKE2b-256 26ad6bd4cf580ca6cf184d213afd85fc0b4bf0dab06edd88f6ceb8cecbebf85d

See more details on using hashes here.

File details

Details for the file aweb-1.6.2-py3-none-any.whl.

File metadata

  • Download URL: aweb-1.6.2-py3-none-any.whl
  • Upload date:
  • Size: 237.0 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

Hashes for aweb-1.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2541a91a4b6793beab44864d29aa25f30e9b2da277779e7ddb0568771b0a4a5c
MD5 d0fcf9cc3bceada417fa49be802430e0
BLAKE2b-256 76e2b735fd369aa069b4fa1bef2f6615c43b5523992ee3708fb3a3a6b9be812c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page