{"id":50931975,"url":"https://github.com/kisaesdevlab/vibe-shield","last_synced_at":"2026-06-17T05:04:37.194Z","repository":{"id":358122195,"uuid":"1240094554","full_name":"KisaesDevLab/Vibe-Shield","owner":"KisaesDevLab","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-16T02:09:01.000Z","size":979,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T03:12:03.614Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KisaesDevLab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T19:02:49.000Z","updated_at":"2026-06-16T02:09:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/KisaesDevLab/Vibe-Shield","commit_stats":null,"previous_names":["kisaesdevlab/vibe-shield"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/KisaesDevLab/Vibe-Shield","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Shield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Shield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Shield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Shield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KisaesDevLab","download_url":"https://codeload.github.com/KisaesDevLab/Vibe-Shield/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Shield/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34434497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-17T05:04:23.007Z","updated_at":"2026-06-17T05:04:37.189Z","avatar_url":"https://github.com/KisaesDevLab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vibe Shield\n\nSelf-hosted PII redaction gateway between Vibe apps and the Anthropic Claude API. Runs on the Vibe Appliance, performs local PII detection (text **and** images) with Microsoft Presidio plus CPA-domain custom recognizers, swaps cleartext for deterministic per-session tokens, proxies the Anthropic Messages API, and re-identifies the response per policy. Names, SSNs, EINs, bank account / routing numbers, faces, and signatures never leave the firm's environment.\n\nThe full design — compliance objectives, architecture, phased build plan, and acceptance criteria — lives in [BUILD_PLAN.md](./BUILD_PLAN.md). Working agreements for Claude Code are in [CLAUDE.md](./CLAUDE.md).\n\n## Status\n\n**Pre-alpha.** Phases 1–4 of BUILD_PLAN.md are complete: repo foundation, FastAPI engine with Presidio + spaCy, seven CPA-domain custom recognizers, the whitelist post-processor, and the six regex backstops with miss logging. Sanitized 422 / 500 / 503 error envelopes enforce hard-rule #1 in error paths. Gateway, admin UI, token vault, and client SDK arrive in their respective phases.\n\n## Quickstart\n\nRequires Node.js ≥ 24, pnpm ≥ 9, Python 3.12, [uv](https://docs.astral.sh/uv/), and Docker.\n\n```bash\npnpm install\nmake dev          # starts Postgres (host :5436) + Redis (host :6395)\nmake verify       # lint + typecheck + tests across all workspaces\n\n# Schema integration tests need DATABASE_URL — point at the dev Postgres:\nexport DATABASE_URL=\"postgres://vibe:vibe@localhost:5436/vibe_shield\"\npnpm --filter @kisaesdevlab/vibe-shield-schema test\n```\n\nPostgres is mapped to host port **5436** and Redis to **6395** (not the defaults 5432/6379) so they don't collide with system installs or other Vibe-stack services on the same dev box. Override either with `POSTGRES_PORT=…` or `REDIS_PORT=…`.\n\nApp services come up once their phases land:\n\n```bash\ndocker compose --profile app up --build\n```\n\n## Stack\n\n| Component | Tech | Phase |\n|-----------|------|-------|\n| `vibe-shield-gateway` | Node 24 + TypeScript + Express | 7–10 |\n| `vibe-shield-engine` | Python 3.12 + FastAPI + Presidio | 2–6, 17 |\n| `vibe-shield-admin` | React 18 + Vite + shadcn/ui | 13 |\n| `@kisaesdevlab/vibe-shield-client` | TypeScript SDK | 14 |\n| Storage | Postgres 16 + Redis 7 + BullMQ | 5–6, 8 |\n\n## License\n\n[PolyForm Internal Use 1.0.0](./LICENSE). Distribution requires a separate commercial license — contact KisaesDevLab.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisaesdevlab%2Fvibe-shield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkisaesdevlab%2Fvibe-shield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisaesdevlab%2Fvibe-shield/lists"}