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.5.3.tar.gz (272.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.5.3-py3-none-any.whl (235.4 kB view details)

Uploaded Python 3

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

Hashes for aweb-1.5.3.tar.gz
Algorithm Hash digest
SHA256 18d910fb78e149e5a9e9be3055a284c5757999886f5a17baa5f2749df1160fac
MD5 fbd39f91506b90a8f825f78075f6ca59
BLAKE2b-256 8a6efae7c5f88c43e68ea3b3f64b7a5b00a7792ba3e0d15d899635c7167dd5e5

See more details on using hashes here.

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

Hashes for aweb-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 48e54cf4846617f688c8f9c14af6f29538f6668247c4b02b352cba33105b014c
MD5 99554d30f3637ad08e16f29671338640
BLAKE2b-256 ccedf3b02d65434b11bd18e5c0a1f16219e06ee943e504ac7ac18b9a88af701c

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