Most tools tell you what happened. Mine tell you why — and admit it when they're guessing.
[tkwind]
now = "building developer tools that explain themselves"
ask_me = ["CLI design", "auditable LLM agents", "why your API returns 405"]
weekends = "tuning a 3D printer — and the slicer fork it demanded"⚑ Flagship — repoclean · pip install repoclean-cli — a pre-commit gatekeeper that pairs regex token detection with entropy scoring, blocks the leak in strict mode, and emits JSON for CI.
- PostSense — diffs a failing request against your last working one, and simulates the browser CORS constraints your desktop client hides; every diagnosis carries an evidence grade.
- Apply_AI — React Query + JWT auth over an Express/Mongo backend, with NVIDIA NIM parsing job descriptions into resume suggestions.
- ai-outreach-assistant — scoring, messaging, and orchestration kept deliberately separate so every decision is auditable; runs on local Mistral, so lead data never leaves the machine.
How each one works under the hood →
repoclean · A git hygiene scanner that installs itself as a pre-commit gatekeeper. It catches GitHub, Slack, Stripe, Telegram, AWS, and OpenAI tokens plus high-entropy assignments, and strict mode blocks the commit outright. JSON output plugs into CI. The premise: most leaks are speed, not carelessness — so hygiene has to be automatic.
PostSense · An API client that debugs instead of reporting. It compares a failing request to your last successful one for the same endpoint and returns a diff, not a status code. It also auto-probes unknown endpoints in a rate-limit-safe sequence and simulates browser CORS constraints. Every diagnosis is graded High / Medium / Low, so you always know inference from knowledge. Single folder, vanilla JS, no install.
Apply_AI · A job application tracker with a drag-and-drop board. NVIDIA NIM parses job descriptions into resume suggestions. React + TS + Vite on the front, Express + Mongo behind JWT auth, React Query holding the two together.
ai-outreach-assistant · Agentic B2B lead scoring built as three deliberately separate pieces: a scoring agent, a messaging agent, and an orchestrator. Decisions stay apart from execution, thresholds stay configurable, and every call leaves an explainable trace. It runs entirely on local Mistral via Ollama — no lead data leaves the machine.
The workbench — smaller repos, kept public anyway →
Not everything in an account is a product:
- jatayu-fastapi-crud — FastAPI + Firestore task API, Dockerized for Cloud Run, with Firestore access isolated in a service layer and a folder structure deliberately kept readable for people learning the stack.
- pharmazephyr-backend — Node service, in progress.
- OrcaSlicer-bambulab — the slicer fork my printer demanded.
The same decision loop ships in all three tools:
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#12293B','primaryTextColor':'#7FD8D2','primaryBorderColor':'#7FD8D2','lineColor':'#FFB86B','secondaryColor':'#0D1B2A','tertiaryColor':'#0D1B2A','fontFamily':'ui-monospace, monospace'}}}%%
flowchart LR
A([failure signal]) --> B{known-good<br/>baseline?}
B -->|yes| C[differential analysis]
B -->|no| D[heuristic inference]
C --> E[HIGH<br/>observed evidence]
D --> F[MEDIUM / LOW<br/>flagged as guesswork]
E --> G([one-click fix])
F --> G
G -.-> H[becomes the next baseline]
H -.-> B
differential analysis → PostSense's request diff · heuristic inference → repoclean's entropy scoring · the explainable trace → ai-outreach-assistant's audit trail
Every tool above, mapped to the repo it ships in →
| Layer | Tools | Seen in |
|---|---|---|
| CLI / tooling | Python, Click-style CLIs, entropy + regex scanning, pre-commit hooks | repoclean |
| Frontend | React, TypeScript, Vite, Tailwind — and vanilla JS when a build step would be a lie | Apply_AI, PostSense |
| Backend | FastAPI, Node + Express, JWT auth, layered service/controller split | jatayu-fastapi-crud, Apply_AI |
| Data | MongoDB + Mongoose, Firestore, Pandas | Apply_AI, jatayu, ai-outreach-assistant |
| AI | NVIDIA NIM, Ollama + Mistral running locally, agent/orchestrator separation | Apply_AI, ai-outreach-assistant |
| Ship | Docker, Cloud Run, Vercel, Railway, GitHub Actions, PyPI | all of it |
rendered in-repo by scripts/render_cards.py from live GitHub API data — no third-party stat services anywhere on this page
How this page renders itself — every pixel is in this repo →
No stat-card services, no rate limits, nothing that breaks at busy hours.
- The header (ASCII sweep + typing tagline), terminal, stack grid, badges, and divider are hand-written animated SVGs in
assets/— CSS keyframes inside the files. GitHub renders them through its image proxy, so the animations run but scripts never do. - The stat dashboard and repo cards are rendered by
scripts/render_cards.pyfrom live GitHub API data.
| Workflow | What it does | Schedule |
|---|---|---|
cards.yml |
Renders the stat dashboard + repo cards | every 6h |
snake.yml |
Renders the contribution snake to the output branch |
every 12h |
3d-contrib.yml |
Renders the 3D contribution calendar | daily |
Theme switching uses <picture> + prefers-color-scheme, so every graphic ships in a dark and a light version.
tkwind · repoclean-cli · PostSense · all repos
If one of these saved you an hour, a star is a nice way to say so.