- Bot-authored commits. Commits made by event-driven Flights show as
your-bot[bot]instead of as whichever developer happened to trigger them. That keeps audit trails clean and makes review history easier to read. - Identity that outlives any person. When a developer leaves the team their tokens get rotated, but a Flight that runs nightly shouldn’t break. A Service Profile is independent of any human, so it keeps working.
- Scoped permissions. Grant the service profile authority through tenant-bindings or grants on the target workspace. The profile’s own Access Grants control who can assume it, not what it can do elsewhere.
murmur set; see service-profile for the full schema.
1. Create the profile
- Sign in at cloud.murmur.dev.
- Go to Organization Settings → Automations → Service Profiles.
-
Click New Service Profile and fill in the form:
- Name (required, immutable): lowercase letters, digits, and hyphens. The name appears in audit logs and grants.
- Git Author Name: defaults to
{app_slug}[bot]. This is what shows in commit metadata. - Git Author Email: defaults to
{app_id}+{app_slug}[bot]@users.noreply.github.com. GitHub recognizes this format specifically as a bot noreply, which is how it gets the App’s bot avatar to appear on commits. Don’t change the format unless you know what you’re doing. - Claude Credentials (required): click +, name the secret (e.g.
ANTHROPIC_KEY), and paste an Anthropic API key or OAuth token. The credential is encrypted and stored as a tenant secret. The profile gets its own credential because it’s an independent identity, not because of any developer’s account. - Access Grants (optional): name the users or groups permitted to assume this service profile, using
service-profile.assume. Empty grants add no resource-specific access; existing tenant-bindings still apply.
- Click Create Profile.
2. Use it when spawning
Choose the service profile in the Spawn dialog’s identity picker. The agent uses its bot author and configured credentials. Requests use the runtime’s own permissions plus grants extended live from the service profile; see runtime extension. For Flights, attach the profile on the Flight resource itself and every agent the Flight launches inherits the identity:Edit, delete, audit
- Edit: click any row. Every field except Name is editable. Changing a credential rotates it; existing agents keep using the version they were spawned with.
- Delete: hover and click the trash icon. Platform-managed service profiles cannot be deleted. Deleting one leaves its running agents in place, stops grants extending from that identity on subsequent requests, and prevents new spawns from referencing it.
- History: click the clock icon to roll back to a previous version. Useful if a credential rotation goes wrong or someone edits the grants in a way that breaks a Flight.
Related
Authorization
Full permission model, including
service-profile.assume.Flights
Attach a Service Profile to a Flight.