Pupa A2UI agent backend
Project description
pupa-backend
FastAPI / LangGraph backend that powers the Pupa
iOS / macOS client. Speaks plain AG-UI
over a single POST / SSE stream; pair-once auth keeps a long-lived token in
each device's Keychain. Runs locally next to the client, or in the cloud
(Railway + Postgres).
Install
Install from PyPI with uv (isolated tool venv, puts
the pupa-backend CLI on your PATH):
uv tool install "pupa-backend[setup]" # latest
uv tool install "pupa-backend[setup]==0.0.72" # pin to match your app
Quick start
pupa-backend run # start the backend on :8004
pupa-backend pair # mint a QR pairing code for your iPhone
pupa-backend status # is it running?
pupa-backend service-install # run as launchd / systemd background service
LLM credentials (AWS Bedrock, Anthropic, or any OpenAI-compatible endpoint) live
in your shell environment, never in the config file. Configuration is written by
pupa-backend setup to ~/.pupa-backend/config.yml.
Auth model
The backend requires auth by default — the only client credential is a
paired-device token in the iOS Keychain. Set PUPA_API_KEY server-side, run
pupa-backend pair for an 8-char code, and pair from the app. For a same-laptop
dev loop only, PUPA_AUTH_DISABLED=1 skips auth entirely (never on a reachable
backend).
Documentation
Full docs, architecture, deploy runbook, and contributing guide live in the GitHub repository:
License
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 pupa_backend-0.0.72.tar.gz.
File metadata
- Download URL: pupa_backend-0.0.72.tar.gz
- Upload date:
- Size: 443.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c8d70703ddcc599f9775f06f392e0f5bb491a8f4fd32d73ecdfcb8b30b366c3
|
|
| MD5 |
ce18f70d1f3fbe755124321a28d34553
|
|
| BLAKE2b-256 |
80089d00f5a3c8078d0afce3af7fdf5d0a3f4bda3c7d6b31123206532bca4a3f
|
Provenance
The following attestation bundles were made for pupa_backend-0.0.72.tar.gz:
Publisher:
publish.yml on pupa-app/pupa-backend
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pupa_backend-0.0.72.tar.gz -
Subject digest:
4c8d70703ddcc599f9775f06f392e0f5bb491a8f4fd32d73ecdfcb8b30b366c3 - Sigstore transparency entry: 2189569553
- Sigstore integration time:
-
Permalink:
pupa-app/pupa-backend@fe5f5361c153832fab814ec63ec2ebce1b2e583c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pupa-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fe5f5361c153832fab814ec63ec2ebce1b2e583c -
Trigger Event:
push
-
Statement type:
File details
Details for the file pupa_backend-0.0.72-py3-none-any.whl.
File metadata
- Download URL: pupa_backend-0.0.72-py3-none-any.whl
- Upload date:
- Size: 171.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d9aeda193e1619dd326adf240a0afabdeb7d1b2c6360c26f2df291a4d4773e7
|
|
| MD5 |
d4c08f92bcd49f02089a361f22d56781
|
|
| BLAKE2b-256 |
23b2b2f85f34bd6b7fbba3a16279c7585f2ba80c4a51f2b113b0401de513a3a6
|
Provenance
The following attestation bundles were made for pupa_backend-0.0.72-py3-none-any.whl:
Publisher:
publish.yml on pupa-app/pupa-backend
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pupa_backend-0.0.72-py3-none-any.whl -
Subject digest:
4d9aeda193e1619dd326adf240a0afabdeb7d1b2c6360c26f2df291a4d4773e7 - Sigstore transparency entry: 2189569560
- Sigstore integration time:
-
Permalink:
pupa-app/pupa-backend@fe5f5361c153832fab814ec63ec2ebce1b2e583c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pupa-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fe5f5361c153832fab814ec63ec2ebce1b2e583c -
Trigger Event:
push
-
Statement type: