dkt - the developer's swiss army knife
35+ small, sharp CLI tools under one command: dkt.
Pure Python, zero dependencies, Windows / macOS / Linux. Colored output, spinners, aligned tables,
typo suggestions ("did you mean..."), tab-completion, and an interactive menu.
____ _ _______
| _ \| |/ /_ _| devkittools
| | | | ' / | | the developer's swiss army knife
| |_| | . \ | |
|____/|_|\_\ |_|
Install
pip install dktcli
dkt # see every tool
No PyPI? From this folder: pip install . - or on Windows just double-click install.bat
(it also fixes your PATH). If dkt isn't found, python -m devkittools always works.
Update: dkt update (PyPI installs) or double-click update.bat (does git pull if this is a clone).
Uninstall: uninstall.bat or pip uninstall dktcli.
The tools
Run dkt for the list, dkt <tool> -h for examples of any tool, or dkt menu for an interactive launcher.
Servers & Network
| Command | Alias | What it does |
|---|---|---|
dkt portkiller |
pk |
what's using port 3000? kill it |
dkt serve |
sv |
static server with CORS, SPA mode, LAN URL, --open |
dkt http |
req |
HTTP requests with pretty JSON, timing, headers, downloads |
dkt net |
ip (local/public), dns, check host:port |
Project & Code
| Command | Alias | What it does |
|---|---|---|
dkt repostats |
rs |
lines per language, biggest files, git activity, health check |
dkt tree |
tr |
pretty tree, respects .gitignore, --sizes, --copy |
dkt find |
fd |
project-wide search (regex, context lines) + find files + safe find & replace |
dkt todo |
td |
every TODO / FIXME / HACK with file:line |
dkt secrets |
sec |
scan for leaked API keys / tokens / private keys (CI-friendly exit code) |
dkt clean |
cl |
delete node_modules, __pycache__, caches with sizes + confirmation |
dkt du |
what's eating my disk, with bars | |
dkt watch |
w |
re-run any command when files change |
dkt bench |
bn |
benchmark / compare commands |
dkt env |
env vars (secrets masked), PATH doctor, .env vs .env.example |
|
dkt ignore |
gi |
.gitignore generator (python, node, unity, minecraft, godot...) |
dkt license |
lic |
LICENSE file (MIT, ISC, BSD, Unlicense) |
dkt init |
new |
scaffold python / node / web projects with git + license |
Git
| Command | What it does |
|---|---|
dkt gx log |
compact colored graph |
dkt gx branches [--prune] |
branch overview, delete merged branches |
dkt gx undo / wip / amend / sync / who |
everyday shortcuts |
dkt changeloggen (clg) |
CHANGELOG.md from conventional commits |
AI helpers
| Command | What it does |
|---|---|
dkt projectcontextpacker (pcp) |
pack a project into one AI-prompt file, with token counts |
dkt commitwriter (cw) |
commit messages from your diff using local Ollama |
Generate & Convert
| Command | Alias | What it does |
|---|---|---|
dkt gen |
g |
uuid (v4/v7), ulid, password, token, id, lorem, slug |
dkt enc |
e |
base64 / url / hex / html encode & decode |
dkt jwt |
decode a JWT, shows expiry | |
dkt hash |
h |
md5/sha*/blake2, files, --verify, --hmac |
dkt time |
tm |
epoch <-> date, date math, differences |
dkt color |
col |
hex/rgb/hsl, live swatches, contrast ratio, palettes |
Data & Text
| Command | Alias | What it does |
|---|---|---|
dkt json |
js |
fmt, min, get a.b[0], keys, flat, csv, validate (forgives comments / trailing commas) |
dkt regex |
rx |
highlighted matches, named groups, --replace |
dkt cron |
explain a cron expression + next runs | |
dkt snip |
personal snippet notebook (add / get --copy / ls / rm) |
System & dkt itself
dkt doctor (system info + which dev tools you have), dkt update, dkt config, dkt completion, dkt menu, dkt about.
Handy patterns
dkt js fmt --paste --copy # clean up JSON from your clipboard
cat resp.json | dkt js get data.items[0].id
dkt sv --open --spa # serve the folder, SPA fallback, open browser
dkt w -c "pytest -q" --clear # tests on every save
dkt sec --json || echo "secrets found" # CI gate
dkt tr --copy # paste a project tree into docs / AI chats
dkt new python mytool # new project, ready to go
Tab completion
dkt completion powershell | Out-String | Add-Content $PROFILE # PowerShell
eval "$(dkt completion bash)" # add to ~/.bashrc (zsh: dkt completion zsh)
Settings
dkt config set author "Your Name" (used by license / init), dkt config set model qwen2.5-coder:7b (commit writer).
Env vars DKT_<KEY> override the file. NO_COLOR=1 disables colors, DKT_ASCII=1 disables unicode symbols.
Publishing to PyPI (maintainers)
- The PyPI package is called
dktcli(set inpyproject.toml); the command you type is stilldkt. - Run
publish.bat(builds, checks, uploads with your API token) - or use the included GitHub Action (.github/workflows/publish.yml, trusted publishing) and just create a Release. - Bump
__version__insrc/devkittools/__init__.pyfor every release.
Development
pip install -e .
python -m unittest discover -s tests
Adding a tool = one file in src/devkittools/tools/ with a META tuple and a register() function, then add it to MODULES in cli.py.
License
MIT
Metadata
Release files for dktcli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dktcli-1.0.0.tar.gz | 73.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dktcli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.3 kB
Release files / dktcli-1.0.0.tar.gz
| Download URL | dktcli-1.0.0.tar.gz |
|---|---|
| Size | 73.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
00703ea9e1e29a8389c9bce0e300227c2b785ba0134e403f34ddce4d97423b7d
|
|
BLAKE2b-256 checksum How to use checksums |
c3d438d1b57e260d8d6a39a07643183c76e54960abefc282dc91b4d6a1e942a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Release files / dktcli-1.0.0-py3-none-any.whl
| Download URL | dktcli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 87.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5cc484f6cf8310b0d34168cd5c336330c8d9b1c9e8604967d9408dbce15ff0bf
|
|
BLAKE2b-256 checksum How to use checksums |
504ef1e90575d2b43fb2f6b7c73709967bd36ce56b538930e521fb6431f6e398
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Security for dktcli 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.