Skip to main content
Kepler works with what is already on your machine: kubectl, cloud CLIs, ssh, the files in your workspaces. When you need more, you connect an integration, drop in a skill, teach it a command, add a hook, or install a plugin that bundles several of these. Everything except integrations and secrets is managed in one place, Settings > Customize. See Customize.

Integrations (MCP servers)

An integration gives Kepler tools for one part of your stack: query Grafana, list PagerDuty incidents, read a GitHub pull request, describe an EC2 instance. Integrations speak MCP, so anything with an MCP server can be connected. Open Settings > Tools & MCP. The catalog lists the integrations Kepler knows how to set up:
Settings > Tools & MCP in Kepler. Progressive tool discovery at the top, then Configured with two integrations marked Enabled, a Detected on this machine row counting 19 command-line tools, and the catalog below starting with RubixKube and Grafana.

Add an integration

1

Pick it from the catalog

Open Settings > Tools & MCP and choose the integration. Each card tells you what credential it needs.
2

Add the credential as a secret

Kepler stores tokens in your operating system keychain and refers to them by name. See Secrets below.
3

Ask for it in chat

You do not need to restart anything. On the next turn, Kepler can use the new tools.
You can also skip the settings page and ask directly:
Anything not in the catalog can be added as a custom MCP server on the same page. The page also lists the command-line tools it detected on your machine, such as kubectl, helm and your cloud CLIs, which Kepler can use directly without any setup.

Signing in

Integrations that sign in through your browser, such as Spike, show a Connect button. So does a remote MCP server you add yourself that needs a sign-in, even when it does not say so. Kepler asks the server, without opening a browser, and the server’s row shows Sign in until you connect.
Settings > Tools & MCP in Kepler. Under Configured, Kubernetes is Enabled, and slack-demo, a remote server added by hand at https://mcp.slack.com/mcp, is marked Custom with a Sign in badge. Its expanded row reads Remote · HTTP, with Edit, Connect, a delete button and its switch.
When you add a remote server under Add server, pick OAuth (browser) if you know it signs in through a browser, then press Connect on its row after saving. Leave it on Token / header with no headers and Kepler checks with the server for you. Once you are signed in:
  • Kepler renews the sign-in in the background, the way the MCP standard describes, so you are not asked to reconnect an hour later.
  • A brief network problem does not show Reconnect. If a server turns down a sign-in in the middle of a run, Kepler renews it and tries once more.
  • RubixKube still asks you to reconnect about once a day, because its server does not yet issue the token Kepler needs to renew the sign-in.
Some integrations take a URL and a key instead. For Oodle, paste the MCP URL from Oodle’s integration card and an API key. The key decides what Kepler can do there: a Viewer key only reads. Kepler asks before an integration call that changes something, such as Spike resolving, escalating or muting an incident, or Oodle saving a dashboard. A server whose sign-in settings Kepler cannot use shows Config error on its row, with what to fix, and does not start until it is fixed. See Troubleshooting.

What integrations look like in practice

MCP tools ask for your approval before they run, unless you change that in Settings > Permissions. The approval shows the tool and its arguments so you can see exactly what will be sent.
Large servers hand over their tools a few at a time, so the conversation stays fast even with many integrations connected. Progressive tool discovery in Settings > Tools & MCP controls this. Leave it on.

Secrets

Credentials never sit in a config file. Settings > Secrets keeps named credentials in your operating system keychain. An integration config only ever holds the name, written as ${NAME}.
1

Add a credential

In Settings > Secrets, add a name such as GRAFANA_TOKEN and paste the value.
2

Reference it by name

In the integration’s settings, use ${GRAFANA_TOKEN} wherever the token is needed.
The Secrets page shows which integrations use each credential, so you know what breaks before you delete one.

Skills

A skill is a capability written in Markdown: a SKILL.md file, and optionally scripts beside it, in its own folder. Kepler loads a skill the moment it is needed, or when you trigger it as a slash command. Skills live in ~/.kepler/skills for everything you do, or in .kepler/skills inside a workspace for one project. Skill folders made for other agents work as they are. If you have skills in Claude Code’s folders, Settings > Customize lists them under From Claude Code so you can import them. A skill worth writing is one you would otherwise explain every time:
Save that as ~/.kepler/skills/pod-crashloop-triage/SKILL.md. It appears in the / menu as /pod-crashloop-triage, and Kepler also reaches for it on its own when the situation fits. Manage skills in Settings > Customize, under the Skills chip: create one from a template, import one, edit the file, add a script.

Custom slash commands

A custom command is a prompt you keep retyping, saved under a name. The quickest way to make one is to describe it:
Kepler drafts the command and saves it. From then on you call it by name, with arguments:
Commands are Markdown files. The file name is the command name, and $ARGUMENTS inside the file is replaced by whatever you type after the command. See Commands and shortcuts for the full built-in list.

Specialist agents

A specialist is a read-only agent with its own persona and tools. Kepler builds one-off specialists on its own when it fans out an investigation, so you do not have to think about them. Save one yourself when you ask the same kind of question often:
Saved specialists appear in Settings > Customize, under the Agents chip, where you can also write one by hand with New agent. Ask for parallel work and Kepler hands side questions to specialists that run in the background while the main conversation keeps moving:
Up to six background lanes run at once in one conversation, and eight across the app. Ask for more and the rest wait in a queue and start in order as others finish. A queued lane shows a clock and “queued” on its card, and you can cancel it like a running one.

Hooks

A hook runs your own check at a moment in Kepler’s work: before a tool runs, when a message arrives, when a run ends. It can block, ask you first, or add context. It can never approve anything. Describe one and Kepler drafts it:
See Hooks.

Plugins

A plugin bundles skills, commands, agents, hooks, MCP servers and chat channels, so a whole toolkit installs in one step. You see everything it runs before anything runs.
See Plugins.

Identity on your channels

When Kepler reaches you on WhatsApp, Slack, Telegram, Discord or a plugin’s channel, it signs its replies with a name and emoji you choose under Signature in Settings > General, so its messages never read as yours. See Chat from your phone.
Standing rules are listed under Settings > Customize as coming soon. They are not available in this release.

Where to go next

Permissions

Set MCP servers to allow, ask or block.

Commands and shortcuts

Every built-in slash command.

Everyday workflows

Prompts that use your integrations.

Customize

Plugins, skills, hooks, commands and agents in one place.