Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Oewang captures every transaction from receipts, chat, and CSV, then turns daily spending into clarity with AI — across personal and team workspaces.
FinanceTypeScript · DartGitHub @lazlanrafarOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Oewang is a personal finance tracker for everyone. AI-powered insights, simple transaction input, automatic categorization, receipts, wallets, and more.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Track daily money without manual spreadsheets.
oewang is a personal finance tracker for everyone. AI-powered insights, simple transaction input, automatic categorization, receipts, wallets, and more.
• Transactions - Daily income and expenses, organized and categorized
• AI Assistant - Ask anything about your finances in plain language
• Invoices - Professional invoices, payments tracked automatically
• Vault - Receipts and documents, organized and secure
• Multi-currency - Support for 150+ currencies
• Integrations - Telegram, and more coming soonRead the full README ↗Track daily money without manual spreadsheets.
oewang is a personal finance tracker for everyone. AI-powered insights, simple transaction input, automatic categorization, receipts, wallets, and more.
apps/ai, OpenAI-onlyapps/workerapps/native# Install dependencies
bun install
# Copy environment variables
cp .env.example .env
# Run migrations
bun run migrate
# Start development servers
bun run dev
All env vars live in a single root .env file. Never create .env files inside apps/* or packages/* — Turborepo surfaces them via turbo.json → globalEnv.
Copy the example and fill in your values:
cp .env.example .env
| Variable | Required | Description |
|---|---|---|
NODE_ENV | Yes | development | test | production |
DATABASE_URL | Yes | PostgreSQL connection string |
JWT_SECRET | Yes | HS256 signing secret — min 32 chars |
ENCRYPTION_KEY | Yes | AES-256-GCM key — exactly 32 chars |
All URL configuration uses NEXT_PUBLIC_* vars — they work on both the client (Next.js static replacement) and server (Bun/Node reads them as regular env vars). No separate APP_URL / API_BASE_URL duplicates needed.
| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_API_URL | Yes | Base URL of apps/api — without a trailing /v1 (e.g. http://localhost:3002). Used for OAuth callbacks, webhook registration, and the axios client. |
NEXT_PUBLIC_APP_URL | Yes | URL of apps/app (e.g. http://localhost:3000). Used for invite links and OAuth redirects. |
NEXT_PUBLIC_ADMIN_URL | Yes | URL of apps/admin |
NEXT_PUBLIC_WEBSITE_URL | No | URL of apps/website |
API_PORT | No | Port the API listens on (default 3002) |
Local dev
NEXT_PUBLIC_API_URL=http://localhost:3002 NEXT_PUBLIC_APP_URL=http://localhost:3000 NEXT_PUBLIC_ADMIN_URL=http://localhost:3001 NEXT_PUBLIC_WEBSITE_URL=http://localhost:3003Tunnel / production
NEXT_PUBLIC_API_URL=https://3002.yourtunnel.com NEXT_PUBLIC_APP_URL=https://app.oewang.com NEXT_PUBLIC_ADMIN_URL=https://console.oewang.com NEXT_PUBLIC_WEBSITE_URL=https://oewang.com
| Variable | Description |
|---|---|
REDIS_URL | redis://localhost:6379 — ioredis TCP connection, local or production |
| Variable | Required | Description |
|---|---|---|
JWT_EXPIRES_IN | No | Token lifetime (default 7d) |
GOOGLE_CLIENT_ID | No | Google OAuth — login via Google |
GOOGLE_CLIENT_SECRET | No | Google OAuth secret |
GITHUB_CLIENT_ID | No | GitHub OAuth — login via GitHub |
GITHUB_CLIENT_SECRET | No | GitHub OAuth secret |
All AI logic lives in apps/ai (Python/FastAPI) and is OpenAI-only —
no Anthropic/Gemini fallback chain.
| Variable | Description |
|---|---|
OPENAI_API_KEY | OpenAI API key (sk-proj-...) |
Used by apps/api vault uploads. Works with MinIO (local), Cloudflare R2, AWS S3, or any S3-compatible provider.
| Variable | Default | Description |
|---|---|---|
BUCKET_ENDPOINT | — | S3 endpoint URL |
BUCKET_REGION | us-east-1 | Bucket region |
BUCKET_ACCESS_KEY_ID | — | Access key |
BUCKET_SECRET_ACCESS_KEY | — | Secret key |
BUCKET_NAME | — | Bucket name |
Local:
docker compose up -dstarts MinIO on:9000. SetBUCKET_ENDPOINT=http://localhost:9000.
| Variable | Description |
|---|---|
TELEGRAM_BOT_TOKEN | Bot token from @BotFather |
TELEGRAM_WEBHOOK_SECRET | Optional shared secret for webhook signature verification |
NEXT_PUBLIC_TELEGRAM_BOT_USER | Bot username shown in the connect dialog (default OewangBot) |
You can reuse the same OAuth client as Google login. The Gmail service falls back to GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET automatically when the Gmail-specific vars are not set.
| Variable | Description |
|---|---|
GOOGLE_GMAIL_CLIENT_ID | Gmail-specific client ID — optional if GOOGLE_CLIENT_ID is set |
GOOGLE_GMAIL_CLIENT_SECRET | Gmail-specific client secret — optional if GOOGLE_CLIENT_SECRET is set |
One-credential setup (recommended): leave
GOOGLE_GMAIL_CLIENT_IDandGOOGLE_GMAIL_CLIENT_SECRETunset and add the following to the same OAuth client used for login:
- Redirect URI:
{API_BASE_URL}/v1/integrations/gmail/oauth-callback- Scopes on the OAuth consent screen:
gmail.readonly,userinfo.email
| Variable | Description |
|---|---|
MICROSOFT_CLIENT_ID | Azure app registration client ID |
MICROSOFT_CLIENT_SECRET | Azure app registration client secret |
Redirect URI to register:
{API_BASE_URL}/v1/integrations/outlook/oauth-callbackRequired API permissions:Mail.Read,User.Read,offline_access
The API exposes an MCP server at /mcp with a full OAuth 2.0 authorization flow. All OAuth endpoints are served directly from the API at {API_BASE_URL}/oauth/* — no separate app URL is required.
Requires: API_BASE_URL (for discovery documents and OAuth redirect URIs).
To connect ChatGPT: Apps → Add → Server URL →
{API_BASE_URL}/mcp
| Variable | Description |
|---|---|
RESEND_API_KEY | Resend API key (re_...) — used for transactional emails |
Indonesian payment gateway. Required for invoice payments and subscriptions.
| Variable | Description |
|---|---|
MAYAR_API_URL | https://api.mayar.club/hl/v1 |
MAYAR_API_KEY | Mayar API key |
MAYAR_WEBHOOK_TOKEN | Webhook verification token |
| Variable | Description |
|---|---|
CURRENCYFREAKS_API_KEY | CurrencyFreaks key — used for exchange rate sync |
| Variable | Default | Description |
|---|---|---|
SENTRY_DSN | — | Sentry DSN for apps/api error tracking |
SENTRY_AUTH_TOKEN | — | Sentry auth token for source map uploads |
NEXT_PUBLIC_SENTRY_DSN | — | Sentry DSN for Next.js apps |
LOG_LEVEL | info | Pino log level: trace | debug | info | warn | error | fatal |
LOG_PRETTY | true | Pretty-print logs in development |
LOGS_DIR | — | Directory for log file output |
| Variable | Description |
|---|---|
PLAYWRIGHT_USER | Test account email for Playwright E2E suite |
PLAYWRIGHT_PASS | Test account password |
For the full env var reference (including production webhook and third-party payment setup), see docs/ENV_VARS.md.
| App | Description | Port |
|---|---|---|
apps/app | Main application | 3000 |
apps/admin | Admin dashboard | 3001 |
apps/api | REST API (ElysiaJS) | 3002 |
apps/website | Marketing website | 3003 |
apps/ai | AI service (FastAPI/Python) | 3004 |
apps/worker | Background jobs (Go/asynq) | 3005 |
apps/native | Mobile app (Flutter) | — |
MIT
© 2026 Latoe. All rights reserved.