Connect four real services, delegate OAuth to your users, and ship a working agent in minutes. Clone the sample, swap in your tools, and go from zero to multi-connector in a single afternoon.
This repo uses a single SCALEKIT_USER_ID env var to simulate one user. In production, pass each user's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.

Three things you'd otherwise build: OAuth, token storage, refresh. Handled.
token = client.agents.get_token(
user_id, "gmail"
)# No token table.
# No secrets in .env.
# No DB columns for refresh tokens# No cron jobs for refresh.
# No try/except on 401s.
# No expiry checks.Each one runs on delegated identity, scoped per user.
Don't sweat the integration. Point a coding agent at the repo. It clones, swaps in your connectors, and adds new steps for you.
Clone github.com/scalekit-inc/meeting-prep-agent-example and adapt it to my stack.
Tools I use: Google Calendar, HubSpot, Gmail, Slack
Trigger: before every external meeting. Deliver: post the brief to my Slack
Steps:
1. Create a Scalekit AgentKit account. For each tool, add a Connection named meeting-prep-{tool} — the code resolves connections by name.
2. For any tool I've changed, mirror an existing lookup_*.py module: get_or_create_connected_account → execute_tool(tool_name, identifier, connected_account_id, tool_input) → read resp.data. Find exact tool names at docs.scalekit.com/agentkit.
3. Keep delegated identity — every call passes identifier=SCALEKIT_USER_ID. No service accounts, no shared tokens.
4. Wire each new step into process_meeting() in main.py.
5. Run python main.py, open the printed authorization links once, then send a test brief to my Slack channel.