Use agents in Slack
Slack is how most teams use Luno OS agents today. Connect the Luno OS Slack App (luno connect slack --kind luno; catalog slug slackbot — not a Personal Slack Account user token), bind Slack channels to your agent, and teammates can message it like any coworker. The gateway turns each message into an agent session and posts the reply back as the bot.
See external channels for the three Slack connection kinds, connecting, binding channels, listen modes, and channel sessions.
Use agents in the web app
Every deployed agent has a chat surface on its page in the web app: open Agents in Studio (or the agent in its Space, in the User view), select the agent, and message it directly; the chat dock can talk to it from any page. Each conversation is an agent session — start a new one with New chat, and revisit past sessions from the history rail on the right. Sessions started in the app appear in Runs alongside every other surface. Replies stream live, tool approvals are decided inline, and the composer has mode and model pickers — see Chat with agents. This is where teammates who never touch the CLI use what you build. Chatting with a deployed agent is different from Luno Builder, the built-in builder chat that creates and edits agents rather than running them.Use agents from the CLI
The CLI is the most practical way to run an agent while you build and test it. Deploy your project, then prompt the agent against the deployed project:support value is the agent slug from defineAgent(). With --wait, the response includes the completed session and its messages. Without it, the command returns the queued sessionId and runId immediately.
--wait is bounded and defaults to 120 seconds for agents. Choose another duration with --timeout <seconds>. A timeout means the session is still active, not failed. Continue waiting with:
outputSchema and read result.output — see structured output.
Continue the same session by passing its ID:
luno agents list is platform/org-level and lists agents in the active organization or project. Prompt and session list/get commands run against the resolved project target. Session cancellation is platform-backed today.--include gateway,messages,events,trace when you need all available session detail. See the CLI reference for the full command list.
Cancel a running cloud session by ID:
Use agents in workflow steps
Agents can be called from workflows and actions with.prompt():
Run agents from triggers
A trigger attaches an event source (a schedule, a webhook, or a poll) to an agent, so the agent runs on its own when the source fires instead of waiting for someone to prompt it. Triggers live insrc/triggers/; a source exposes .attach(), where you pass the agent and the prompt to run.
src/triggers/morning-check.ts
prompt, so the agent can act on the event that fired it:
src/triggers/new-inbox.ts
Use agents via API
You can also prompt a deployed agent over HTTP. The route is asynchronous: it enqueues the prompt and returns202 with a sessionId and runId to inspect later, rather than waiting for the agent to finish.
sessionId in the body alongside the new message; send only the new message, not the prior turns. Only the session’s owner (who started it) or a project admin (the project Admin role, or an org owner/admin) can continue it, and only if they may use the agent (access lists); anyone else gets 403. Sessions without an owner, such as Slack or Teams channel conversations, are a project admin’s only. Inspect the result later in History or with luno agents sessions get.
This is mainly useful for wiring agents into your own services. For most internal tooling, Slack and the CLI cover what you need.
Review agent runs
Every surface that runs an agent creates an agent session you can review later. Open Runs (/history) in the web app and filter Type to Agent. The detail panel shows messages, tool calls, metadata, trace data, timing, and errors. The trace has one span per model call (the model that answered, input/output tokens and model time), so you can see where a slow or expensive session spent its time.
When a session is waiting on a human approval, the chat shows the pending call with Approve / Deny; from the CLI use luno agents approvals list|approve|deny.
From the CLI, use session commands when you want to inspect runs while debugging:
Next steps
Triggers
Run agents on a schedule, webhook, or poll.
External channels
Connect Slack and route channel messages to agents.
Agent runs
Inspect messages, tool calls, errors, and traces.
Deploy a project
Ship agent changes to the platform.