Skip to main content

A TUI application for managing etcd key-value stores (v2 and v3)

Project description

tetcd

PyPI version Python versions License CI

A keyboard-driven terminal UI for browsing and managing etcd key-value stores. Supports both the etcd v2 HTTP API and the etcd v3 gRPC-gateway API, and feels like a file manager for your etcd namespace.

Features

  • Browse the etcd key space as a hierarchical tree (using / as a separator)
  • View values in a side panel
  • Add, edit, and delete keys
  • Add and recursively delete directories
  • Lazy loading: children are fetched only when a node is expanded
  • Layered configuration via CLI flags, environment variables, or a config file
  • Confirmation prompts before destructive operations
  • Works with both etcd v2 and v3

Installation

Install from PyPI with your tool of choice:

# pipx (recommended for CLI tools)
pipx install tetcd

# uv
uv tool install tetcd

# pip
pip install tetcd

Requires Python 3.12 or newer.

Usage

# Launch the TUI (defaults: v3, localhost:2379)
tetcd

# Connect to a specific etcd
tetcd --host my-etcd.internal --port 2379 --api v3

# Use the v2 API
tetcd --api v2

# Show version
tetcd --version

Keybindings

Key Action
a Add key
d Add directory
D Delete
e Edit value
r Refresh tree
q Quit

Configuration

Configuration is layered (highest priority first):

  1. CLI flags--host, --port, --api
  2. Environment variables — prefix TETCD_, e.g. TETCD_ETCD_HOST=my-etcd
  3. settings.toml — committed defaults
  4. .secrets.toml — local overrides and credentials (gitignored)

Default settings.toml:

[default]
etcd_version = "v3"
etcd_host    = "localhost"
etcd_port    = 2379
log_level    = "INFO"

Development

The project uses uv for dependency management, Ruff for linting and formatting, ty for type checking, and pytest for tests.

# Install dependencies
uv sync

# Run the TUI from source
uv run tetcd

# Run tests
uv run pytest

# Lint and format
uv run ruff check src tests
uv run ruff format src tests

# Type check
uv run ty check

Dev container

Open the project in VS Code and choose "Reopen in Container". The container starts an etcd 3.5 service on port 2379 and pre-sets TETCD_ETCD_HOST=etcd, so uv run tetcd connects out of the box.

License

Licensed under the Apache License 2.0.

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

tetcd-0.1.0.tar.gz (174.1 kB view details)

Uploaded Source

Built Distribution

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

tetcd-0.1.0-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tetcd-0.1.0.tar.gz
  • Upload date:
  • Size: 174.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tetcd-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9ada4f794ee87ee4d1e3788e7e6d5408ca3b95923f9452e9afabe4807718ad36
MD5 c54f6087d301a679a08d381e421e86a0
BLAKE2b-256 bcc74eec381427534d44fb22a750af2226893ad7a10f54c93e1689f6a3825e36

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetcd-0.1.0.tar.gz:

Publisher: publish.yml on ffaraone/tetcd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: tetcd-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tetcd-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3af0126035921d8328138a44718f40310622cf8d69b25cd3f066beb68a670ffe
MD5 dacb775a344c3fadd352d390b154bd21
BLAKE2b-256 e0762ddee00fd9abdf14339ef934d70283c141c522ce05d8ef45e1a21a460910

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetcd-0.1.0-py3-none-any.whl:

Publisher: publish.yml on ffaraone/tetcd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page