January 30, 2026 Update
It's been a minute since our last changelog — we've been heads-down polishing the platform for v1. This update covers everything we've shipped since January 7: 12 releases and 235 commits. There's a lot to cover, so let's dive in.
Overview
Here's what's new at a glance:
- OpenCode plugin with a team of AI agents for your editor
- Queue system for background job processing
- Sandbox snapshots with encryption and public sharing
- TTL support across KV, Vector, and Streams
- And more!
Read on for the details.
OpenCode Plugin
The new @agentuity/opencode package brings a team of specialized AI agents to OpenCode. Install it and you get commands for orchestrating tasks, accessing cloud services, and running code in sandboxes — all from your editor.
agentuity ai opencode install
Once installed, use commands to interact with the agent team:
/agentuity-coder implement dark mode for settings page
/agentuity-cloud list all my KV namespaces
/agentuity-sandbox run bun test in a sandbox
The plugin includes six specialized agents:
| Agent | Role |
|---|---|
| Lead | Orchestrates tasks, delegates to the team |
| Scout | Explores codebases, finds patterns (read-only) |
| Builder | Implements features, runs tests, uses sandboxes |
| Reviewer | Reviews code, catches issues, applies fixes |
| Memory | Maintains context via KV/Vector storage |
| Expert | CLI, SDK, and cloud services specialist |
For long-running tasks, Cadence mode lets the team work autonomously across multiple iterations:
/agentuity-cadence implement the payment integration with Stripe, including tests and docs
Lead will create checkpoints, delegate to Scout, Builder, and Reviewer as needed, and continue until the task is complete. You can pause, resume, and monitor progress via natural language or the CLI:
# Monitor running cadence loops
agentuity ai cadence list
agentuity ai cadence status lp_auth_01
# Control
agentuity ai cadence pause lp_auth_01
agentuity ai cadence resume lp_auth_01
Cloud Services
Queue System
The queue service is now fully available in both the SDK and CLI. Queues handle background job processing with automatic retries and dead-letter support.
// Publish a message (async by default)
await ctx.queue.publish('email-queue', {
to: 'user@example.com',
subject: 'Welcome!',
});
// Publish and wait for acknowledgment
await ctx.queue.publish('critical-queue', payload, { sync: true });
From the CLI:
# Publish a message
agentuity cloud queue publish email-queue '{"to": "user@example.com"}'
# Publish synchronously (blocks until acknowledged)
agentuity cloud queue publish email-queue '{"to": "user@example.com"}' --sync
Sandbox Snapshots
Snapshots let you save the state of a sandbox and restore it later — or share it with others. We've also added encryption, public sharing, and virus scanning.
const sandbox = await ctx.sandbox.create({ runtime: 'bun:1' });
await sandbox.execute({ command: ['bun', 'init'] });
await sandbox.execute({ command: ['bun', 'add', 'zod', 'hono'] });
// Save the state
const snapshot = await ctx.sandbox.snapshot.create(sandbox.id);
// Later: restore from snapshot
const restored = await ctx.sandbox.create({ snapshot: snapshot.id });
From the CLI:
agentuity cloud sandbox snapshot create <sandbox-id> # encrypted by default
agentuity cloud sandbox snapshot create <sandbox-id> --public # make publicly accessible
TTL Support
You can now set expiration times on key-value entries, vector records, and streams. Data automatically expires after the TTL.
// KV with TTL (expires in 1 hour)
await ctx.kv.set('cache', 'session:123', data, { ttl: 3600 });
// Vector with TTL (24 hours)
await ctx.vector.upsert('memories', {
key: 'mem_123',
document: 'User prefers dark mode',
ttl: 86400,
});
// Stream with TTL (7 days)
const stream = await ctx.stream.create('logs', { ttl: 604800 });
SDK Improvements
Schema Strict Mode
@agentuity/schema now supports a strict option for generating JSON schemas compatible with OpenAI's structured output mode:
import { s } from '@agentuity/schema';
const schema = s.object({
name: s.string(),
age: s.number(),
});
// Strict mode for OpenAI/Groq structured output
const strict = schema.toJSONSchema({ strict: true });
// Adds "additionalProperties": false at every level
Eval Lifecycle Hooks
Preset evals now support onStart and onComplete hooks for logging, metrics, or setup/cleanup:
import { politeness } from '@agentuity/evals';
const agent = createAgent('assistant', {
handler: async (ctx, input) => {
// ...
},
});
agent.createEval(
'politeness-check',
politeness({
onStart: (ctx, input) => {
ctx.logger.info('[EVAL] politeness: Starting', { request: input.request });
},
onComplete: (ctx, input, output, result) => {
ctx.logger.info('[EVAL] politeness: Completed', {
passed: result.passed,
reason: result.reason,
});
},
})
);
Sandbox Output Capture
sandbox.run() now captures and returns stdout/stderr in the result object:
const result = await ctx.sandbox.run({
runtime: 'bun:1',
command: {
exec: ['bun', 'run', '-e', 'console.log("Hello"); console.error("Oops")'],
},
});
console.log(result.stdout); // "Hello\n"
console.log(result.stderr); // "Oops\n"
Output streams in real time and is captured for programmatic access. We also switched to server-side long-polling for more reliable execution status.
Also New
- SSE + AI SDK — SSE handlers now work with
generateText/generateObject waitUntil()— Available directly on route context- Standalone agents — Auto-initialization with
ctx.run() - Dynamic path params — Support in
useAPI().invoke()
CLI and Tooling
Performance
The agentuity --version command is now 18x faster, dropping from ~1.3s to ~70ms. Project data and region caching reduce duplicate API calls across all commands.
Support Command
New agentuity support command for diagnostics:
agentuity support report # Generate a support report
agentuity support logs show # View recent logs
agentuity support system # System information
Auth Refactoring
auth machine is now auth org with clearer subcommands:
agentuity auth org enroll # Set up org authentication
agentuity auth org unenroll # Remove public key
agentuity auth org status # Show current key
VS Code Extension
- Sandbox Explorer — Create, list, execute commands, and destroy sandboxes from the sidebar
- Queue Explorer — View queues, publish test messages, inspect dead-letter queues
- VSIX in releases — Extension published alongside the SDK
Also New
- Debugger support — Attach a debugger to
agentuity dev - Agent detection — CLI detects coding agents (Cursor, Claude Code, OpenCode, and more)
- Region detection — Confirmation prompt when deploying to a different region
- Org-level secrets — Environment variables and secrets at the org level
Also Shipping
Beyond the highlights above, here's what else shipped:
Storage & Services
vector.exists()correctly returns false for empty namespaces- Database descriptions in list/get commands
Bug Fixes
- Improved malware detection to resolve npm package aliases
- Fixed ReadableStream error in SSE handlers with AI SDK
- Fixed sandbox client pipe output loss
- Handle 421 Misdirected Request for cross-region resources
- Prevented internal logger race conditions in forked processes
- Fixed route type generation for folder-based agents
Upgrade Now
Ready to try it out? Run:
agentuity upgrade
Or if you're starting fresh:
curl -fsSL https://agentuity.sh | sh
Once you're upgraded, try a few of the new features:
- Install the OpenCode plugin with
agentuity ai opencode install - Create a queue with
agentuity cloud queue create - Add TTL to your KV entries with the
ttloption
Resources
Questions or feedback? Drop by our Discord to chat. Happy building!