saaschet

agent
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in server.js
  • network request — Outbound network request in src/app/(dashboard)/ai-chat/page.tsx
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

AI coding agent platform — multi-model chat, GitHub repo integration, live sandbox execution, tool-calling, streaming

README.md

Celiuz AI — AI Coding Agent Platform

Platform AI coding agent dengan integrasi GitHub, live sandbox execution, multi-model OpenAI-compatible, dan dashboard lengkap dengan autentikasi. Dibangun dengan Next.js 16, React 19, Tailwind CSS v4, dan Vercel AI SDK.

✨ Features

AI Chat & Agent Mode

  • Multi model — GLM 5.2, Kimi 2.7 Code, DeepSeek V4 Pro, DeepSeek V4 Flash, Qwen 3.7 Plus, MiniMax M3
  • Agent Mode otomatis — model dengan tool-calling auto-enable agent tools saat repo dihubungkan
  • Integrasi GitHub — read, write, edit, search code, create branches & PRs via GitHub App (per-repo install, granular permissions, aksi muncul sebagai bot)
  • Live sandbox — ephemeral sandbox service (4 vCPU, 8GB RAM, 10GB disk) untuk eksekusi kode
  • Activity Timeline — timeline terstruktur per kategori (Explore, Read, Search, Commands, Code, Created, Updated, Deleted) dengan summary card
  • Quick Actions — tombol aksi context-aware berbasis AgentState (task type + status dari orchestrator)
  • Context7 docs — lookup dokumentasi library/framework terkini di chat dan Agent Mode
  • Web search — Tavily-powered in-chat web search toggle
  • Memory extraction — vector memory (Jina embeddings) + structured profile memory (Fireworks LLM)
  • Streaming — real-time tool call streaming dengan context trimming
  • Background agent + resume — agent run terlepas dari HTTP request: tutup tab atau pindah halaman tidak membunuh task 10–20 tool call. Server menyimpan sendiri hasilnya, dan saat kembali UI otomatis nyambung lagi ke run yang masih jalan (replay + live)

Projects

  • Project folders — kelompokkan conversation ke project dengan nama, warna, deskripsi
  • Sidebar integration — project list di sidebar dengan conversation count
  • Auto-assign — conversation baru otomatis ke project aktif

Credits & Billing

  • Sistem kredit harian — Free 50/hari, Pro 3000/24 jam
  • Atomic billing — RPC spend_credits dengan row lock, race-condition safe
  • Pro trial 24 jam — aktivasi via WhatsApp + admin approval, auto-downgrade
  • Credit meter — sidebar meter dengan Pro countdown

Dashboard

  • KPI stat cards (Credits Used, Total Users, Credits Available, Plan)
  • Area chart (daily credit usage, last 30 days)
  • Bar chart (monthly credit usage)
  • Users table dengan pagination + Pro activation
  • Light / Dark mode toggle
  • Fully responsive (mobile drawer)

Auth & Security

  • Supabase authentication (email/password, GitHub OAuth)
  • Chat history persistence (conversations + tool-call parts + metadata)
  • Row Level Security (RLS) di semua tables
  • CSP + security headers (X-Frame-Options, X-Content-Type-Options, Permissions-Policy)
  • Idempotent message save (ON CONFLICT, no duplicate on reload)
  • XSS protection (markdown href scheme validation, no raw HTML injection)

🛠 Tech Stack

Concern Choice
Framework Next.js 16 (App Router) + TypeScript
Styling Tailwind CSS v4 + custom design tokens
AI SDK Vercel AI SDK v6 (ai, @ai-sdk/openai)
Inference OpenAI-compatible API (6 models)
Sandbox Ephemeral sandbox service (snapshot-based, 4 vCPU/8GB)
Auth & DB Supabase (Postgres + Auth + RLS)
Web Search Tavily AI
Docs Lookup Context7 API
Memory Jina AI (embeddings) + Fireworks (extraction)
Icons lucide-react
Charts Recharts
Theming next-themes
Deployment Coolify (Docker, persistent) / Vercel (legacy)

🚀 Quick Start

# 1. Clone
git clone https://github.com/BangDills/saaschet.git
cd saaschet

# 2. Install
npm install

# 3. Configure environment
cp .env.example .env.local
# Edit .env.local with your keys (see Environment Variables below)

# 4. Run
npm run dev
# Open http://localhost:3000

✅ Checks

npm run lint        # eslint — must stay at 0 errors
npm run typecheck   # tsc --noEmit
npm test            # selfchecks (quick actions, activity timeline, agent runs)
npm run build       # next build

GitHub Actions runs all four on every push to main and every pull request
(.github/workflows/ci.yml), cheapest step first. No secrets are needed —
the app builds without them.

🔑 Environment Variables

Copy .env.example to .env.local and fill in your keys:

