inf-hub
inf-hub (ih) is a small, practical “git for envs” built on top of Infisical.
It helps you manage environment variables as a versioned operational workflow (pull, push, history, rollback) while keeping project context in each folder.
Infisical can be self-hosted, including free/self-managed setups:
- https://infisical.com/
- https://github.com/Infisical/infisical
- https://infisical.com/docs/self-hosting/overview
What it does
- Git-style CLI for env workflows:
pull,push,history,rollback - Folder-local context via
.inf(tokenId,projectId,environment) - Multi-token model: one credential per
tokenIdin keyring (tokenId:{tokenId}) - Saved token list for validation and interactive selection
- Interactive menus (questionary) backed by live API data
- Clear one-line success messages with target env/file info
Install
pipx install inf-hub
# or
pip install inf-hub
Main commands:
ihih-dc
Interactive-first workflow
All core commands are designed to run comfortably in interactive mode:
- guided prompts and selection menus (questionary)
- API-backed choices for project/environment
- Token selection from saved list (populated via
ih register token)
Minimal first-run
1) Set API URL
export INFISICAL_API_URL="https://your-infisical-host"
2) Register token
ih register token
By default, ih register token:
- Extracts org-id from JWT
- Requires a unique
tokenIdname - Stores secret in keyring as
tokenId:{tokenId}
3) Initialize current folder
ih init folder
This creates .inf in current directory. Commands then use local context unless overridden by flags.
Quick usage
# Pull remote env to local file (.env by default)
ih pull
# Print env to stdout (no file write)
ih pull -p
# Push local .env (default)
ih push
# Push custom file
ih push -f .env.prod
# Update local .env keys only (no remote changes)
ih update -k API_URL -v https://... -k DEBUG -v false
# Interactive local update (key list from remote + local file)
ih update
# Secret history
ih history --name API_KEY
# Rollback and sync local file (.env default, or custom with -f)
ih rollback --name API_KEY --version 2 -f .env.rollback
Command map
ih register tokenih unregister tokenih init folderih create projectih list orgs|projects|identitiesih set TYPE --value VALUEih unset TYPEih pull [-f path | -p]ih push [-f path]ih update [-f path | (-k KEY -v VALUE)...]ih history --name NAMEih rollback --name NAME --version N [-f path]
Notes
ih set/unsetalways target local.infcontext.- If a command targets an unknown tokenId, it fails and asks you to run
ih register token. ih pushalways pushes a full env file (.envby default).ih updateonly updates local files and never writes to remote.
Architecture
- Technical architecture and contributor guide: docs/ARCHITECTURE.md
Metadata
Release files for inf-hub 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| inf_hub-0.2.5.tar.gz | 17.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| inf_hub-0.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / inf_hub-0.2.5.tar.gz
| Download URL | inf_hub-0.2.5.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eae713795fe7fa4683aa5eb7e95248c9cf4c55a7e3fe71f5d6c64541893ab44c
|
|
BLAKE2b-256 checksum How to use checksums |
c8df3fc7afb6f0802315e4089a524002383ab1e3d59696b4a8c17002a175ce47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / inf_hub-0.2.5-py3-none-any.whl
| Download URL | inf_hub-0.2.5-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
25b8b939233d0f21606de417013d1f6c4288b4ed5ab8422067e34263ccacf16b
|
|
BLAKE2b-256 checksum How to use checksums |
08f6bb9cff9ca2000feb4315c79dda12353f5263069ec636a114393104ae8f08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|