Your agent, one click from every app.
Setu means bridge. It handles sign-in, token storage and API calls, so your agent can create a GitHub issue or post to Slack without you building any of that.
Open source under Apache-2.0. A hosted version is coming; for now you run it yourself.
What you no longer build
Sign-in for every app
Your users click Authorize once. You never register an OAuth app or handle a redirect.
Token storage and refresh
Tokens are encrypted at rest, renewed before they expire, and erased when a user disconnects.
Tool definitions and calls
Search the catalog, hand the tools to your model, and run its calls through one endpoint with typed errors.
Three steps in code
Connect a user, find a tool, run it. The same flow works from TypeScript, Python, plain REST, or any MCP client such as Cursor.
- GitHub
- Slack
- Notion
- Linear
- Discord
- HubSpot
- Asana
- Airtable
// 1. Send the user to authorize
const conn = await setu.connections.initiate({
userId: "user_1", toolkit: "github",
});
console.log(conn.connectUrl);
await conn.waitUntilActive();
// 2. Give your model the right tools
const tools = await setu.tools.search(
"create an issue", { format: "openai" },
);
// 3. Run what it calls
await setu.execute({
userId: "user_1",
action: "github.create_issue",
input: { owner: "acme", repo: "app", title: "Bug" },
});
Open source, and honest about its stage
Run it where you want
One Docker command starts the API and database. Bring your own OAuth apps, keep the keys.
Add an app in one folder
Integrations are short YAML files checked by a linter. Most take under an hour to add.
Pre-1.0
The eight launch integrations haven't been tested against every provider edge case yet. Issues and pull requests are welcome.