Python bindings for murk — encrypted secrets manager
Project description
murk-secrets
Python bindings for murk — an encrypted secrets manager for developers.
murk stores encrypted secrets in a single .murk file safe to commit to git. This package lets Python apps read those secrets at runtime.
Prerequisites
You need the murk CLI to create and manage vaults. This package only reads them.
# Install the CLI first
brew tap iicky/murk && brew install murk
# Initialize a vault and add secrets
murk init
murk add DATABASE_URL
murk add API_KEY
Then add the Python package to your project:
pip install murk-secrets
Quick start
# Load your key (created by murk init)
source .env
import murk
# Load the vault (reads MURK_KEY from environment)
vault = murk.load()
# Get a single secret
db_url = vault.get("DATABASE_URL")
# Get all secrets as a dict
secrets = vault.export()
# Dict-style access
api_key = vault["API_KEY"]
API
murk.load(vault_path=".murk") -> Vault
Load and decrypt a murk vault. Reads MURK_KEY or MURK_KEY_FILE from the environment.
murk.get(key, vault_path=".murk") -> str | None
One-liner: load the vault and get a single value.
murk.export_all(vault_path=".murk") -> dict[str, str]
One-liner: load the vault and export all secrets as a dict.
murk.has_key() -> bool
Check if a MURK_KEY is available in the environment.
Vault
| Method | Returns | Description |
|---|---|---|
vault.get(key) |
str | None |
Get a single decrypted value |
vault.export() |
dict[str, str] |
All secrets as a dict |
vault.keys() |
list[str] |
List of key names |
vault[key] |
str |
Dict-style access (raises on missing key) |
key in vault |
bool |
Check if a key exists |
len(vault) |
int |
Number of secrets |
Scoped (per-user) overrides are applied automatically — if you have a scoped value for a key, it takes priority over the shared value.
Environment
Set one of:
MURK_KEY— your age secret key directlyMURK_KEY_FILE— path to your key file (created bymurk init)
The easiest setup is source .env in your project directory after running murk init.
Requirements
- Python >= 3.9
- murk CLI installed (to create and manage vaults)
- A
.murkvault file in your project (created withmurk init) MURK_KEYorMURK_KEY_FILEin the environment (created bymurk init, loaded viasource .env)
License
MIT OR Apache-2.0
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 Distributions
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 murk_secrets-0.6.2.tar.gz.
File metadata
- Download URL: murk_secrets-0.6.2.tar.gz
- Upload date:
- Size: 5.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fd91ce79457c7305eb767f8721fcb029adfaa66e155762395217df900f4fe1b
|
|
| MD5 |
d77bbe00469613e234fa5baa2a87cc6e
|
|
| BLAKE2b-256 |
4e1b562cd9ad968b8eff7cd28b1da4727c705e5fc1ea63889c639d3a846ddf70
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2.tar.gz:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2.tar.gz -
Subject digest:
7fd91ce79457c7305eb767f8721fcb029adfaa66e155762395217df900f4fe1b - Sigstore transparency entry: 1435965617
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file murk_secrets-0.6.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: murk_secrets-0.6.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3e0fa51fa75c613e81b94c4c3eab5bb24dd1c45ebc3a60e5adbce3fecf5daaa
|
|
| MD5 |
4847821d3e4f5013664407cfb55a767e
|
|
| BLAKE2b-256 |
c2e8573676242e5356a365efc5a2acbb465add62b6905393970f49f02f1ef7f5
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2-cp312-cp312-win_amd64.whl:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2-cp312-cp312-win_amd64.whl -
Subject digest:
d3e0fa51fa75c613e81b94c4c3eab5bb24dd1c45ebc3a60e5adbce3fecf5daaa - Sigstore transparency entry: 1435965619
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file murk_secrets-0.6.2-cp312-cp312-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: murk_secrets-0.6.2-cp312-cp312-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01671b6e208a16f240d9238d63d84711897255968348983cca948b232b65cecb
|
|
| MD5 |
1810e7060b4dd9cb6d805986468c7052
|
|
| BLAKE2b-256 |
6376caae746d29ba01ca34da4714f34450b9f87a370e0afb9ce20810d1515ded
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2-cp312-cp312-manylinux_2_28_aarch64.whl:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2-cp312-cp312-manylinux_2_28_aarch64.whl -
Subject digest:
01671b6e208a16f240d9238d63d84711897255968348983cca948b232b65cecb - Sigstore transparency entry: 1435965626
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file murk_secrets-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: murk_secrets-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5458d939eec89ca58f5e802e5714dc63df9921b82cc72334a6fb1da5140f02e
|
|
| MD5 |
85f029d726bfedca4cf8958d13d6180e
|
|
| BLAKE2b-256 |
7616e93f1f07741dd9765a02bc5f26e149f16014792e457513b4ecfee9a25b0f
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
f5458d939eec89ca58f5e802e5714dc63df9921b82cc72334a6fb1da5140f02e - Sigstore transparency entry: 1435965623
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file murk_secrets-0.6.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: murk_secrets-0.6.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 948.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b5e37f88a0113240e3885c2e4250d65880fb683dd601aeef7002168a9b68c72
|
|
| MD5 |
017af3379ab6788bc9fe5c48469a0026
|
|
| BLAKE2b-256 |
123d8ca2a12a183f63aa6ea8a5bd6c5c8637fbb61ddb2da2313174e3046046fa
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
0b5e37f88a0113240e3885c2e4250d65880fb683dd601aeef7002168a9b68c72 - Sigstore transparency entry: 1435965637
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file murk_secrets-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: murk_secrets-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28ca41a66ec76d2764c8a124938f373d712a3fc2e1c017d0ed0865061aca950e
|
|
| MD5 |
37724628c6c51922e0516cf4a6af16e9
|
|
| BLAKE2b-256 |
4ed15f8297d09bf30c7081762bf1af2700caed1cbf73978dc04327ea5e736461
|
Provenance
The following attestation bundles were made for murk_secrets-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl:
Publisher:
python.yaml on iicky/murk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
murk_secrets-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl -
Subject digest:
28ca41a66ec76d2764c8a124938f373d712a3fc2e1c017d0ed0865061aca950e - Sigstore transparency entry: 1435965639
- Sigstore integration time:
-
Permalink:
iicky/murk@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/iicky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yaml@6482b122b0ed732a3f09bb86625f3ac69033ff24 -
Trigger Event:
push
-
Statement type: