whatstack


Install
Download a binary from releases, or:
go install github.com/servaasvdc/whatstack@latest
# Nix
nix run github:servaasvdc/whatstack
Usage
whatstack # scan current directory
whatstack ~/repos/my-project # scan a specific path
whatstack -f json # output as JSON
whatstack -f markdown # output as markdown
whatstack -f plain # tab-separated output
whatstack --depth 3 # scan deeper for sub-projects (default: 2)
whatstack --depth 0 # skip sub-project discovery
Piping
whatstack auto-detects when stdout is piped and switches to a tab-separated format (path\tcategory\tname\tversion\tsource), so it works naturally with Unix tools:
whatstack | grep framework # filter by category
whatstack | cut -f3 # just the names
whatstack -f json | jq '.[].findings[].name' # names via jq
whatstack -f markdown >> ARCHITECTURE.md # append to docs
# compare two projects
diff <(whatstack ~/repos/foo | cut -f3 | sort) \
<(whatstack ~/repos/bar | cut -f3 | sort)
Use --format to override the auto-detection (e.g. --format table to force the pretty table in a pipe).
Monorepos
whatstack finds sub-projects automatically. It looks for manifest files (go.mod, package.json, mix.exs, Cargo.toml, etc.) and scans each one independently.
$ whatstack open-webui
━━ backend ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
── Language ───────────────────────────
Python requirements.txt
── Framework ──────────────────────────
FastAPI requirements.txt
── Database ───────────────────────────
PostgreSQL requirements.txt
MongoDB requirements.txt
── ORM ────────────────────────────────
SQLAlchemy requirements.txt
── Auth ───────────────────────────────
Authlib requirements.txt
PyJWT requirements.txt
── ML ─────────────────────────────────
Transformers requirements.txt
LangChain requirements.txt
OpenAI SDK requirements.txt
Anthropic SDK requirements.txt
━━ open-webui ━━━━━━━━━━━━━━━━━━━━━━━━━━━
── Language ───────────────────────────
TypeScript 5.5 package.json
── Framework ──────────────────────────
SvelteKit 2.5 package.json
── CSS ────────────────────────────────
Tailwind 4.0 package.json
── Infra ──────────────────────────────
Docker Dockerfile
Docker Compose docker-compose.yaml
What it detects
32 language/platform detectors: Elixir, Go, Node/TypeScript, Deno, Python, Ruby, Rust, Java/Kotlin, PHP, C#/.NET, Swift, Dart/Flutter, Scala, Zig, C/C++, Lua, R, Gleam, OCaml, Haskell, Clojure, iOS, Perl, Erlang, Julia, Nim, V, Crystal, Elm, PureScript, Solidity, Bazel.
Plus Docker, Docker Compose, Terraform, Ansible, Pulumi, Vagrant, Kubernetes, Helm, cloud providers (AWS, GCP, Azure, Cloudflare, Firebase, Supabase), API specs (OpenAPI, GraphQL, Protobuf), CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Drone, Woodpecker, Bitbucket, AWS CodeBuild, Google Cloud Build, Azure Pipelines), ML/AI (OpenAI, Anthropic, LangChain, TensorFlow, PyTorch, Hugging Face, Pinecone, Qdrant, and more), and 30+ categories — databases, ORMs, queues, caches, payments (Stripe, Paddle, LemonSqueezy), analytics (PostHog, Mixpanel, Segment, Amplitude), feature flags (LaunchDarkly, Unleash, Flipper, GrowthBook), email (SendGrid, Postmark, Mailgun, Resend, AWS SES), realtime (Pusher, Ably, Socket.IO, Liveblocks), testing frameworks, linters, storage, search, security, and more.
License
MIT