Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Mila — your personal real-estate work agent Mila is a mobile-first PWA for US real-estate agents. You tell Mila what you need done ("I have an open house at 123 Main Street Sunday at 1 PM. Set everything up."); Mila works out the steps, prepares calendar events, reminders, emails, social posts and tasks, and asks for approval before anything consequential. It is not a CRM and not a chat wrapper. What's real vs. what needs your keys [README 설치·사용 부분 발췌] Quick start (no keys) Open the app → Explore with demo data (fictional agent "Sarah Carter") or create a local account. Data lives in `Read the full README ↗
Mila is a mobile-first PWA for US real-estate agents. You tell Mila what you need done ("I have an open house at 123 Main Street Sunday at 1 PM. Set everything up."); Mila works out the steps, prepares calendar events, reminders, emails, social posts and tasks, and asks for approval before anything consequential. It is not a CRM and not a chat wrapper.
| Capability | Works with no keys? | Needs |
|---|---|---|
| Home / chat, thinking states, time-of-day sky, PWA install | Yes | — |
| Rules-based understanding of common requests (open house, new buyer, move event, reminders, follow-ups, imports, social/email drafts) | Yes | — |
| Contacts, timeline, memory, tasks & approvals, calendar (Mila's own), templates, documents, workflows, credits ledger, owner dashboard | Yes (local JSON store) | — |
| CSV / pasted-list / XLSX / text-PDF sign-in sheet import | Yes | — |
| Free-form requests the rules don't cover, drafting polish | No | ANTHROPIC_API_KEY |
| Reading photos and scanned PDFs (sign-in sheets) | No | ANTHROPIC_API_KEY |
| Live market research with sources | No | ANTHROPIC_API_KEY (uses web search) |
| Accounts with passwords, multi-device, production database + file storage | No (local dev uses passwordless local accounts) | Supabase |
| Gmail send/search, Google Calendar sync, Google Contacts / Sheets import | No | Google OAuth keys |
| Real billing (plans + credit packs) | No (dev billing state) | Stripe |
| Email reminders / notifications | No | Resend (+ cron) |
| Voice input | Yes in browsers with speech recognition (Safari, Chrome) | — |
| SMS, Instagram/Facebook/TikTok/LinkedIn publishing, Outlook, Apple Calendar, MLS data, image generation | Coming soon — shown as such, never faked | — |
Honesty rules baked in: approving an email without Gmail connected does not claim it was sent (it stays "approved — waiting on connection"); social posts are approved for manual posting; property facts are only used after you mark them verified; no stock photos; market answers show date, location, data period and sources or are refused.
The Supabase adapter, Google adapter, Stripe checkout/webhook and Anthropic provider are written against the vendors' documented APIs but could not be exercised against live services in the build environment. Test each with a real account before launch.
npm install
npm run dev # http://localhost:3000
Open the app → Explore with demo data (fictional agent "Sarah Carter") or create a local account. Data lives in .data/ (git-ignored).
npm run lint && npm run typecheck && npm test
src/app/ Next.js App Router: pages (Home, Contacts, Calendar, Tasks, More, Settings…) and /api routes
src/components/ Sky (sun/stars/clouds), glass UI, chat blocks, composer (voice + attachments), review sheets
src/lib/agent/ The agent
intents.ts, nlu.ts fast rules router + date/time/address/budget parsers (free, instant)
llm.ts optional AI: classify unknown requests, chat, drafting (cheapest capable tier)
tools.ts tool registry: create_contact, create_calendar_event, draft_email, send_email, save_memory…
policy.ts autonomy: ask vs auto; deletes, cancellations and sends to >10 people ALWAYS ask
handlers/ open house, calendar (conflicts, moves, stale comms), contacts, follow-ups, reminders, comms
engine.ts one turn: understand → plan → execute/approve → record → charge credits
prioritize.ts urgent/important/upcoming/low scoring (capped, no fake urgency)
memory.ts durable structured memory (view/edit/delete in More → Memory)
src/lib/ai/provider.ts provider abstraction with tiers (fast / standard / reasoning / vision / research)
src/lib/credits.ts credit ledger + per-operation usage rows (provider, model, tokens, USD cost, credits)
src/lib/db/store.ts Store interface → FileStore (local) or SupabaseStore; always scoped by user_id
src/lib/integrations/ Google adapter (OAuth, Gmail, Calendar, People, Sheets), AES-GCM token encryption
supabase/migrations/ Postgres schema + Row Level Security
Customers see "Mila Credits". Every turn writes a usage row (provider, model, tokens, estimated USD cost) and a credit_transactions row. Costs, plans and packs live in the app_config table, edited at /admin (open to ADMIN_EMAILS, or any local user in dev) — never hard-coded in agent code. The admin page shows per-user credits used vs. real AI cost vs. revenue. In dev, accounts get 100,000 development credits but the ledger records everything exactly as in production. Set per-model prices with MILA_PRICE_* so cost estimates stay accurate.
This is the beginning of the README. Read the rest at the original. Read the full README ↗