OpenPoke is a simplified, open-source take on Interaction Company’s Poke assistant—built to show how a multi-agent orchestration stack can feel genuinely useful. It keeps the handful of things Poke is great at (email triage, reminders, and persistent agents) while staying easy to spin up locally.
- Multi-agent FastAPI backend that mirrors Poke's interaction/execution split, powered by OpenRouter.
- Gmail tooling via Composio for drafting/replying/forwarding without leaving chat.
- Trigger scheduler and background watchers for reminders and "important email" alerts.
- Next.js web UI that proxies everything through the shared
.env
, so plugging in API keys is the only setup.
- Python 3.10+
- Node.js 18+
- npm 9+
-
Clone and enter the repo.
git clone https://github.com/shlokkhemani/OpenPoke cd OpenPoke
-
Create a shared env file. Copy the template and open it in your editor:
cp .env.example .env
-
Get your API keys and add them to
.env
:OpenRouter (Required)
- Create an account at openrouter.ai
- Generate an API key
- Replace
your_openrouter_api_key_here
with your actual key in.env
Composio (Required for Gmail)
- Sign in at composio.dev
- Create an API key
- Set up Gmail integration and get your auth config ID
- Replace
your_composio_api_key_here
andyour_gmail_auth_config_id_here
in.env
-
(Required) Create and activate a Python 3.10+ virtualenv:
# Ensure you're using Python 3.10+ python3.10 -m venv .venv source .venv/bin/activate # Verify Python version (should show 3.10+) python --version
On Windows (PowerShell):
# Use Python 3.10+ (adjust path as needed) python3.10 -m venv .venv .\.venv\Scripts\Activate.ps1 # Verify Python version python --version
-
Install backend dependencies:
pip install -r server/requirements.txt
-
Install frontend dependencies:
npm install --prefix web
-
Start the FastAPI server:
python -m server.server --reload
-
Start the Next.js app (new terminal):
npm run dev --prefix web
-
Connect Gmail for email workflows. With both services running, open http://localhost:3000, head to Settings → Gmail, and complete the Composio OAuth flow. This step is required for email drafting, replies, and the important-email monitor.
The web app proxies API calls to the Python server using the values in .env
, so keeping both processes running is required for end-to-end flows.
server/
– FastAPI application and agentsweb/
– Next.js appserver/data/
– runtime data (ignored by git)
MIT — see LICENSE.