{"id":50931997,"url":"https://github.com/kisaesdevlab/vibe-tax-research-chat","last_synced_at":"2026-06-17T05:04:39.336Z","repository":{"id":354480479,"uuid":"1223083186","full_name":"KisaesDevLab/Vibe-Tax-Research-Chat","owner":"KisaesDevLab","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-05T21:45:45.000Z","size":590,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-05T23:28:12.358Z","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":null,"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-04-28T01:54:34.000Z","updated_at":"2026-05-05T21:45:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/KisaesDevLab/Vibe-Tax-Research-Chat","commit_stats":null,"previous_names":["kisaesdevlab/vibe-tax-research-chat"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/KisaesDevLab/Vibe-Tax-Research-Chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Tax-Research-Chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Tax-Research-Chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Tax-Research-Chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Tax-Research-Chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KisaesDevLab","download_url":"https://codeload.github.com/KisaesDevLab/Vibe-Tax-Research-Chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KisaesDevLab%2FVibe-Tax-Research-Chat/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:25.732Z","updated_at":"2026-06-17T05:04:39.332Z","avatar_url":"https://github.com/KisaesDevLab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vibe Tax Research Chat\n\n\u003e Self-hosted, single-tenant AI chat appliance for U.S. CPAs. The firm owns its Anthropic API\n\u003e key, the chat history stays on the firm's hardware, and every turn shows actual token cost,\n\u003e verified primary-source citations, and SSTS / Circular 230 disclosures.\n\n**Status:** scaffolding pass. See `BUILD_PLAN.md` for the v1.0.0 spec and `QUESTIONS.md` for the\napplied defaults during the build.\n\n**License:** BSL 1.1 with 4-year change to Apache 2.0. See `LICENSE`.\n\n## Quick start (dev)\n\n```bash\n# 1. Tooling: Node 24, pnpm 9, Docker.\nnode --version    # \u003e= 24.0.0\npnpm --version    # \u003e= 9.0.0\ndocker --version\n\n# 2. Clone + install.\npnpm install\n\n# 3. Generate secrets and copy env.\ncp .env.example .env\n# fill MASTER_KEY (openssl rand -hex 32)\n# fill JWT_SECRET, JWT_REFRESH_SECRET (openssl rand -hex 64 each)\n# set SEED_ADMIN_EMAIL / SEED_ADMIN_PASSWORD\n\n# 4. Start Postgres + Redis.\ndocker compose up -d postgres redis\n\n# 5. Migrate + seed the DB.\npnpm db:migrate\npnpm db:seed\n\n# 6. Start api and web in dev mode.\npnpm dev\n# api  → http://localhost:4000\n# web  → http://localhost:5173\n```\n\nLog in with the seeded admin credentials, then go to **Admin → Settings** to add your Anthropic\nAPI key and pick a default model.\n\n## Production install (single-box appliance)\n\n```bash\ngit clone https://github.com/KisaesDevLab/Vibe-Tax-Research-Chat\ncd Vibe-Tax-Research-Chat\ncp .env.example .env  # set secrets\ndocker compose -f docker-compose.prod.yml up -d\n# Open http://\u003cbox-ip\u003e/setup for the first-run wizard.\n```\n\nFull install guide: `docs/install.md`.\n\n## Architecture (one-page)\n\n| Layer         | Choice                                                                           |\n| ------------- | -------------------------------------------------------------------------------- |\n| Frontend      | React 18 + TypeScript + Vite + Tailwind + TanStack Query + Zustand               |\n| Backend       | Node 24 + Express + TypeScript + Pino                                            |\n| ORM / DB      | Drizzle ORM + PostgreSQL 16                                                      |\n| Cache / queue | Redis 7 + BullMQ                                                                 |\n| AI            | `@anthropic-ai/sdk` with `code-execution-2025-08-25` + `skills-2025-10-02` betas |\n| Streaming     | Server-Sent Events from Express → React                                          |\n| Editor        | Monaco (skill authoring + diff viewing)                                          |\n| Distribution  | Docker Compose appliance                                                         |\n\nSee `BUILD_PLAN.md §3` for the full architecture, `BUILD_PLAN.md §4` for the data model,\nand `CLAUDE.md` for the running architecture log.\n\n## Documentation\n\n- `docs/install.md` — production install on Ubuntu 24.04 (NUC / mini-PC)\n- `docs/admin-guide.md` — API key rotation, user lifecycle, backup/restore\n- `docs/cost-model.md` — token costs → dollar costs (Opus 4.7 tokenizer caveat)\n- `docs/skills-routing.md` — how the dispatcher chooses skills per turn\n- `docs/web-resources.md` — domain allowlist + audit trail\n\n## Repo conventions\n\n- Conventional commits (commitlint enforced).\n- TypeScript strict everywhere.\n- pnpm workspaces; never run `npm` or `yarn` here.\n- `pnpm test` runs Vitest across all packages.\n- Append to `CLAUDE.md` whenever you change architecture; append to `QUESTIONS.md` whenever\n  you punt on a decision.\n\n## Author\n\nKurt Kohrumel, CPA — Kisaes LLC.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisaesdevlab%2Fvibe-tax-research-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkisaesdevlab%2Fvibe-tax-research-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisaesdevlab%2Fvibe-tax-research-chat/lists"}