A standalone, multi-tenant actions and authentication gateway for AI agents.
Overslash sits between your AI agents and the outside world. It handles the parts that every agent platform ends up reinventing badly:
- 🔐 Secret management — encrypted vault, versioned, never returned via API
- 🔑 OAuth flows — connect once, reuse across agents
- 🧬 Permission chains — User → Agent → SubAgent, with live inheritance
- 🙋 Human approvals — gaps in the permission chain bubble up to a human
- 🌐 Authenticated HTTP execution — agents call services without ever touching the credentials themselves
You point your agent at Overslash, declare what services and scopes it needs, and Overslash takes care of authentication, authorization, approval, and execution.
Overslash is under active development and not yet ready for production use. APIs, schemas, and behaviors will change without notice. Self-host at your own risk, and expect breakage. We do not yet provide upgrade guarantees, security advisories, or stability commitments.
If you want to follow along, kick the tires, or give feedback — welcome! If you need a stable production gateway today — wait for the first tagged release.
- Backend — Rust + Axum REST API (
crates/overslash-api), singleoverslashbinary (crates/overslash-cli) withserve/web/mcpsubcommands, MCP stdio server (crates/overslash-mcp) - Database — PostgreSQL with versioned secrets and audit trail
- Dashboard — SvelteKit web UI for managing users, agents, secrets, connections, and approvals
- Service registry — YAML descriptions of third-party APIs
(
services/*.yaml), so actions are human-readable - Three execution modes — raw HTTP, connection-based, and high-level service+action calls
For the full product vision, see SPEC.md. For what's actually implemented today, see STATUS.md. Live production health is at status.overslash.com.
The fastest way to try Overslash is to grab a prebuilt binary, point it at
a Postgres instance, and start it. No clone, no Rust toolchain, no make.
Grab the latest release for your platform from github.com/overfolder/overslash/releases:
overslash-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz— Linux x86_64overslash-vX.Y.Z-aarch64-unknown-linux-gnu.tar.gz— Linux arm64overslash-vX.Y.Z-aarch64-apple-darwin.tar.gz— macOS Apple Siliconoverslash-vX.Y.Z-x86_64-pc-windows-msvc.zip— Windows x86_64
Each release also publishes a SHA256SUMS.txt — verify with:
sha256sum -c SHA256SUMS.txt --ignore-missingExtract the archive — you get a single overslash binary with the dashboard
embedded.
Any Postgres 14+ instance works. A throwaway one in Docker:
docker run -d --name overslash-pg \
-e POSTGRES_PASSWORD=overslash -e POSTGRES_DB=overslash \
-p 5432:5432 postgres:17Set the three required env vars and run the binary. The API auto-applies migrations on first start.
export DATABASE_URL=postgres://postgres:overslash@localhost:5432/overslash
export SECRETS_ENCRYPTION_KEY=$(openssl rand -base64 32)
export SIGNING_KEY=$(openssl rand -base64 32)
./overslash webDashboard at http://localhost:3000. Stop with Ctrl+C; the binary leaves
no state outside Postgres.
This path is enough to try Overslash. For development — hot-reload, tests, writing migrations — see Running locally from source.
- Rust (toolchain pinned in
rust-toolchain.toml) - Docker or Podman (with
docker compose/podman-compose) - Node.js + npm (for the dashboard)
make
# Run the full dev stack (Postgres + API + dashboard, hot-reload). Creates the
# shared `overfolder-shared` podman network, writes .env.local in worktrees, and
# the API auto-runs database migrations on startup. `make dev` is an alias.
make local
# Just need Postgres (e.g. to run the test suite)?
make local-dbThat's it. The API and dashboard will be available on their default local
ports (see docker/docker-compose.dev.yml).
Working on migrations or SQL queries? A few Makefile targets (
make new-migration,make sqlx-prepare,make check-sqlx) need thesqlx-cliRust binary:cargo install sqlx-cli --no-default-features --features postgres --lockedYou don't need it just to run Overslash — the API auto-runs migrations on startup.
| Command | What it does |
|---|---|
make local |
Start everything (Postgres + API + dashboard); creates the shared overfolder-shared network |
make dev |
Alias of make local |
make local-db |
Start only Postgres |
make dev-api |
Start Postgres + API only |
make dev-dashboard |
Run the SvelteKit dev server (no container) |
make migrate |
Apply database migrations (rarely needed — the API auto-migrates on boot) |
make test |
Run the Rust test suite |
make check / make fmt / make clippy |
Lint and formatting |
make local-down / make down |
Stop dev services |
make testIntegration tests need Postgres running (make local-db first). When running the
full suite directly with cargo test, pass --test-threads=4 to avoid
exhausting the Postgres connection pool.
If you work on Overslash from multiple git worktrees in parallel, make local
(and make local-db) auto-detects the worktree and spins up an isolated
Postgres on a unique port.
No manual config required. Tear down a worktree's containers with
make worktree-clean.
Releases are published from GitHub Actions. To cut one, tag and push:
git tag v0.1.0
git push origin v0.1.0The release workflow builds binaries for
linux-x64, linux-arm64, macos-arm64, and windows-x64, generates
SHA256SUMS.txt, and publishes them to
github.com/overfolder/overslash/releases.
For a dry-run, trigger the workflow manually with a -test suffix on the
version (e.g. v0.1.0-test) — it builds and uploads artifacts to the run
but does not publish a release.
Overslash ships an MCP Authorization Server at POST /mcp and /oauth/*. Any
MCP client that speaks the Streamable-HTTP transport — Claude Code, Cursor,
Windsurf, etc. — connects directly. On first use, the client opens a browser
for the OAuth flow; you sign in, pick or name an agent for that client to
act as, and it's done. The client is now bound to a scoped agent identity owned
by your user, not to your user directly — so its actions are auditable
separately, Layer 2 approvals route correctly, and you can revoke the agent
without touching your own account.
claude mcp add --transport http overslash https://<your-overslash>/mcpRun any Overslash tool (overslash_search, overslash_auth whoami, …) and
Claude Code handles the OAuth dance. For local dev, the URL is
http://localhost:3000/mcp.
Works with Claude Code and any other editor that consumes the MCP standard config format (Cursor, Windsurf, etc. with their equivalent file names):
{
"mcpServers": {
"overslash": {
"type": "http",
"url": "https://<your-overslash>/mcp"
}
}
}Some MCP clients accept an npx-style launcher. The ecosystem's canonical
launcher for adding an HTTP MCP server is still settling — check your client's
docs for the current incantation. If yours doesn't advertise one, stick to the
two options above; no Overslash-specific npx package is published.
For editors that don't speak Streamable-HTTP MCP yet, the overslash mcp
subcommand is a 1:1 stdio↔HTTP pipe. Run overslash mcp login once to mint a
token, then point the editor's MCP config at the overslash binary. Details
in docs/design/mcp-oauth-transport.md.
When the browser opens during first-time setup, Overslash asks whether to create a new agent for this client or reuse an existing one. That agent — not your user — is what the MCP client authenticates as on every subsequent call. You can rename, revoke, or scope it from the dashboard at any time, and repeat logins from the same client skip the consent screen by reusing the bound agent.
crates/ Rust workspace (overslash-core, overslash-db, overslash-api, overslash-mcp, overslash-cli)
dashboard/ SvelteKit web UI
services/ Service registry YAML definitions (MIT licensed)
docs/ Design docs and architecture notes
docker/ Local dev compose files
infra/ OpenTofu/Terraform for cloud infra
SPEC.md Product specification (the target)
STATUS.md What's actually deployed (reality)
DECISIONS.md Settled architectural decisions
TODO.md Active work
For deeper navigation, see CLAUDE.md.
Overslash is source-available, not strictly open-source.
- The core (everything in this repo by default) is licensed under the Elastic License 2.0 — free to use, self-host, modify, and use commercially, except you may not offer Overslash as a hosted/managed service to third parties.
- The service registry YAMLs in
services/are licensed under MIT. - SDKs and client libraries will be released under a more permissive license (TBD).
See LICENSING.md for the full explanation, or LICENSE and services/LICENSE for the legal text.
For commercial licensing (e.g. if you want to offer a managed Overslash service), contact Overspiral S.L.
Copyright © 2026 Overspiral S.L. — built in 🇪🇸.