Variable Required Description
FIREWORKS_API_KEY OpenAI-compatible API key (get here)
NEXT_PUBLIC_SUPABASE_URL Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anon key
SUPABASE_SERVICE_ROLE_KEY Supabase service role key (server-side only)
GITHUB_APP_ID GitHub App ID (agent mode repo access)
GITHUB_APP_SLUG GitHub App slug (install URL)
GITHUB_APP_PRIVATE_KEY GitHub App private key (mints 1-hour installation tokens)
GITHUB_APP_WEBHOOK_SECRET Verifies installation webhook deliveries
TAVILY_API_KEY Optional Tavily API key for web search (tavily.com)
CONTEXT7_API_KEY Optional Context7 API key for library docs (context7.com)
JINA_API_KEY Optional Jina AI key for vector embeddings (memory search)
DAYTONA_API_KEY Optional Sandbox service API key for ephemeral execution
DAYTONA_SERVER_URL Optional Sandbox service URL (default: https://app.daytona.io/api)
DAYTONA_TARGET Optional Sandbox target region (us or eu, default us)
DAYTONA_SANDBOX_SNAPSHOT Optional Pre-provisioned snapshot name for resource-heavy sandboxes
SERENA_MCP_URL Optional Serena MCP HTTP/SSE endpoint for semantic code tools
SERENA_MCP_TOKEN Optional Bearer token for a protected Serena MCP bridge
SERENA_ALLOW_WRITE_TOOLS Optional Set true to expose Serena write/execute tools; defaults read-only

📁 Project Structure

src/
  app/
    (auth)/               # Login / signup pages
    (dashboard)/          # Authenticated dashboard route group
      layout.tsx          # Sidebar + Topbar shell
      dashboard/          # Admin dashboard (KPI cards, charts)
      ai-chat/            # AI Chat page (multi-model, agent, projects)
      prd-generator/      # PRD generator
      history/            # Chat history browser
      profile/            # User profile settings
      subscription/       # Subscription / Pro trial management
      users/              # Admin users table + Pro activation
    api/
      chat/route.ts       # AI chat endpoint (streaming, tools, multi-model)
      models/route.ts     # Model list endpoint (Fireworks whitelist)
      conversations/      # CRUD for chat history + parts + metadata
      projects/           # CRUD for project folders
      credits/            # Credits balance API
      github/             # GitHub OAuth + repo content
      profile/            # Profile + tier API
    globals.css           # Design tokens (light + dark)
  components/
    chat/                 # ChatPanel, ChatInput, ModelSelector, MessageBubble
    chat/activity/        # ActivityTimeline, ActivityGroup, FileOperationGroup, CommandGroup, SummaryCard
    dashboard/            # Sidebar, Topbar, charts, projects-list, credits-meter
    auth/                 # Auth forms
    ui/                   # Card, Button, Badge primitives
  lib/
    chat/                 # Models config, types, web search, memory
    agent/                # Agent tools + action-registry (Quick Actions)
    context7/             # Context7 documentation lookup
    github/               # GitHub API client
    daytona/              # Sandbox service tools (run_command, write_file, etc.)
    credits/              # Credits system (atomic RPC)
    supabase/             # Supabase client (server + browser)
    url.ts                # resolveOrigin + redactVendorPath
    nav.ts                # Sidebar navigation config
  supabase/migrations/    # SQL migrations (0001-0027) — see its README.md for apply order
  Dockerfile              # Multi-stage Docker build (standalone, Coolify)

🤖 Supported Models

Model Provider Agent Capable Multimodal
GLM 5.2 OpenAI-compatible
Kimi 2.7 Code OpenAI-compatible
DeepSeek V4 Pro OpenAI-compatible
DeepSeek V4 Flash OpenAI-compatible
Qwen 3.7 Plus OpenAI-compatible
MiniMax M3 OpenAI-compatible

Semua model support function-calling (verified via Fireworks API).

🏗 Deployment

Coolify (recommended — production)

Docker-based deploy dengan Dockerfile (multi-stage, output: 'standalone'). Persistent process — tidak ada Vercel 5-menit limit untuk agent loop.

  1. Install Coolify di VPS (Hetzner/DigitalOcean 8GB+)
  2. Connect repo → auto-detect Dockerfile
  3. Set env vars via Coolify UI
  4. Deploy → auto SSL Let's Encrypt

Jalankan satu replica. Background agent run disimpan di memori proses
(src/lib/chat/run-registry.ts), jadi resume hanya bekerja bila request
kembali ke proses yang sama. Dengan beberapa replica tanpa sticky session,
agent tetap jalan dan hasilnya tetap tersimpan ke database — yang hilang
cuma reattach ke stream live (UI jatuh ke polling + reload). Restart
container membatalkan run yang sedang berjalan.

Vercel (legacy/staging)

Push ke GitHub → connect Vercel → add env vars → deploy. Note: 5-menit function timeout limit untuk agent. Background agent run tidak bertahan di sini — eksekusi berhenti saat response selesai, jadi fitur tutup-tab hanya berlaku di deploy persistent (Coolify/Docker).

cPanel (legacy)

See DEPLOY_CPANEL.md for the step-by-step guide.

📄 License

MIT

Reviews (0)

No results found