kubectl wrapper with index-based resource selection
Project description
kx is a kubectl wrapper that adds index-based resource selection. Run kx get <resource> once, then reference any result by number instead of typing full resource names.
Install
pip install kx-cli
Usage
List resources
kx get <resource> [--match|-m <substring>] [kubectl flags...]
Fetches resources and assigns index numbers. Any extra flags (e.g. -n <namespace>, -A) are passed through to kubectl. Use --match/-m to filter results by name (substring, case-insensitive).
$ kx get pods
X NAME READY STATUS RESTARTS AGE
1 api-7d9f4b8c6-xkp2q 1/1 Running 0 2d
2 worker-6c8b5f7d9-mnt4r 1/1 Running 3 5h
3 postgres-0 1/1 Running 0 12d
All subsequent commands reference resources by their X index from the last kx get.
Commands
| Command | Description |
|---|---|
kx get <resource> [--match|-m <str>] [kubectl flags...] |
List resources with index numbers; optionally filter by name substring |
kx describe <index> [kubectl flags...] |
Show kubectl describe output for an indexed resource |
kx events <index> |
Show Kubernetes events for the resource |
kx labels <index> |
Show labels for an indexed resource |
kx logs <index> [kubectl flags...] |
Stream logs; aggregates across pods for Deployments, StatefulSets, DaemonSets, and Services |
kx yaml <index> |
Print the raw YAML manifest |
kx exec <index> [cmd] [kubectl flags...] |
Open an interactive shell in a pod (bash → sh fallback); pass a custom command with cmd |
kx edit <index> [kubectl flags...] |
Open the resource in your editor via kubectl edit |
kx delete <index> [-y] |
Delete the resource (prompts for confirmation; -y skips it) |
kx tree <index> [--index|-i] |
Show the ownership graph for a resource; --index assigns indexes to tree nodes |
kx port-forward <index> <port> [kubectl flags...] |
Forward a local port to a resource (supports Pod, Deployment, ReplicaSet, StatefulSet, DaemonSet, Service) |
kx state |
Show the current state (namespace and indexed resources from the last kx get) |
Example workflow
# list deployments, pick index 2
kx get deployments
kx describe 2
# check events on that deployment
kx events 2
# drill into a pod
kx get pods
kx logs 1
kx exec 1 # opens bash/sh
kx exec 1 -- env # run a specific command
# forward local port 8080 to port 80 on a service
kx get services
kx port-forward 2 8080:80
# clean up
kx delete 3
State
kx saves the last get result to ~/.kx_state.json. Index-based commands read from this file, so switching namespaces or resource types requires a new kx get.
Development
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Run the CLI directly:
python -m kx.main --help
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 kx_cli-0.0.4.tar.gz.
File metadata
- Download URL: kx_cli-0.0.4.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f9bd19987207e9b69fd939cb4795418bd04372a2f7d054d00a161a8ca4fb4c6
|
|
| MD5 |
5e48899160f0fe09dbb3f9ffa52ac3c6
|
|
| BLAKE2b-256 |
529ddc6b01c5532836b6b061765330e2f30b336afdab3b20aea962c811326ef6
|
File details
Details for the file kx_cli-0.0.4-py3-none-any.whl.
File metadata
- Download URL: kx_cli-0.0.4-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c73ae11b73cede0294034d1ed13de39a7298c23ec1e421653a1529696559cc1f
|
|
| MD5 |
f63394b613d861559a3466d2f9cffba2
|
|
| BLAKE2b-256 |
3b7ea4bab8bd400562d2304f9054cba2ad1b7e81e5e9b812e3a6434d6b23c516
|