
Security News
US Government Forces Anthropic to Pull Claude Fable Days After Launch
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.
@ridit/dev
Advanced tools
One SDK, all CLIs.
A TypeScript SDK for programmatically interacting with Milo — the tiny cat coding agent.
Used by Meridia.
bun add @ridit/dev
npm install @ridit/dev
The Milo class lets you drive a Milo daemon session programmatically — streaming tool calls, permissions, and responses over SSE.
import { Milo } from "@ridit/dev";
// auto-start the daemon if not running
await Milo.start();
const milo = new Milo("agent");
const text = await milo.chat("create a hello world app", (event) => {
if (event.type === "tool_call") console.log("calling", event.toolName);
if (event.type === "permission_request")
milo.resolvePermission(event.id, "allow");
});
console.log(text);
await milo.disconnect();
new Milo(mode?: Mode)
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | Mode | "agent" | Session mode (chat, agent, plan) |
| Method | Description |
|---|---|
connect() | Create a new daemon session |
disconnect() | Delete the session and clean up |
chat(prompt, onEvent?) | Send a message, stream SSE events, return final text |
resolvePermission(permId, decision) | Allow or deny a pending tool permission |
getSessionId() | Return the current session ID |
Milo.start(port?) | Start the daemon if not already running |
Milo.isRunning() | Check if the daemon is up |
Milo.listSessions() | List all active sessions |
import type { Mode, SSEEvent, PermissionDecision } from "@ridit/dev";
type Mode = "chat" | "agent" | "plan";
type PermissionDecision = "allow" | "allow_session" | "deny";
type SSEEvent =
| { type: "tool_call"; id: string; toolName: string; args: unknown }
| { type: "tool_result"; id: string; toolName: string; result: unknown }
| { type: "permission_request"; id: string; tool: string; args: unknown }
| { type: "compacted" }
| { type: "done"; text: string }
| { type: "error"; message: string };
Note:
Chat(Lens-based) has been removed as of0.2.4. Migrate toMilo.
Milo daemon must be installed globally:
bun add -g @ridit/milo
Then either run milo serve manually, or call Milo.start() to auto-launch it.
bun run build # compile TypeScript
bun run dev # watch mode
FAQs
One SDK, all CLIs.
We found that @ridit/dev demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.

Security News
A network of 152 Chrome live wallpaper extensions hid ad tracking and made extension-driven traffic look like Google search clicks.

Company News
Socket’s first CISO brings deep experience securing high-growth SaaS companies as open source supply chain threats accelerate.