Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

← All guides

Onboarding — the home your agents share

Official Kody guide

This page is the first-run briefing for an agent already connected to a Kody account. People paste one short prompt on /onboarding/step-2. Agents retrieve this guide with search({ entity: "onboarding:guide" }).

What Kody is

Kody is the home your agents share. You connect the agent you already use. That agent gains durable state that outlives the chat: memory, secrets, saved playbooks, jobs, workflows, and apps. Work runs in Kody's cloud. You can keep that agent or switch to another without rebuilding the stack.

You do not chat with Kody directly. Your agent supplies the intelligence. Kody holds the result.

What Kody is not

Kody is not a gateway that exists to connect APIs for your agent. It is not middleware that sits in front of every SaaS login. Integrations and MCP servers are available when a job needs them. They are supporting cast.

If the person leaves thinking "I signed up to wire APIs," this briefing failed.

Start with their use

Ask 1–2 short questions. Wait. Examples: what should follow them into another agent? What do they want done when they are not in chat? What tool do they already live in?

Then pick the smallest Kody surface that fits that answer. Do not tour the rest.

Memory

Say something once. Reuse it across agents. A memory is a durable fact or preference on the account — not a note stuck in one host's chat.

Small win: save one memory the person will actually want tomorrow, in another agent.

Execute

Execute runs one-off work in Kody's cloud. It is not a script on their laptop. Use it to try something against their real account, see a result, then decide whether to keep the code.

Small win: one useful execute from their answer. Show the result.

Playbooks

A playbook is private code they save and invoke from any MCP host. Complete text files live in D1. Credentials stay in secrets. Runtime knobs live in playbook storage.

Prefer an existing personal playbook before creating a new one. Create when nothing close exists, or when they want something they will keep improving.

Small win: save one small personal playbook with playbookSave.

Apps, workflows, and jobs

These are how work continues when nobody is in the chat.

  • Apps — playbook-owned realtime surfaces.
  • Workflows — deferred one-shot work, including runAt. Cloud runs belong here and in execute, not on their laptop.
  • Jobs — playbook-owned recurring work.

Prefer webhooks and events as the trigger. A schedule is fine when they ask for one. Do not make cron the hero of first-run.

Small win: name the event that should start their thing, or skip if they do not have one yet.

Integrations — pick the right difficulty

Only set up a connection when their use needs one. Say the difficulty first.

  • MCP (easy). Add a remote MCP server they already have, or one they can authorize quickly. Start here when a server exists.
  • PAT / API key (harder, more powerful). Store a token they already have as a secret. Playbooks can use it; you never read the value. Open search({ entity: "connect_secret:guide" }) or a resolved search({ entity: "provider_<slug>:guide" }).
  • OAuth (hardest, most powerful). They register their own provider app and complete /connect/oauth. Use this when a key is not enough. Open search({ entity: "oauth:guide" }) or a resolved search({ entity: "provider_<slug>:guide" }).

Hosted / platform OAuth is not the onboarding path. New connects are bring-your-own.

Secrets

Playbooks use secrets. The agent never reads the value. List, set, lock, delete, and sign — there is no get.

Small win: name a credential they already have and store it as a secret, or skip if they have none.

After something useful exists

The last onboarding beat is portability. Send them to /onboarding/step-3 to connect a second agent from a different ecosystem. Connecting that second agent unlocks Standard free for 2 weeks (once per account). That new agent looks up search({ entity: "portability:guide" }) and reuses the memory, playbook, or ask you just made — one short proof. Do not restart setup.

Working with an agent? This guide is also plain markdown at /guides/onboarding.md, or load it over MCP with search({ entity: 'onboarding:guide' }).