Skip to main content

A portable local authentication library for AI agents and developer tools

Project description

authsome

PyPI version Python 3.13+ License: MIT PyPI downloads Tests codecov

              __  __
  ____ ___  _/ /_/ /_  _________  ____ ___  ___
 / __ `/ / / / __/ __ \/ ___/ __ \/ __ `__ \/ _ \
/ /_/ / /_/ / /_/ / / (__  ) /_/ / / / / / /  __/
\__,_/\__,_/\__/_/ /_/____/\____/_/ /_/ /_/\___/

Local auth for AI agents.

Log in once via OAuth2/API Key. Authsome keeps the credentials fresh for every AI agent.


Why Agents Are Different

Agents need API access that survives outside an interactive app:

  • agents run without interactive sessions
  • tokens expire, rotate, and need refresh
  • tool access must work in scripts, cron, CI, SSH, background workers, and parallel pipelines

Hardcoded env tokens leak or go stale. DIY auth means rebuilding flow logic, token storage, refresh handling, expiry checks, and per-provider config for every project.

Authsome is the local credential layer agents can call at runtime.

  • No credential sprawl. One encrypted store — every provider, every agent, one place.
  • No SaaS, no privacy trade-off. Credentials never leave your machine. No third-party cloud dependency.
  • No browser required at runtime. Setup can use browser PKCE, device code, or a browser bridge for secure API key entry. After that, agents run headlessly in CI, SSH, cron, workers, or parallel pipelines.

How It Works

The CLI is the agent's interface: setup once, then inject fresh credentials whenever a tool runs.

┌──────────┐        authsome         ┌──────────────┐
│  Agent   │ ──────────────────────▶ │ Local Vault  │
└──────────┘                         └──────┬───────┘
     ▲                                      │
     │       fresh token / API key          │ encrypted
     └──────────────────────────────────────┘

Authenticate once:

authsome login github

Then agents get valid credentials on demand:

authsome get github --field access_token --show-secret
# → ghu_...

authsome export github --format shell
# → export GITHUB_TOKEN=ghu_...

authsome run -- python my_agent.py
# runs behind a local auth proxy that injects headers at request time
# without exposing secrets in the child process environment.
# matched automatically via provider host_url (e.g. api.openai.com)

Credentials are stored locally, encrypted at rest, and refreshed before expiry. No server. No account. No cloud.


Why Authsome

authsome Hardcoded env tokens DIY
Automatic token refresh build it
OAuth2 + API keys build it
Runtime headless use varies
Local — no SaaS dependency
Built-in providers, zero config
Multi-account per provider build it

Authsome gives agents one command for a valid token, without scattering long-lived secrets across every project.


Quick Start

pip install authsome
authsome init
authsome login github                  # opens browser, completes PKCE flow
authsome login github --flow device_code  # headless: Device Code, works over SSH and CI
authsome login openai                  # secure API key entry via browser bridge
authsome list                          # all connections + token status

Docs

Specs

License

MIT — see 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

authsome-0.2.0rc8.tar.gz (168.2 kB view details)

Uploaded Source

Built Distribution

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

authsome-0.2.0rc8-py3-none-any.whl (64.7 kB view details)

Uploaded Python 3

File details

Details for the file authsome-0.2.0rc8.tar.gz.

File metadata

  • Download URL: authsome-0.2.0rc8.tar.gz
  • Upload date:
  • Size: 168.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 authsome-0.2.0rc8.tar.gz
Algorithm Hash digest
SHA256 5e477a6a187b941d3e1b471897c43f4861c5d6dd6c17632391d24149c5b9f431
MD5 601c2243e73f16cec0bc2ac84be35320
BLAKE2b-256 d466f7466a88a2a29cd6104d4c1dd7199d11a0039ac6b9c168448d2ac296d12e

See more details on using hashes here.

File details

Details for the file authsome-0.2.0rc8-py3-none-any.whl.

File metadata

  • Download URL: authsome-0.2.0rc8-py3-none-any.whl
  • Upload date:
  • Size: 64.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 authsome-0.2.0rc8-py3-none-any.whl
Algorithm Hash digest
SHA256 02883fc3adb7e17d36f28aa18f92d39247f602287da99d85a092ff47230df5e9
MD5 6744127eb85c9a78b730803e054685f3
BLAKE2b-256 d3aa0a53d591d72b7491d5e907b028c261fd3bd7e3806e9a0ff5b53841ae35f1

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