Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Kivvi ERP — AI-first ERP for Swiss SMEs, business on autopilot
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The ERP that knows things have a history.
The operating system for the circular economy. Built for businesses that sell used, donated, and refurbished goods — refurbishers, Brockenhäuser, repair workshops, vintage shops.
Live demo · Product brief · Docs · Architecture
Every generic ERP assumes you buy new and sell new. A Brockenhaus volunteer accepting a box of donated kitchenware, an IT refurbisher logging fifty laptops from a corporate donor, a repair café tracking spare parts across twenty bikes — none of that fits a "purchase → sell" data model. So secondhand businesses run on spreadsheets and 25-year-old desktop ERPs, and the operational drag keeps them from scaling their impact.
Kivvi handles intake, condition grading, repair workflows, flexible pricing, and impact reporting natively, with the Swiss compliance layer (QR-bills, VAT, KMU Kontenrahmen, CAMT bank import) and an AI command bar that understands secondhand workflows.
Open source. Self-hostable. Built in Switzerland.
Full positioning in PRODUCT.md.
| Module | What it does |
|---|---|
| Intake | Accept donations, trade-ins, consignment. Condition grading. Donation receipts. |
| Inventory | Mixed model: bulk quantities and per-item tracking with status (intake → testing → repair → ready_for_sale → sold). |
| Repair workflow | Per-item repair log, parts consumption, labour tracking, condition gates before sale. |
| Sales documents | Unified document model — Angebot, Auftrag, Lieferschein, Rechnung, Gutschrift, Mahnung. Convert by changing one field. |
| Swiss QR-bills | Generated automatically. Legally compliant since 2022. |
| Accounting | 139-account KMU Kontenrahmen, journal entries auto-generated, balance sheet + P&L + VAT report. |
| Banking | CAMT.053/054 import, automatic payment matching via QR reference. |
| Impact reporting | Devices saved, kg diverted from landfill, CO2 avoided. Auto-generated annual Vereinsbericht. |
| AI command bar | Cmd+K. "50 laptops donated by UBS" → intake created. Same domain functions the UI uses. |
| Self-service migration | CSV import with auto-detection (kivitendo profiles included). |
A pnpm monorepo. Domain logic is the source of truth — the UI, the public REST API, and the AI tools all delegate to the same functions in packages/core.
kivvi/
├── apps/
│ └── web/ # Next.js 14 App Router, Server Actions, server components
├── packages/
│ ├── database/ # Drizzle ORM schema — THE source of truth
│ ├── core/ # Domain logic (pure functions, one tx per business op)
│ │ └── src/domain/
│ │ ├── documents.ts # Unified document model (quote → invoice → credit note)
│ │ ├── inventory-items.ts # Per-item lifecycle, condition, repair
│ │ ├── accounting.ts # Journal entries, balance sheet, P&L, VAT
│ │ ├── banking.ts # CAMT import, payment matching
│ │ ├── impact.ts # CO2, devices saved, donation receipts
│ │ └── ...
│ └── ai/ # AI providers + tool registry (Groq / xAI / OpenRouter / Ollama / Anthropic)
└── docs/ # Deployment, self-hosting, audit reports, OpenAPI
Data flow. Server Action → domain function (transactional) → Drizzle → Postgres → revalidatePath → UI. The AI command bar calls the same domain functions through tool definitions, so every AI action is auditable in aiActionAudit.
Engineering contract in AGENTS.md.
| Layer | Technology | Why this one |
|---|---|---|
| Framework | Next.js 14 (App Router) | Server Components + Server Actions = fewer moving parts |
| Language | TypeScript (strict) | Types derived from Drizzle schema ($inferSelect) — single source of truth |
| Database | PostgreSQL + Drizzle ORM | Full SQL control, best TS inference, no codegen |
| Money | decimal.js | 0.1 + 0.2 !== 0.3 in IEEE 754; financial software cannot use floats |
| Auth | NextAuth.js v5 | Credentials provider, JWT strategy |
| AI | Groq · xAI · OpenRouter · Ollama · Anthropic | Configurable per company; free-tier chain first, Anthropic opt-in (paid) |
| UI | Tailwind + shadcn/ui + Radix | CSS variables as the only design SSOT; semantic tokens everywhere |
| Validation | Zod | Schema = SSOT for validation and types |
| Hosting | Self-hosted (Docker · any Linux VPS) | Runs on our own Hetzner box behind Caddy; portable to any host |
# 1. Clone
git clone https://github.com/bitbaum/kivvi.git && cd kivvi
# 2. Install
pnpm install
# 3. Start Postgres
docker compose up -d postgres
# 4. Env
cp .env.example .env.local
# edit DATABASE_URL, NEXTAUTH_SECRET, and an AI key
# 5. Schema + seed
pnpm --filter @kivvi/database db:push
# 6. Run
pnpm dev
Open http://localhost:3000. The onboarding wizard creates your company, seeds the 139-account Swiss KMU Kontenrahmen, and offers a kivitendo CSV import if you're migrating.
.env.localDATABASE_URL="postgresql://kivvi:kivvi_dev@localhost:5432/kivvi"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="$(openssl rand -base64 32)"
# Pick one AI provider (or none — the app runs without AI)
GROQ_API_KEY="gsk_..." # free tier, tried first
# OPENROUTER_API_KEY="sk-or-..."
# OLLAMA_BASE_URL="http://localhost:11434"
Companies that can't send data to a third-party LLM can run Kivvi end-to-end on their own hardware with Ollama:
docker compose --profile ai up -d ollama
docker exec -it kivvi-ollama-1 ollama pull qwen2.5:32b
# then set OLLAMA_BASE_URL in .env.local
Same AI tools, same UX, zero data egress.
Six ground truths, applied ruthlessly. Full reasoning in AGENTS.md.
Practical consequences:
db.transaction().companyId (multi-tenant isolation is a security invariant, not a feature).decimal.js, rounded at line-item level (Swiss standard).apps/web/app/globals.css — no hex colors in components.Shipped:
Next (open issues track these):
PRs welcome. See CONTRIBUTING.md for the loop.
git checkout -b feat/your-change
pnpm install && pnpm dev
# … make changes …
pnpm lint && pnpm type-check && pnpm test
# open a PR; CI runs lint + type-check + 1,300+ tests + production build
Found a vulnerability? See SECURITY.md. Do not open a public issue for security reports.
Kivvi is built by bitbaum in Zürich for secondhand shops that want their software to fit their workflow, not the other way around.
If you run a Brockenhaus, refurbishing workshop, or vintage shop and your ERP is fighting you, get in touch.
MIT — see LICENSE. Use it, fork it, sell it, embed it.
Every item that passes through your hands deserves to be tracked, valued, and given its best possible future.