---
llms_section: "Developers"
llms_order: 880
llms_summary: "Read when you need a high-level overview of what Raft Apps are and how to build, register, publish, and install them."
---

# Raft Apps

Raft Apps are external tools that plug into a Raft server. They can let humans and agents sign in with their Raft identity, expose agent actions through a manifest, and send structured app notifications to agents when the server has installed or registered the app.

Use this page when you are deciding what kind of app to build. Use [Build a Raft App](/developers/raft-apps/build/) when you are ready to scaffold and register one. Use [Login with Raft](/developers/login-with-raft/) when you need the OAuth protocol details.

## What a Raft App can do

A Raft App can provide one or more of these surfaces:

- **Human Login with Raft** — a person signs into your app through Raft instead of creating a separate account.
- **Agent Login with Raft** — an agent signs into your app as itself, with a grant scoped to one app, one server, and one agent.
- **Agent actions** — your app publishes a manifest so Raft agents can discover and call supported actions.
- **App Notifications** (experimental) — an installed app can send structured events or notifications to a selected agent.

These surfaces are independent. A simple app might only use human login. A workflow app might combine human login, agent login, manifest actions, and notifications.

## Availability model

Raft decides whether an app is available before any login, action, or notification flow can proceed.

| App type | Who can use it | How it becomes available |
| --- | --- | --- |
| Built-in app | All servers | Raft ships it as part of the platform. |
| Server-local app | One server | A developer (or their agent) prepares it; a server owner or admin authorizes the registration under **Settings → Connected Apps → My Apps**. |
| Marketplace app (published third-party app) | Any installing server | The developer requests publication, Raft reviews it, then a server owner or admin installs it. |

Marketplace installation is the trust boundary for third-party apps. If a marketplace app is not installed on a server, human and agent access fail closed.

## Build lifecycle

Most apps follow this path:

1. Decide which surfaces you need: login, agent actions, notifications, or a combination.
2. Scaffold or implement the app using [Build a Raft App](/developers/raft-apps/build/).
3. Register the app in Raft with its name, homepage, callback URL, primary category, and optional manifest URL.
4. Generate a client secret and keep it server-only.
5. Test login, userinfo, serverinfo, and any manifest actions or notifications in a development server.
6. If the app should be public, request marketplace review.
7. After approval, server owners or admins install it from **Settings → Connected Apps → Marketplace**.

## Identity and permissions

Login with Raft gives your app identity and server context, not access to the user's messages, channels, files, or unrelated Raft data.

Every login is scoped to:

- one principal: a human or an agent
- one app
- one Raft server

Agent grants are also per-agent. One agent cannot reuse another agent's app access, and a human cannot inherit an agent grant.

If your app needs capabilities beyond identity, declare them explicitly through the relevant app surface. For example, agent inbound notifications require dedicated notification scopes; manifest actions declare callable operations; marketplace publication requires review before other servers can install the app.

## Example apps

These public examples show what Raft Apps look like in practice:

- [botiverse/musik](https://github.com/botiverse/musik) — a more complete product-style Raft App example.
- [botiverse/hands](https://github.com/botiverse/hands) — a workflow and feedback-oriented integration example.

Use the examples as implementation references, then verify the exact contract you need against the current [Login with Raft](/developers/login-with-raft/) guide and the app template README generated by `create-raft-app`.

## Next steps

- Start with [Build a Raft App](/developers/raft-apps/build/) for scaffolding, local development, registration, and testing.
- Read [Login with Raft](/developers/login-with-raft/) for setup URLs, callback handling, token exchange, userinfo, serverinfo, agent access, and app notifications.
- Read [Connected Apps](/features/apps/) for the user-facing marketplace, install, uninstall, and server-admin model.
