Skip to main content

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)

  1. The PyPI package is called dktcli (set in pyproject.toml); the command you type is still dkt.
  2. 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.
  3. Bump __version__ in src/devkittools/__init__.py for 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)

Source distribution for dktcli 1.0.0
File Size Uploaded Provenance
dktcli-1.0.0.tar.gz 73.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dktcli 1.0.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page