Current collected state Current
Observed since 20 Oct, 15:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python wrapper around the 1Password CLI with Pydantic Settings integration
Python wrapper for 1Password CLI with Pydantic Settings integration. Automatically injects secrets from op:// references while preserving types.
op:// reference detectionpy.typed markerpip install 1password-cli
Prerequisites: 1Password CLI installed and authenticated (op signin)
String injection:
from scottzach1.onepassword_cli import inject_string_1password
password = inject_string_1password("op://vault/database/password")
Dictionary injection:
from scottzach1.onepassword_cli import inject_dictionary_1password
config = {
"database_url": "op://vault/database/url",
"api_key": "op://vault/api/key",
"port": 5432, # Non-secret values preserved
}
injected = inject_dictionary_1password(config)
Pydantic Settings:
from scottzach1.onepassword_cli import OnePasswordSettings
class AppSettings(OnePasswordSettings):
database_url: str = "op://vault/database/url"
api_key: str = "op://vault/api/key"
port: int = 8080
settings = AppSettings() # Secrets injected automatically
inject_string_1password(value, check_cli=True) - Inject secrets into a stringinject_dictionary_1password(data, check_cli=True, in_place=False) - Inject secrets into a dictionaryOnePasswordSettings - Pydantic Settings base class with automatic injectionSee docstrings for parameters and exceptions.
# Setup
uv sync --dev && uv run pre-commit install
# Test
uv run pytest tests/ -v -m "not integration"
uv run coverage run -m pytest tests/ -m "not integration"
# Lint/Format
uv run ruff check src/ tests/ --fix
uv run ruff format src/ tests/
MIT License - see LICENSE file.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.0.1 | 23 Jan 2026 | 2 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 15:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e485bcbe080b144ac8a54c17c2cd1c645f06caffbf9659b4ad4dcd33d8f0414d