Send input and read output
Send one JSON value to an open Session:
helmr actor input send SESSION_ID \
--project agents --env development \
--input-json '{"type":"instruction","text":"also update the tests"}' \
--idempotency-key slack:T123:C456:1712345678.000100
Use a stable upstream event identifier as the idempotency key. A retry then replays the accepted append instead of adding a duplicate command.
Read one finite output page:
helmr actor output read SESSION_ID \
--project agents --env development \
--after 0 --limit 50 --json
Each record has a durable sequence, data, content type, timestamp, and Run
provenance. Pass the last sequence back as --after to continue. Multiple
readers can keep independent cursors.
With the SDK:
const session = client.sessions.ref("SESSION_ID")
await session.input.send(
{ type: "instruction", text: "also update the tests" },
{ idempotencyKey: "slack:T123:C456:1712345678.000100" },
)
const page = await session.output.list({
after: 0,
limit: 50,
})
for (const record of page.records) {
console.log(record.sequence, record.data)
}
Run logs are execution telemetry. Session output is the Actor’s durable application protocol; do not substitute one for the other.