{"slug": "i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo", "title": "I built a Mac AppSec tool where the AI never sees your whole repo", "summary": "A developer built InsurStaq, a local-first AppSec auditor for macOS (Apple silicon) that runs deterministic scanners and attack-path tracing before feeding only a bounded evidence packet to a local LLM, so the model never receives the full repository as context. The tool bundles a llama.cpp sidecar or connects to a user's own Ollama/LM Studio instance on loopback, and includes an air-gapped mode, encrypted local storage, and approval-gated patch application with rescan verification. It is a product of KarmSakha Limited and is offered in early access, with the developer noting uneven framework coverage.", "body_md": "Most AppSec pipelines assume one thing first: upload the repo.\n\nThat breaks for NDA client code, regulated workloads, or a policy that source does not leave the building. SaaS scanners want the tree. On-prem enterprise gear assumes you have a security department. A lot of solo founders and small teams sit in the gap.\n\nI built **InsurStaq** — a local-first security auditor for macOS (Apple silicon)  to sit in that gap.\n\n## \n  \n  \n  The order of operations matters\n\nThe product is deliberately not LLM over the repo.” The loop is:\n\n1. \n**Parse and map** the application (routes, auth, frameworks via tree-sitter adapters).\n2. \n**Run deterministic scanners** — first-party SAST, secrets (including git history), IaC / container / CI checks, offline OSV CVEs, SBOM export.\n3. \n**Build a code + security graph** and trace**source→sink attack paths** (inter-procedural taint), not only rule hits.\n4. \n**Only then** feed a local model an**evidence packet** — explain, triage, draft a minimal patch.\n5. \n**You approve** → atomic apply →**rescan** to verify.\n\nThe model never gets the whole repository as context. Scanners find; the model reasons over a bounded packet with schema-validated output. That keeps it grounded and small enough for a laptop (bundled llama.cpp sidecar, or your own Ollama / LM Studio on loopback).\n\n## \n  \n  \n  Privacy is structural, not a checkbox\n\n- One allowlisted outbound gateway with a ledger; request types that must not carry repo content do not.\n- \n**Air-Gapped Mode** turns networking off.\n- Encrypted local store + Keychain.\n- Read-only Git via vendored libgit2 (no hooks/filters, no fetch/push).\n\n## \n  \n  \n  What it is / is not\n\n- \n**Is:** local SAST-style coverage + attack-path tracing + approval-gated remediation + compliance*readiness* mapping (OWASP / ASVS / CWE / SOC 2 / ISO 27001 / PCI / GDPR / HIPAA as evidence states, not badges).\n- \n**Is not:** a penetration test. Not a certification. Early access: licence + download by email. Framework coverage is uneven — I’d rather hear what you need than overclaim.\n\nReports: PDF, HTML, Markdown, JSON, SARIF, CSV. CLI can fail CI on critical findings.\n\n## \n  \n  \n  Links\n\nIf you care about the taint engine, air-gap design, or where coverage still misses, ask in the comments — happy to go deep.\n\n*Not affiliated with the former InsurStaq.ai business that ceased operations in 2024. InsurStaq is a product of KarmSakha Limited (England & Wales).*", "url": "https://wpnews.pro/news/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo", "canonical_source": "https://dev.to/yaman_khetan_64c05ba99264/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo-4gc5", "published_at": "2026-09-25 13:47:27+00:00", "updated_at": "2026-09-25 14:00:46.631704+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "developer-tools", "mlops"], "entities": ["InsurStaq", "KarmSakha Limited", "llama.cpp", "Ollama", "LM Studio", "macOS", "Apple", "InsurStaq.ai"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo", "markdown": "https://wpnews.pro/news/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo.md", "text": "https://wpnews.pro/news/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo.txt", "jsonld": "https://wpnews.pro/news/i-built-a-mac-appsec-tool-where-the-ai-never-sees-your-whole-repo.jsonld"}}