Skip to main content

aweconfig: The dumb vault for shell keys

One 0600 env file. One source line. No more secrets in ~/.zshrc.

English · 简体中文

Version Python

Status pip install Platform GitHub stars

One 0600 env file. One source line. No more secrets in ~/.zshrc.

aweconfig keeps every API key your tools read from the environment in one file, ~/.config/awe/keys.env, and gives you a tiny editor for it. The file is a plain shell file any POSIX shell can source — the CLI is only a safe editor on top, never a runtime dependency. If the CLI disappears, your shell still loads the keys.

What it deliberately does not do: switch agent profiles (that is aweswitch), route model traffic (that is awerouter), or hold OAuth login tokens (those stay in each tool's own config). It is just the vault those tools read keys from — awerouter's ${VAR} provider references resolve straight from the environment this file feeds.

Install

pip install git+https://github.com/wehuman01/aweconfig.git

Quick Start

aweconfig init                    # create ~/.config/awe/keys.env (mode 0600)
aweconfig set DEEPSEEK_AUTH_TOKEN # prompts hidden; never touches shell history
aweconfig list                    # names only, no values
aweconfig show DEEPSEEK_AUTH_TOKEN

Then add one line to ~/.zshrc (init prints it for you):

[ -f "$HOME/.config/awe/keys.env" ] && source "$HOME/.config/awe/keys.env"

To move existing secrets out of ~/.zshrc in one go:

aweconfig import-zshrc --dry-run  # shows what would move and what would stay
aweconfig import-zshrc            # moves them, backs up ~/.zshrc first

The file

# aweconfig vault - plain shell env file; keep mode 0600 and never commit it.

## Anthropic
export GLM_ANTHROPIC_AUTH_TOKEN='...'

## Openai
export OPENAI_AUTH_TOKEN='...'
  • Path: ~/.config/awe/keys.env, overridable with $AWECONFIG_FILE.
  • Format: export NAME='value' lines plus free-form comments. Edit by hand if you like; aweconfig edit opens $EDITOR.
  • Every CLI write is atomic (temp file + rename) and re-asserts mode 0600.

Commands

aweconfig init                     # create the vault file (0600) if missing
aweconfig set NAME [--value V|--stdin]
aweconfig list                     # key names, one per line
aweconfig show NAME [--raw]
aweconfig rm NAME
aweconfig edit                     # open the vault in $EDITOR
aweconfig path                     # print the vault file path
aweconfig import-zshrc [--file RC] [--dry-run] [--yes] [--name NAME]

import-zshrc moves a paragraph only when every export in it looks like a secret (name contains TOKEN, KEY, or SECRET); mixed paragraphs stay put and --name forces one through. Names already in the vault are skipped, never overwritten.

Development

uv venv && uv pip install --python .venv/bin/python -e ".[dev]"
./verify   # pytest + ruff, same as CI

Download files

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

Source Distribution

aweconfig-0.1.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

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

aweconfig-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file aweconfig-0.1.0.tar.gz.

File metadata

  • Download URL: aweconfig-0.1.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.1

File hashes

Hashes for aweconfig-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3c68e22be6add66bab001813bc28ab3d0a46ed5fa3dd528989f316b63f593b51
MD5 28af14f48f7ac9854a717256a43d3c60
BLAKE2b-256 77687e5c635fd848ef61954d32f1d623ef327f81f6dae3d2bc1fae25ed115824

See more details on using hashes here.

File details

Details for the file aweconfig-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aweconfig-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.1

File hashes

Hashes for aweconfig-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea39c595100f76291815e418dee96fc6f71d4e6e95c12492ae492c3294cb8287
MD5 b61477ce5318146b87ce1a24cebd39bb
BLAKE2b-256 2f799568f8bf783fa8439d766554c34ad7f7acf598c2c178e4b59b9956ddf163

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page