Shdoc – javadoc for shell scripts (2019)
Javadoc for shell scripts when bashdoc and docbash already exist.
Annotation-driven bash CLI framework — flags, help, and tab completion for free
45 annotation lines replace 130 lines of getopts—no dependencies, bash 3.2+ compatible.
Bash developers, DevOps engineers, sysadmins writing CLI tools
Click (Python) · Cobra · shFlags
The initial idea came from 9 years ago: https://gist.github.com/bruno-de-queiroz/a1c9e5b24b6118e45f4..., and it's pretty simple: annotate your functions and oosh gives you flag parsing, help generation, tab completion, and type validation for free. A scaffolder generates a full CLI project in seconds.
```bash #@flag -e|--env ENV "staging" enum(dev,staging,prod) ~ target environment
#@public ~ deploy the app function deploy() { echo "Deploying to $ENV..." } ```
That's it. No subshells, no external dependencies, no compilation step. Just bash 3.2+ (works on stock macOS).
A few things that might interest this crowd:
- *530* lines for the whole framework `oo.sh` - *~45 annotations replace ~130 lines* of manual case statements, getopts, help text, and completion scripts - *6-17ms overhead* on macOS, 6-9ms on Linux — measured with a built-in profiler - *Tab completion* works out of the box for bash and zsh, including dynamic enums - *Linter* catches annotation errors, naming issues, and flag collisions - Built to be *agent-friendly* — LLMs can read the annotations and scaffold modules without understanding bash arg parsing
The 30s demo video in the README shows the full flow: install, scaffold, run commands, add a module, and autocomplete.
Happy to answer questions about the design decisions or bash 3.2 compatibility war stories.
Javadoc for shell scripts when bashdoc and docbash already exist.
Offline DNA annotation across 7 databases when most tools require cloud APIs.
Tree-sitter AST parsing auto-approves safe commands for AI agents.
Claude plan review UI, but only works inside Claude Code's closed ecosystem.
Plan review loop with markup feedback—but agent planning UI is already Claude's bottleneck, not yours.
FastAPI-style ergonomics for background jobs with auto-generated AsyncAPI docs.