Skip to content

Moving a conversation

Ask your agent to continue somewhere else or bring in another agent. Tell it where you want to go and what needs to carry forward; it can check the available agents and destinations for you.

Where can we continue this conversation, and which agents are available there?

You do not need to know the gateway tool names. They appear below so you can recognise them in the agent's activity.

Ask another agent to take over

Use a handoff when you want a different agent to own the task and its follow-ups.

Hand this to Codex for implementation. Include the plan we agreed on and ask it to show me the changes before committing.

The receiver starts from your brief: include the goal, relevant context and key decisions. It takes over this conversation; to move elsewhere, teleport first. Choose an agent available on this channel. For a group's main channel or a native session, teleport into a thread first.

The tool for this is summon. A handoff does not transfer a running process or copy files from your machine.

Continue with the same agent elsewhere

Use teleport when you want the same agent and conversation history in another supported destination.

Continue this in my private conversation on the other connected channel.

The agent decides whether to carry on at once where it lands. Otherwise, and always after Trunkline's own Teleport, the conversation waits there for your next message.

Teleport requires tool approval, handled by the agent's harness according to its configured permissions. Automatic review, bypass modes and existing grants keep their normal behavior. When the harness asks for a person, Octomate relays that request through the existing approval or question cards. Denying approval prevents the tool from recording a move. The approval comes before the gateway validates the destination, so a destination it refuses goes back to the agent to correct. Trunkline's own Teleport is already your request, so it asks nothing, and warns before you submit when a private conversation would land somewhere shared.

First link your profiles so Octomate can find you there. Available destinations depend on the channel; ask the agent to list them if your requested move is unavailable.

Each channel creates a thread at the selected address. Trunkline opens a new private thread, including when the source is already in Trunkline. Slack and Lark open a sub-thread under the current DM or group, or, arriving from another platform, under your linked DM or a channel or group you and the bot are both in. Existing threads cannot contain new sub-threads. Discord suggests eligible text and forum channels in the source server, without enumerating all servers. Discord DMs cannot host an isolated thread, so they are not suggested. NapCat has no threads at all: inspect lists its DM with metadata.barred saying so, and Teleport refuses it for that reason.

Teleport accepts a destination address and a new_thread flag, which defaults to true. A null destination uses the current conversation's address. The address uses the same fields as the conversation address: connected channel, chat type, chat ID, user ID and optional thread ID. Discovery suggests addresses; it is not an allowlist. To look further, inspect with reveal="destinations" and a channel lists one level of that channel as you: an address whose metadata.inside is set is a place to open by passing that value as inside, and one without it can host a new thread unless metadata.barred says why not. Discord lists the servers you share with the bot, then the channels you can see in one; a channel that cannot be browsed says so. The channel validates each submitted address before creating anything, and the user must match your linked identity.

A known Discord text or forum channel can be selected directly, including from a private conversation on another platform. Its address has chat_type="group" and the channel ID in chat_id. Discord checks membership and thread permissions; a guild ID, DM or existing thread is refused. A conversation only you can read lands in a private thread there, and a forum's post is always public; the address a listing or the move returns says which with shared. Slack and Lark accept your default DM, the current parent, and any channel or group you and the bot are both in; a thread there is read by its members.

A teleport out of a thread that is about a project lands in a thread about the same project, for any agent Octomate drives: the new thread gets a workspace of its own holding the work as it stood, uncommitted changes and ignored files such as an .env included, on a branch of its own, and the source keeps its own. A teleport never switches projects; asking for another one is refused.

Teleport uses new_thread=false only to bind a current thread that is about no project. It never reuses an unrelated existing conversation, and a failed thread creation does not silently turn into an in-place move.

Teleport requires independent history copying: driven Codex, Claude and Inkling support it; DeepSeek does not yet. An owned native Codex or Claude Code session can also teleport using its latest fully uploaded completed turn, either picked in Trunkline or by asking the session itself. The import keeps that turn's model and permissions, copies its transcript, and leaves the native source usable. The selected destination must expose an agent of the same runtime; its first compatible configured route handles the import, and the history continues there in a session Octomate drives.

Native teleport checks transcript ownership, the completed turn, its permissions, its model and import metadata before opening or announcing a destination. Missing or unusable history, or a model the receiving agent does not offer, is refused without creating a thread.

A conversation can cross to a new destination only when its current conversation is private. For a task that began in a group, continue privately with a brief instead.

A native session's own gateway_teleport call says which session it is: Codex names its thread on every call, and Claude Code has it stamped in by the PreToolUse hook octomate claude hooks install registers for that tool. The session's own permission prompt is the approval, so no card follows, and the move starts at once. A session whose history Octomate has not received yet is refused.

In a conversation about no project, you can also ask the agent to use one before starting file work:

Continue this task in the website project, starting from the release branch.

See Projects for choosing a project and starting point.

Take a group request into private messages

Let's discuss the details in my direct messages.

The agent can move the task out of the group with a brief for the agent answering your DMs. This is scheme. Continue in the private conversation that appears; it may be handled by a different agent. This option needs a channel with direct messages. Its destination is {"kind": "dm"} for this channel, or {"kind": "dm", "channel": "discord"} for your linked account on another channel. The recipient comes from your linked profile. Moving into the current channel's DM requires a shared source; another channel's linked DM can also be selected from a private conversation.

Send a result without moving the conversation

Send me the summary privately, then keep working on the next step here.

The agent can send progress, a result or a file to a supported destination while your current conversation continues. This is send; it does not hand the task to another agent. It accepts {"kind": "here"} or the same DM targets as Scheme. When choosing a DM from an inspected address, use its channel_tentacle_id as the target's channel. Native sessions without a current conversation must name that channel explicitly.

Delegate a smaller task

With Inkling, you can ask it to delegate a self-contained task and bring back the report while it remains your main point of contact.

Ask another available agent to review this proposal, then compare its findings with your own.

Delegated work cannot stop to ask you for approvals or answers. Give it enough context and a task it can complete with the access already available. If it needs your involvement, use a handoff instead.

Finish project work

Once you have reviewed and delivered the result, you can ask the agent to release the workspace. Use this when the task is finished, rather than for an ordinary pause. See Workspaces.

From your own agent

With Octomate MCP connected, your native agent can find available destinations, hand off work and send messages to a channel. Include important context in the request. Work on local files stays on your machine; choose a registered project if the receiving agent needs to work on server files.