惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
D
Docker
J
Java Code Geeks
腾讯CDC
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
M
MIT News - Artificial intelligence
L
LangChain Blog
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
博客园 - Franky
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News

Show HN

GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal).
GitHub - hq6/dk: kommand discovery - organize and documen...
hq6 · 2026-06-24 · via Show HN

dk ( "discover kommand" ) organizes command line tools, making it easier to discover them and view their documentation.

dk will look for executable scripts and binaries under directories named dkbin in the current working directory and its parents.

  • Scripts must minimally contain have a SUMMARY: line and a HELP: section after the shebang line. See dkbin/hello-world-script as an example of a script.
  • Binary executables must respond to --summary and --help with similar output. See dkbin-src/hello-world-bin.c as an example of a binary.
  • Both scripts and binaries should be robust to being invoked with --complete, minimally exiting with no output.

dk is useful for organizing simple cli tools, which can live in $HOME/dkbin. dk is useful for organizing cli tools for working with a particular repository , which can live in a dkbin directory at the root of the repository.

Installation

curl https://raw.githubusercontent.com/hq6/dk/refs/heads/master/bin/install-latest-release.sh | bash

Verification

To verify the installation worked correctly, run the following commands in a new terminal.

cd $HOME
mkdir dkbin
cat > dkbin/hello-world  <<EOF
#!/bin/bash
# SUMMARY: Say hello world
# HELP:
#
# USAGE
#    dk hello-world
echo "Hello dk!"
EOF
chmod u+x dkbin/hello-world
dk

If this output includes the following, then the dk was installed correctly.

USAGE
   dk <command> [<args>]

COMMANDS IN ~/dkbin
   hello-world  Say hello world

Run dk help <command> to print information on a specific command.

If dk is not found, please ensure that your PATH includes the install directory.


To verify tab completion, run the following and ensure that your terminal completes to dk hello-world.

If tab completion is failing, please ensure that on-screen instructions printed by the install script have been followed.

Usage

Put executable scripts and binaries in dkbin to make them discoverable by dk. Run dk to list available commands. Run dk help <command> to get help.

Appendix

What problem does dk solve?

  • When I first started writing utilty scripts and short programs for both personal and work purposes, I would lose track of where I put them or forget that they existed at all.
  • At some point, I tried to put all my scripts in a single directory. This prevented the loss of scripts but it was still easy to forget that they existed at all. Also, sometimes scripts are intended for use with a particular project and thus do not belong in a centralized place.
  • Additionally, getting at the documentation for scripts typically required reading the file, since the documentation for such short scripts is often in the form of a comment.
  • With dk, I put all my general purpose scripts in $HOME/dkbin, and put all my project-specific scripts in a dkbin directory at the project root. When I need to determine whether I already have a script that does X, I type dk to determine which scripts exist and what they are intended to do. I type dk help <command> to automatically extract the comment.

Gotchas

dk makes 3 assumptions about the scripts within its domain, and if these assumptions are incorrect, undesirable behavior may occur:

  • When invoked without arguments, dk will invoke any executable script inside a dkbin directory with --summary iff there is no SUMMARY: line.
  • When invoking dk help <command>, dk will invoke command with --help iff there is no HELP: line.
  • When invoking dk <command> <TAB>, dk will invoke command with --complete.

If the script lacks the magic comments AND is not expecting to be called with --summary, --help or --complete, it may exhibit surprising behavior. For example, if the first argument is treated as a filename for writing output, this may cause the creation of a file named --summary.

Uninstall

curl https://raw.githubusercontent.com/hq6/dk/refs/heads/master/bin/uninstall.sh | bash

Acknowledgements

dk is inspired by the internal tool sq built at Block and based on the same exoskeleton library, although it was implemented without reference to that tool's source code.