Movitera CLI: inject vault secrets as environment variables, generate TOTP codes
Project description
movitera CLI
Inject Movitera vault secrets as environment variables, render dotenv files, and generate TOTP codes from the terminal. Authenticates with a Movitera vault personal access token (PAT).
Install
pip install movitera-cli
# or install as an isolated CLI tool (recommended):
pipx install movitera-cli
# or with uv:
uv tool install movitera-cli
# or run without installing:
uvx --from movitera-cli movitera --help
Quick start
# 1. Mint a PAT in the web app (Settings → Vault → Access Tokens),
# then paste it once:
movitera login
# 2. Run any command with secrets injected as env vars:
movitera run --team <teamId> --credential myapp-prod -- npm start
# 3. Or dump as dotenv:
movitera secrets pull --team <teamId> --credential myapp-prod > .env
# 4. Or generate a TOTP code for a credential:
movitera totp --team <teamId> <credential-id>
How it works
movitera run -- cmd fetches the dotenv body from
GET /vault/credentials/by-name/{name}/env, then execs the child process
with those vars merged into its environment. The CLI never writes secrets
to disk — they exist only in the child process's environ.
Tokens are stored in the OS keyring (Keychain on macOS, libsecret on Linux,
Credential Manager on Windows) with a file fallback under
~/.config/movitera/token (mode 0o600) if no keyring backend is
available.
Config
| Env var | Purpose | Default |
|---|---|---|
MOVITERA_API_URL |
API base URL | https://api.movitera.com |
MOVITERA_TOKEN |
PAT override (skips keyring lookup) | — |
MOVITERA_TEAM |
Default team id (you can omit --team) |
— |
Commands
movitera login
Prompts for a PAT (or reads it from stdin via --stdin) and stores it.
movitera logout
Removes the stored PAT.
movitera run --team T --credential N -- <cmd> [args...]
Fetches the ENV_BUNDLE credential named N and execs <cmd> with those
vars in the environment.
movitera secrets pull --team T --credential N
Writes the dotenv body to stdout. Exits non-zero on resolution failures so
you can chain movitera secrets pull ... > .env.
movitera totp --team T <credential-id>
Prints the current TOTP code for the credential's OTPAUTH_URI field.
movitera tokens list --team T / movitera tokens revoke <id>
Manage your own PATs from the CLI.
Security model
- PATs have full 256-bit entropy and are stored as SHA-256 on the server, so a server compromise cannot recover the plaintext.
- Every
movitera runinvocation is audited server-side, but PAT reads are coalesced per hour per token (see the backend'sFETCHED_VIA_TOKENaggregation) so a hot dev loop doesn't drown the log. - Group/team access is re-checked on every request: if your vault scope is revoked, your PAT immediately loses access — no token-cache divergence.
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
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 movitera_cli-0.1.0.tar.gz.
File metadata
- Download URL: movitera_cli-0.1.0.tar.gz
- Upload date:
- Size: 38.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 |
6a10448cd2a1ae8fb3bd23b5b9e5daac657d12f92cec2b8a3f17a111250fba3f
|
|
| MD5 |
4d33e0be474e5853032e39544a4fb935
|
|
| BLAKE2b-256 |
55a03e35552d690b6a0d9cced2096dbbd0a3e877dadbba895f25a5fec90cab36
|
Provenance
The following attestation bundles were made for movitera_cli-0.1.0.tar.gz:
Publisher:
publish.yml on joaoheusi/movitera-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
movitera_cli-0.1.0.tar.gz -
Subject digest:
6a10448cd2a1ae8fb3bd23b5b9e5daac657d12f92cec2b8a3f17a111250fba3f - Sigstore transparency entry: 1615263672
- Sigstore integration time:
-
Permalink:
joaoheusi/movitera-cli@6e2f5c23955cfaa17bcd1d25eb54fb60f498e13e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/joaoheusi
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6e2f5c23955cfaa17bcd1d25eb54fb60f498e13e -
Trigger Event:
push
-
Statement type:
File details
Details for the file movitera_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: movitera_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.0 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 |
e60396ac6ce838306693ddfef3bdce6bc9e87b741a21b47695f3684cf8661bc6
|
|
| MD5 |
79bb219f8aa8e088412db2dd3a37001b
|
|
| BLAKE2b-256 |
1a1a63ae951f1dbe16859cd90a9072a8ecce085373f89c4c28c92bd25b48dd47
|
Provenance
The following attestation bundles were made for movitera_cli-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on joaoheusi/movitera-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
movitera_cli-0.1.0-py3-none-any.whl -
Subject digest:
e60396ac6ce838306693ddfef3bdce6bc9e87b741a21b47695f3684cf8661bc6 - Sigstore transparency entry: 1615263689
- Sigstore integration time:
-
Permalink:
joaoheusi/movitera-cli@6e2f5c23955cfaa17bcd1d25eb54fb60f498e13e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/joaoheusi
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6e2f5c23955cfaa17bcd1d25eb54fb60f498e13e -
Trigger Event:
push
-
Statement type: