A pnpm monorepo that runs the same GitHub Assistant chatbot through three different AI SDKs. Every app shares the same tool definitions, system prompt, and React chat frontend — only the backend SDK wiring differs.
| # |
App |
SDK |
| 1 |
apps/mastra |
@mastra/core |
| 2 |
apps/vercel-ai |
ai + @ai-sdk/openai |
| 3 |
apps/openai-agents |
@openai/agents |
# Install dependencies
pnpm install
# Configure environment
cp .env.example .env
# Fill in GITHUB_TOKEN and OPENAI_API_KEY
# Build the shared UI (required before running any app)
pnpm build:ui
# Run all apps in parallel
pnpm dev
# Or run a single app
cd apps/mastra && pnpm dev
Each app runs on its own port and serves both the API and the chat UI.
| Variable |
Required |
Description |
| GITHUB_TOKEN |
No |
GitHub PAT. The tools read public data without it; a token only raises the rate limit (60→5000/hr) and unlocks private repos. A blank/placeholder/invalid token falls back to anonymous access. |
| OPENAI_API_KEY |
Yes |
OpenAI API key |
agentum/
├── packages/
│ ├── tools/ # Shared GitHub tool definitions (pure functions, Zod schemas)
│ ├── prompt/ # Shared system prompt & message types
│ ├── server/ # Shared Hono server utilities (SPA mount)
│ └── ui/ # Shared React + Vite chat frontend
├── apps/
│ ├── mastra/
│ ├── vercel-ai/
│ └── openai-agents/
└── AGENTS.md # Architecture & design documentation
See AGENTS.md for full architecture details.