🕷️
AutoCrawler — self-driving QA agent
Detects a web app's framework, statically extracts its routes, forms and selectors, boots it with Playwright, crawls it with LLM-assisted form filling and vision-based anomaly detection, and produces SQLite + HTML reports. Adapters for eight frameworks (Django, Flask, FastAPI, Laravel, React, Vue, Next.js, Nuxt), eight fixture apps and integration tests that assert at least 80 % route coverage.
Python 3.11PlaywrightSQLiteLLM visionpytest
📦
gromi-core — shared Python core library
A multi-provider LLM client (Claude, Gemini) with cost tracking, forced JSON completion and retry/fallback logic; structured JSON logging; layered configuration (env → .env → pyproject); tenacity decorators tuned for LLM APIs. Published as a private package that other projects install as a dependency.
PythonClaude APIGemini APItenacityGitHub Packages
🧾
gromi-prompts — versioned prompt registry
Prompts are versioned artefacts rather than strings buried in code: each has YAML metadata, a version history and at least ten JSONL test cases. A CLI runs the evals, compares versions against each other and dry-runs a render without calling an LLM. The registry holds 19 prompt families — expense classification, receipt recognition, facade analysis, outreach personalisation, SEO content, product SKUs.
PythonJSONL evalsYAMLCLIGitHub Packages
🧰
myaitools — a self-growing tool library
Implements the LATM loop ("LLMs as Tool Makers"): recognise → specify → build → test → document → register → use. At session start the tool catalogue is injected into context; at task end a cheap local heuristic decides for free whether some subtask was worth capturing as a tool — and if so, a detached builder agent writes it with tests and registers it. Reasoning is paid for once; the tool accrues.
PythonBashClaude Code hooksJSON manifestpytest
🔀
proxybroker — rotation coordinator
The only process that calls the providers' rotation endpoints. Providers rate-limit rotation (one per two minutes), so concurrent callers get 429s and the exit IP freezes — and one service rotating mid-request breaks another. The broker serialises, cooldown-gates and barrier-coordinates rotation by quorum: the IP changes only once every connected service has voted for it, or when a safety valve fires. A stuck service can never deadlock the others.
PythonHTTP daemonflockcroncurl_cffi
🧩
Shared development infrastructure
One Docker stack (MySQL 8, Redis 7, Mailpit) serving every project on a shared network: databases are created by script, each project joins the external network, and its launcher brings the infrastructure up automatically if it is not already running. Seven projects share the same stack with no port conflicts.
Docker ComposeMySQL 8Redis 7MailpitBash
🔥
Firefly III finance stack
A local Firefly III deployment with the Data Importer, an AI categoriser and an email reporter. A one-command launcher handles database import, container startup and the health check — this is the target the accounting automation publishes transactions and receipts into.
Docker ComposeFirefly IIIMySQLMailpit
📚
AI-agent contract and learning pipeline
A single binding operating contract (AGENTS.md) mirrored to every AI coding tool — Claude Code, Copilot, OpenCode, Cursor, Windsurf, Codex, Aider — so the work stays repeatable regardless of which tool does it. On top of that a three-layer Obsidian knowledge vault (modules, sublists, specs) and architectural decisions as ADRs. The same repository hosts a learning pipeline: summaries, flashcards and NLP maps.
MarkdownObsidianNode.jsPythonADR
🔑
autoreger — API quota orchestration
Orchestrates registrations and quotas across five enrichment providers (People Data Labs, Apilayer, Apify, Hunter, ZeroBounce) in two modes: burst drains one provider at a time, pulse cycles one key per provider for a flatter load profile. Two root orchestrators and five per-project bootstraps, all logged.
PythonBashSeleniumProxy rotationcron
✉️
MailFlow connector automation
A semi-automatic tool for enrolling mailboxes into a warmup service. One headful Chrome on a persistent profile through an authenticated proxy: you log in once, then the tool walks the mailboxes one at a time, drives Gmail's app-password wizard and prefills the form. The proxy IP is rotated once per session, respecting the cooldown.
PythonSeleniumChrome profileProxy