Skip to content

Releases: bb1nfosec/skim

skim v0.5.1 — Enterprise Hardening + Honest Messaging

Choose a tag to compare

@bb1nfosec bb1nfosec released this 31 May 21:09

Enterprise hardening

  • Login rate limiting — per-IP sliding window, brute-force protection (SKIM_LOGIN_MAX_ATTEMPTS / SKIM_LOGIN_WINDOW_SEC)
  • last_login tracking; login audit records origin IP
  • Data retention — skim admin purge --older-than N and POST /api/v1/admin/purge for compliance

Honest Claude Code messaging

Confirmed via Claude Code docs: a Pro/Max subscription (OAuth) ignores ANTHROPIC_BASE_URL and routes straight to Anthropic — the proxy cannot intercept subscription traffic. README, docs, the proxy banner, and the demo now state plainly that Claude Code requires API-key auth to use the proxy. Cursor / SDK / OpenAI-compatible tools are unaffected.

Demo

Rewrote the landing page with the subscription caveat surfaced inline. No fake trial/SCIM claims.

pip install -U skim-llm

skim v0.5.0 — Enterprise Control Plane

Choose a tag to compare

@bb1nfosec bb1nfosec released this 31 May 21:08

Self-contained proxy dashboard + full enterprise control plane.

  • 🛡️ Budget enforcement (hard 429 block)
  • 🔔 Webhook alerts (Slack/Teams + signed HTTP)
  • ✉️ User invites (single-use self-registration)
  • 🔑 Scoped + expiring API keys
  • 👥 RBAC (admin/team_admin/user)
  • 📋 Immutable audit log
  • 📤 CSV/JSON data export
  • ⌨️ skim admin CLI

pip install skim-llm · Docs: https://github.com/bb1nfosec/skim/tree/main/docs

v0.1.0 — First release

Choose a tag to compare

@bb1nfosec bb1nfosec released this 21 May 21:26

What is distill?

Token costs are quadratic, not linear. Every LLM re-reads your entire conversation on every turn. Distill scans repos, finds the waste, and eliminates it — with adapters that plug into Claude, OpenAI, Gemini, and Ollama.

What is in this release

Dollar cost output

  • Every scan now shows per-session $ spend and sessions-per-dollar
  • Per-file cost column with --cost; covers all four provider families

distill unified CLI

distill scan    --path . --model claude
distill analyze --path .
distill check   --path . --max-pct 30
distill generate --output . --model all

CI budget gate

- name: Token budget check
  run: distill check --path . --max-pct 30

Exits 1 if over budget. --fail-on-waste also catches lock files and generated code. --json for machine-readable output.

Google Gemini adapter

  • GeminiAdapter — Gemini 2.0 Flash, 1.5 Pro, 1.5 Flash
  • 1M token context window
  • Native token counting via model.count_tokens()
  • Same interface as Claude/OpenAI/Ollama: llm.chat(), llm.compact(), llm.print_stats()

Applied distill to itself

.llmignore, CLAUDE.md, .claudeignore generated and committed. CI now runs a token budget check on every push.

Install

git clone https://github.com/bb1nfosec/Distill
cd Distill
pip install -e ".[tiktoken]"
distill scan --path .

Benchmarks

  • 0.00% token estimation error (tiktoken path)
  • 1.8M tokens/sec scan throughput
  • 42.9% input reduction with compaction over a 10-turn session
  • 561k tokens eliminated from a real Next.js project with one generated .llmignore

Full results: benchmarks/results.md