# Smol Machines

```json
{
  "name": "Smol Machines",
  "slug": "smol_machines",
  "url": "https://composio.dev/toolkits/smol_machines",
  "markdown_url": "https://composio.dev/toolkits/smol_machines.md",
  "logo_url": "https://logos.composio.dev/api/smol_machines",
  "categories": [
    "developer tools & devops"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-30T05:31:08.703Z"
}
```

![Smol Machines logo](https://logos.composio.dev/api/smol_machines)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Smol Machines MCP or direct API to create isolated machines, run bounded commands, transfer files, and inspect usage through natural language.

## Summary

Smol Machines is a cloud service for creating and operating isolated virtual machines.
It provides a safe, bounded environment for running commands and moving files.

## Categories

- developer tools & devops

## Toolkit Details

- Tools: 12

## Images

- Logo: https://logos.composio.dev/api/smol_machines

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Smol Machines.
  - Setup:
    - Configure Api Key credentials for Smol Machines.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Create a Smol Cloud machine for testing
- Run bounded diagnostics on my machine
- Transfer logs from my Smol machine

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SMOL_MACHINES_CREATE_MACHINE` | Create Machine | Create one bounded Smol Cloud machine in the stopped state with explicit resources, a finite auto-stop interval and deletion TTL, and an explicit outbound network policy. Published ports remain authenticated by default. The conservative blocked default denies egress and may prevent uncached image pulls; unrestricted networking and unauthenticated public ingress each require explicit opt-in. |
| `SMOL_MACHINES_DELETE_MACHINE` | Delete Machine | Permanently delete one Smol Cloud machine by its exact machine ID. This irreversible operation removes all machine-local storage, ends its storage billing, and requires explicit confirmation. Export important data before calling this tool. Do not automatically retry after an ambiguous failure. |
| `SMOL_MACHINES_DOWNLOAD_FILE` | Download File | Download and offload one file from an exact cloud machine. Downloads are limited to 10 MB by Composio policy, and the read resets the machine's auto-stop idle timer. |
| `SMOL_MACHINES_EXEC_COMMAND` | Execute Command | Run one bounded foreground argv command on an exact hosted Smol Cloud machine. Execution can auto-start billable compute and can modify or delete guest data. Output is text-only, streaming and background execution are disabled, and the action never retries automatically. |
| `SMOL_MACHINES_GET_ACCOUNT` | Get Account | Get the connected account's status, plan, effective machine limits, billing-period usage, and spend in integer micros. |
| `SMOL_MACHINES_GET_ACCOUNT_USAGE` | Get Account Usage | Get metered usage for the connected account's provider-defined period, keeping the requested and consumed metric windows distinct. |
| `SMOL_MACHINES_GET_MACHINE` | Get Machine | Get configuration, lifecycle state, and readiness for one cloud machine by its exact machine id, not by name. |
| `SMOL_MACHINES_GET_MACHINE_USAGE` | Get Machine Usage | Get billing-period usage and cost in integer micros for one exact machine ID. CPU and memory metering can lag by several minutes while a machine is running, so mid-life usage and cost are a lower bound until metering rolls up; stop and delete trigger a final sample. Deleted machine usage remains available for the provider-documented 30-day lookup period. |
| `SMOL_MACHINES_LIST_MACHINES` | List Machines | List cloud machines owned by the connected account, optionally requiring all supplied labels to match. |
| `SMOL_MACHINES_START_MACHINE` | Start Machine | Start one stopped cloud machine by exact machine ID. A detached start returns before readiness and requires polling GET_MACHINE until ready=true. |
| `SMOL_MACHINES_STOP_MACHINE` | Stop Machine | Stop compute for one cloud machine by exact id while preserving its filesystem. Stopping does not delete the machine: stored disk can continue billing and the machine can continue occupying a plan slot until deletion. |
| `SMOL_MACHINES_UPLOAD_FILE` | Upload File | Upload a file of at most 8,000,000 bytes to a safe relative guest path on one cloud machine identified by its exact machine ID. This can replace existing guest data and resets the machine's auto-stop idle timer. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Smol Machines
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["smol_machines"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["smol_machines"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Smol Machines tools with your agent

Send a request, execute the Smol Machines tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "Create an isolated Smol Cloud machine and run the command `uname -a` on it."}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Create an isolated Smol Cloud machine and run the command `uname -a` on it." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Smol Machines and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["smol_machines"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["smol_machines"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Smol Machines request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Smol Machines tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("Create an isolated Smol Cloud machine and run the command `uname -a` on it.")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Create an isolated Smol Cloud machine and run the command `uname -a` on it.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Smol Machines Integration

- Supports both Smol Machines MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable machine and command execution
- Rich coverage for creating machines, running commands, transferring files, and checking usage

### 2. Managed Auth

- Connect your Smol Machines API key securely without hard-coding it in agent prompts
- Central place to manage, scope, and revoke Smol Machines access
- Per user and per environment credentials for safer machine operations

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Clear schemas help agents pass machine IDs, commands, paths, and limits correctly
- Comprehensive execution logs show what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Smol Machines
- Scoped, least privilege access to isolated machines and bounded operations
- Full audit trail of agent actions to support review and compliance

## Use Smol Machines with any AI Agent Framework

Choose a framework you want to connect Smol Machines with:

- [ChatGPT](https://composio.dev/toolkits/smol_machines/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/smol_machines/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/smol_machines/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/smol_machines/framework/atomic-agent)

## Related Toolkits

- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Codeinterpreter](https://composio.dev/toolkits/codeinterpreter) - Codeinterpreter is a Python-based coding environment with built-in data analysis and visualization. It lets you instantly run scripts, plot results, and prototype solutions inside supported platforms.
- [GitHub](https://composio.dev/toolkits/github) - GitHub is a code hosting platform for version control and collaborative software development. It streamlines project management, code review, and team workflows in one place.
- [1password](https://composio.dev/toolkits/_1password) - 1Password is a password manager and digital vault for storing logins, secrets, notes, and secure documents. It helps individuals and teams protect credentials, share access safely, and reduce password risk.
- [Ably](https://composio.dev/toolkits/ably) - Ably is a real-time messaging platform for live chat and data sync in modern apps. It offers global scale and rock-solid reliability for seamless, instant experiences.
- [Abuselpdb](https://composio.dev/toolkits/abuselpdb) - Abuselpdb is a central database for reporting and checking IPs linked to malicious online activity. Use it to quickly identify and report suspicious or abusive IP addresses.
- [Alchemy](https://composio.dev/toolkits/alchemy) - Alchemy is a blockchain development platform offering APIs and tools for Ethereum apps. It simplifies building and scaling Web3 projects with robust infrastructure.
- [Algolia](https://composio.dev/toolkits/algolia) - Algolia is a hosted search API that powers lightning-fast, relevant search experiences for web and mobile apps. It helps developers deliver instant, typo-tolerant, and scalable search without complex infrastructure.
- [Anakin](https://composio.dev/toolkits/anakin_io) - Anakin is a web automation platform offering scraping, crawling, search, and browser automation. Use it to extract structured data, automate site tasks, and monitor web changes reliably.
- [Anchor browser](https://composio.dev/toolkits/anchor_browser) - Anchor browser is a developer platform for AI-powered web automation. It transforms complex browser actions into easy API endpoints for streamlined web interaction.
- [Apiflash](https://composio.dev/toolkits/apiflash) - Apiflash is a website screenshot API for programmatically capturing web pages. It delivers high-quality screenshots on demand for automation, monitoring, or reporting.
- [Apiverve](https://composio.dev/toolkits/apiverve) - Apiverve delivers a suite of powerful APIs that simplify integration for developers. It's designed for reliability and scalability so you can build faster, smarter applications without the integration headache.
- [Appcircle](https://composio.dev/toolkits/appcircle) - Appcircle is an enterprise-grade mobile CI/CD platform for building, testing, and publishing mobile apps. It streamlines mobile DevOps so teams ship faster and with more confidence.
- [Appdrag](https://composio.dev/toolkits/appdrag) - Appdrag is a cloud platform for building websites, APIs, and databases with drag-and-drop tools and code editing. It accelerates development and iteration by combining hosting, database management, and low-code features in one place.
- [Appveyor](https://composio.dev/toolkits/appveyor) - AppVeyor is a cloud-based continuous integration service for building, testing, and deploying applications. It helps developers automate and streamline their software delivery pipelines.
- [Authyo](https://composio.dev/toolkits/authyo) - Authyo is a REST API service for passwordless authentication, OTP verification, session management, and transactional notifications. Use it to add secure login flows and user verification without building auth infrastructure from scratch.
- [AWS Marketplace MCP](https://composio.dev/toolkits/aws_marketplace_mcp) - AWS Marketplace MCP provides MCP access to AWS Marketplace's cloud software, data, and services catalog. Use it to discover, compare, and evaluate 30K+ AWS Marketplace listings faster.
- [Azure Monitor Activity Log](https://composio.dev/toolkits/azure_monitor_activity_log) - Azure Monitor Activity Log is Azure's service that records management and control-plane events for a subscription. Use it to audit changes, troubleshoot issues, and track resource operations across your Azure resources.
- [Backendless](https://composio.dev/toolkits/backendless) - Backendless is a backend-as-a-service platform for mobile and web apps, offering database, file storage, user authentication, and APIs. It helps developers ship scalable applications faster without managing server infrastructure.
- [Baserow](https://composio.dev/toolkits/baserow) - Baserow is an open-source no-code database platform for building collaborative data apps. It makes it easy for teams to organize data and automate workflows without writing code.

## Frequently Asked Questions

### Do I need my own developer credentials to use Smol Machines with Composio?

Yes, Smol Machines requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
