Now available for Windows, macOS, and Linux

Safe Local Sandbox for AI Agents

Run Javascript & Puppeteer scripts as MCP tools locally — no cloud, complete privacy. Works with Claude Desktop, Cursor & more.
Your Agent
create a deeptask script to get search engine results
Scripts2
Search scripts...
Automate with Javascript & Puppeteer scripts.
Connect to Your AI

Enable automation in Claude Desktop, Cursor, or Cline

node-demo

Generate hello world message

test-settings

Demonstrates how to access...

DeepTask Sandbox | Se...
about:blank
WORKS WITH YOUR FAVORITE AI AGENTS
Claude Desktop
Claude Desktop
Cursor IDE
Cursor IDE
VS Code
VS Code
Windsurf
Windsurf
Zed
Zed

Create custom scripts

Effortlessly build and scale robust Javascript and Puppeteer automations.
google-search.mjs
Puppeteer
/**
 * Google Search Script
 * This script performs a Google search and extracts results including AI answers,
 * organic results, related questions, and related searches
 */

// Export metadata about the script
export const metadata = {
    name: "google-search",
    version: "1.0.0",
    description:
        "Search Google and extract AI answers, organic results, PAA questions, and related searches",
    inputSchema: {
        type: "object",
        properties: {
            query: {
                type: "string",
                description: "The search query/keyword",
                default: "chatgpt"
            },
            language: {
                type: "string",
                description: "Language code for search results (e.g., en, ja, zh-CN)",
                default: "en"
            },
            page: {
                type: "number",
                description: "Page index (0 for first page, 1 for second, etc.)",
                default: 0,
                minimum: 0
            }
        },
        required: ["query"]
    },
    type: "puppeteer",
    defaultTimeout: 30000,
    fsEnabled: false,
    networkEnabled: true,
    domainsAllowed: ["google.com"],
};

// Export the main run method
// The page object is automatically provided in the context
export const main = async function (input) {
    try {
        // Note: "page" here refers to the Puppeteer browser page object
        const page = global.page;

        if (!page) {
            throw new Error("Page object is not available");
        }

        const keyword = input?.query || "chatgpt";
        const language = input?.language || "en";
        const pageIndex = (input?.page !== undefined && input?.page !== null) ? input.page : 0;

        const start = pageIndex * 10;
        const url = `https://www.google.com/search?q=${encodeURIComponent(keyword)}&hl=${language}&start=${start}`;

        await page.goto(url, {waitUntil: "networkidle2"});
        await page.waitForSelector("div#search");

        const data = await page.evaluate(() => {
            const result = {
                aiAnswer: null,
                results: [],
                questions: [],
                relatedSearches: []
            };

            const answer = document.querySelector(
                "#search div[data-attrid]:not([data-attrid=\"title\"]):not([data-attrid=\"subtitle\"])"
            );
            if (answer) {
                result.aiAnswer = answer.innerText.trim();
            }

            const anchors = document.querySelectorAll("#search a h3");
            anchors.forEach((h3) => {
                const a = h3.closest("a");
                if (a && a.href && h3.innerText.trim()) {
                    const snippetNode = a.parentElement?.parentElement?.querySelector(
                        "div[data-sncf] span, div:not([class]) span"
                    );
                    const snippet = snippetNode ? snippetNode.innerText.trim() : "";

                    result.results.push({
                        title: h3.innerText.trim(),
                        link: a.href,
                        snippet
                    });
                }
            });

            return result;
        });

        return {
            result: {
                content: [{
                    type: "text",
                    text: JSON.stringify(data, null, 2),
                }]
            }
        };
    } catch (error) {
        return {
            error: {
                message: error.message || "Unknown error occurred",
            }
        };
    }
};
Metrics & Performance

Safe, Private & Powerful

DeepTask Sandbox by the numbers
Private

100% Local

Zero data sent to cloud
Secure

Sandboxed Execution

Isolated environment protection
MCP

Model Context Protocol

Standard-based integration
Controlled

Domain Whitelisting

Explicit network permissions
Cross-Platform

Windows, macOS, Linux

Works everywhere you do
Compatible

Claude, Cursor, VS Code

Works with your favorite AI
Help & Support

Frequently Asked Questions

Everything you need to know about the safe local browser automation.

What AI tools work with DeepTask Sandbox?

DeepTask Sandbox works with Claude Desktop, Cursor, VS Code, Windsurf, Zed, and any other MCP-compatible AI client.

How is DeepTask different from cloud automation?

DeepTask runs entirely on your local machine. Your data never leaves your device, unlike cloud automation services that process and store your data on external servers.

What is MCP?

MCP (Model Context Protocol) is an open standard that allows AI assistants to connect with external tools. DeepTask acts as an MCP server, providing browser automation capabilities to AI agents.

What is the pricing model?

The Personal plan is currently free (usually $9.9/month), while businesses can opt for our Enterprise plan. Visit our pricing page for details.

Why should I run a local sandbox for my AI?

A local sandbox provides maximum privacy as your data never leaves your desktop. It also saves tokens by allowing you to process large amounts of data locally using scripts rather than sending everything to an LLM.

Does it require an internet connection?

No. DeepTask Sandbox works completely offline. Your scripts execute locally on your machine. Internet access is only required if your specific script needs to fetch data from the web.

Which scripting languages are supported?

Currently, we focus on Javascript and Puppeteer for web automation. This allows you to leverage the vast JavaScript ecosystem for any task.

How does the security model work?

Every script runs in a secure, isolated environment. You must explicitly grant permissions for network access (with host whitelisting) and filesystem access. This ensures your scripts only do what you want them to do.