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.
AI multi-agent stock & event markets system with next-day price predictions and comprehensive trading insights
FinancePython · TypeScriptGitHub @OpenSourceAGIOnlineOwner 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
💱 Invest with news debate agents, 🤑 algorithmic entry/exit strategies, 💹 execute on Alpaca, 🔮 copy trade Polymarket/Kalshi prediction markets
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
AI-powered multi-agent trading system for comprehensive stock & prediction markets analysis and automated trading decisions.
Auto Investment Broker combines specialized LLM agents to analyze markets, debate strategies, and execute trades. It features real-time data processing, a "Bull vs. Bear" debate engine, and a modern dashboard for visualization.Read the full README ↗AI-powered multi-agent trading system for comprehensive stock & prediction markets analysis and automated trading decisions.
Auto Investment Broker combines specialized LLM agents to analyze markets, debate strategies, and execute trades. It features real-time data processing, a "Bull vs. Bear" debate engine, and a modern dashboard for visualization.
Full documentation lives at autoinvestment.broker/docs
Engineering notes that are not part of the published docs live in
devdocs/.
The repo is a Turborepo workspace. Every command below can be run
from the repo root, and turbo fans it out to the workspaces that define it.
.
├── apps/
│ └── ai-broker-web/ # Next.js app (UI, API routes, docs, D1 schema & migrations)
├── packages/
│ ├── investing/ # Trading agents, market data, prediction markets
│ ├── ai-broker-api-client/ # Generated API client
│ ├── fin-data-api/ # Financial data API service
│ └── mcp-server/ # MCP server generated from the OpenAPI spec
├── devdocs/ # Internal engineering notes
├── third-party-trading-bots/ # Vendored reference bots (see its README)
├── turbo.json # Task graph & caching
├── tsconfig.base.json # Shared TypeScript compiler options
├── README.md
├── CHANGELOG.md
└── LICENSE.md
npm install # installs every workspace
npm run dev # turbo run dev
npm run build # turbo run build (packages first, then the app)
npm run test # turbo run test
npm run test:coverage # turbo run test:coverage, then merge into coverage/lcov.info
# Scope a command to a single workspace
npx turbo run build --filter=ai-broker-web
npx turbo run test --filter=investing
npm run test:coverage runs each workspace's suite with coverage on (Vitest for the app,
investing and the API client; Jest for fin-data-api) and merges the
per-workspace LCOV reports into coverage/lcov.info with repository-root-relative paths.
CI runs the same command on every pull request in
.github/workflows/test.yml and uploads that single report to
Codecov. The upload needs a
CODECOV_TOKEN repository or organization secret. Thresholds, the per-workspace component
breakdown, and the paths excluded from coverage (vendored bots, generated SDKs, migrations) live
in codecov.yml; the project and patch checks are informational, so a coverage dip
never blocks a merge on its own.
Each workspace documents itself:
| Workspace | README |
|---|---|
| The app | apps/ai-broker-web |
| Trading agents & market data | packages/investing |
| Financial data API | packages/fin-data-api |
| Generated API client | packages/ai-broker-api-client |
| MCP server | packages/mcp-server |
| Cron routes | apps/ai-broker-web/app/api/cron |
| Engineering notes | devdocs |
| Agent/Team | Role |
|---|---|
| Analyst Team | Gathers data: Fundamentals, Sentiment (Social), News, & Technical Analysis. |
| Researcher Team | Conducts "Bull vs. Bear" debates; assesses risk. |
| Trader Agent | Synthesizes reports to propose trades. |
| Portfolio Manager | Final decision maker; manages risk and position sizing. |
The full guide — creating the D1 database, secrets, Git-connected builds, custom domains, rollbacks, and a deployment checklist — is at docs.autoinvestment.broker/docs/deployment.
The app runs on Cloudflare Workers via vinext — the Next.js API surface reimplemented as a Vite plugin — with D1 as the database, better-auth for authentication, and Email Workers for transactional email (verification, password reset, invitations).
# Local dev (vinext dev server; the server runs in workerd, so D1 & email
# bindings from wrangler.jsonc are live)
npm run dev
# Apply drizzle migrations to D1
npm run db:migrate:local # local miniflare D1
npm run db:migrate:remote # production D1 (ai-broker-db)
# Preview the production worker locally
npm run preview
# Deploy
npm run deploy
Setup notes:
apps/ai-broker-web/vite.config.ts (there is no next.config): the vinext() plugin holds the Next.js options, and @cloudflare/vite-plugin runs the server environment in workerd. apps/ai-broker-web/worker/index.ts is the Worker entry — it delegates to vinext's fetch handler and adds the cron scheduled handler.npm run build therefore ends with node .github/scripts/write-root-deploy-config.mjs, which mirrors the .wrangler/deploy/config.json redirect that @cloudflare/vite-plugin writes inside apps/ai-broker-web up to the repository root, so npx wrangler deploy and npx wrangler versions upload resolve the built Worker instead of failing with "Missing entry-point to Worker script or to assets directory". Pointing the Workers Builds root directory at apps/ai-broker-web is the alternative, but then the workspace packages it depends on are no longer built.apps/ai-broker-web/wrangler.jsonc: DB (D1 database ai-broker-db), SEND_EMAIL (Email Workers), cron triggers for the /api/cron/* routes. Read them in server code with import { env } from "cloudflare:workers".cache: { cdn: cdnAdapter() } in vite.config.ts, "cache": { "enabled": true } in wrangler.jsonc). Add data: kvDataAdapter() and a VINEXT_KV_CACHE KV binding if the "use cache" data cache is needed.apps/ai-broker-web/.env (vinext reads .env* files next to the app, following Next.js precedence). drizzle.config.ts additionally falls back to a root .env.wrangler secret put BETTER_AUTH_SECRET (likewise GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, CRON_SECRET)./admin (user directory and database controls) is gated on , a comma-separated allowlist of addresses — . With it unset nobody is an admin, including the first registered user, so a deployment that forgets it simply has no admin rather than an open one.third-party-trading-bots/ vendors ten
open-source trading bots, market-data services, and exchange clients as prior
art. They are outside the turbo task graph and are never built or deployed —
they are read for how other people size positions, batch LLM calls, model
prediction markets, and normalize venue APIs. Each subdirectory keeps its own
upstream license and README; the index
describes what each one contributes.
| Project | What it is |
|---|---|
| Kalshi-Vibe-Bot | Autonomous Kalshi binary-markets bot: local vetting, batched Gemini/Grok calls, Kelly sizing, stop-loss-only exits |
| Polymarket-BTC-15-Minute-Trading-Bot | Seven-phase NautilusTrader bot for 15-minute BTC markets with signal fusion and self-tuning weights |
| Prediction-Markets-Trading-Bot-Toolkits | Rust/Tokio execution core running ten strategies across seven venues through one adapter stack |
| ai-hedge-fund | Eighteen-agent research fund modeled on named investors; generates orders, never trades |
| debate-agents | LangGraph "bull vs. bear" debate graph — the ancestor of this repo's debate engine |
| fin-data-api-python | OpenBB Platform core plus ~35 data providers behind one fetcher contract |
| kalshi-bot-api | PyKalshi — typed Kalshi client with WebSocket streaming and pandas output |
ADMIN_EMAILSwrangler secret put ADMIN_EMAILSEMAIL_FROM sender on a verified domain and recipient destination rules configured; without the binding, messages are logged instead of sent so local flows still complete.DB binding; outside Workers (maintenance scripts, CI, drizzle-kit) the same D1 database is reached over its REST API, which needs CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_D1_TOKEN, and optionally CLOUDFLARE_DATABASE_ID. There is no libsql/Turso, Postgres, or local sqlite fallback.DB binding rather than a TCP database client, and read bundled JSON through an import rather than fs. Adding either back is what breaks a deploy that builds cleanly.find apps/ai-broker-web/dist/server -name '*.js' -not -path '*/ssr/*' | xargs cat | gzip -9 | wc -c after a build.| TypeScript hedged-arbitrage bot for Polymarket 15-minute binaries |
| poly-bot-openclaw | OpenClaw agent framework with PnL-driven survival states and x402 machine payments |
| polymarket-exec-api | pmxt — "the ccxt for prediction markets", one API over six venues in Python and TypeScript |