Documentação DeepTask Sandbox

Um sandbox seguro e local-first que conecta seu assistente de IA ao seu ambiente.
10 min read
Updated

O DeepTask Sandbox é um aplicativo desktop multiplataforma para executar ferramentas de automação em ambientes seguros e isolados. Construído com Electron e integrado a um servidor MCP (Model Context Protocol) em Go, ele oferece ao seu assistente de IA um ambiente seguro e utilizável por ferramentas na sua máquina. Por conversa natural (via MCP), seu assistente pode executar ferramentas, acessar capacidades locais aprovadas e orquestrar fluxos de trabalho de forma confiável — com execução opcional via navegador (Puppeteer) quando a tarefa precisar de uma página real.

Nota: O DeepTask Sandbox é gratuito para uso pessoal e educacional. O uso comercial exige licença paga com preços de assinatura mensal conforme o número de usuários.

Princípios fundamentais

  • Privacidade em primeiro lugar: Toda a automação roda localmente. Seus dados nunca saem da sua máquina.
  • Pronto para assistentes: Feito nativamente para o Model Context Protocol (MCP). Funciona com Claude, Cursor e mais.
  • Sandbox utilizável por ferramentas: Execute ferramentas Node para automação de backend e ferramentas Puppeteer para automação de navegador e web scraping — cada um em processos worker isolados.
  • Proteções integradas: Agendamento (cron), histórico de tarefas, limites de recursos (memória 64–2048 MB, limites de CPU), listas de domínios permitidos e configurações/credenciais criptografadas.

01. Início rápido

Colocar em funcionamento leva menos de cinco minutos.

Passo 1: Instalar o app desktop

Baixe e execute o instalador para o seu sistema operacional.

Baixar DeepTask Sandbox

Passo 2: Conectar seu assistente

O DeepTask usa o Model Context Protocol (MCP) para se comunicar com sua IA. Siga as instruções do seu ambiente:

OSTipo de instalaçãoCaminho do comando
WindowsSistema (padrão)C:\Program Files\deeptask-sandbox\resources\mcp\deeptask-mcp.exe
WindowsUsuárioC:\Users\<user>\AppData\Local\Programs\deeptask-sandbox\resources\mcp\deeptask-mcp.exe
macOSPadrão/Applications/DeepTask Sandbox.app/Contents/Resources/mcp/deeptask-mcp
LinuxPadrão/opt/deeptask-sandbox/resources/mcp/deeptask-mcp

Bloco de configuração de exemplo (Claude Desktop):

{
  "mcpServers": {
    "deeptask": {
      "command": "COLE_O_CAMINHO_DO_COMANDO_AQUI"
    }
  }
}

Passo 3: Sua primeira ferramenta

Depois de conectar, peça ao assistente para criar e executar uma ferramenta pequena dentro do sandbox.

Experimente este prompt:

"Usando o DeepTask, escreva uma ferramenta pequena node que busque o título de https://example.com e retorne como saída estruturada."


02. Guia de ferramentas

As ferramentas do DeepTask são poderosas, type-safe e fáceis de criar. Sua IA pode gerá-las para você ou você pode escrevê-las.

Anatomia de uma ferramenta

Cada ferramenta tem duas partes: Metadados (a configuração) e a Função principal (a lógica). Nomes de ferramenta devem usar snake_case (letras minúsculas, números e underscores apenas; ex.: web_scraper). As ferramentas devem ser módulos ESM (.mjs); Node.js 24+ é suportado.

import { browser } from "@deeptask/sandbox";

export const metadata = {
    name: "web_scraper",
    type: "puppeteer", // "node" para lógica pura, "puppeteer" quando precisar de um navegador real
    description: "Extracts basic info from a webpage",
    networkEnabled: true,
    domainsAllowed: ["example.com"],
    inputSchema: {
        type: "object",
        properties: {
            url: {type: "string", format: "uri"}
        },
        required: ["url"]
    }
};

export async function main({url}) {
    const page = browser.getPage();
    await page.goto(url, {waitUntil: "networkidle0"});

    const title = await page.title();
    return {
        content: [{type: "text", text: `Scraped: ${title}`}],
        structuredContent: {title},
        isError: false
    };
}

Recursos avançados

Upload de arquivos

Você pode definir entradas que aceitam arquivos (PDFs, imagens etc.) com JSON Schema: contentEncoding: "base64", contentMediaType (ex.: application/pdf) e maxLength para limites de tamanho (base64 é ~33% maior; ex.: ~5 MB → maxLength: 6990506).

inputSchema: {
    properties: {
        document: {
            type: "string",
            contentEncoding: "base64",
            contentMediaType: "application/pdf",
            maxLength: 6990506,  // arquivo ~5 MB
            description: "Upload a PDF for analysis"
        }
    }
}

Na sua ferramenta, decodifique com atob(input.document) (ou new Uint8Array(atob(input.document).split('').map(c=>c.charCodeAt(0))) para binário) e processe conforme necessário. Para limites de tamanho: maxLength = Math.ceil(bytes/3)*4 (ex.: 1 MB → 1398101, 5 MB → 6990506).

Configurações criptografadas

Armazene configuração sensível com segurança. O usuário é solicitado a esses valores na interface e eles ficam criptografados em repouso. Use format: "password" para campos de senha.

settingsSchema: {
    properties: {
        apiKey: {
            type: "string",
            format: "password",
            title: "API Key"
        }
    }
}

03. Segurança e isolamento

Todos os planos incluem estas proteções. O DeepTask foi feito para confiabilidade e segurança:

  • Listas de domínios permitidos: Ferramentas não acessam a rede a menos que você defina networkEnabled: true e especifique domainsAllowed (use ["*"] para permitir todos os hosts). Quando uma URL é bloqueada, fetch() lança exceção antes de qualquer requisição — envolva em try/catch.
  • Limites de recursos: Memória configurável (64–2048 MB; padrão 256 MB para Node, 512 MB para Puppeteer) e limite de CPU (50–100%, padrão 95%). Ferramentas que excedem os limites são encerradas automaticamente.
  • Proteção por timeout: Configurável por ferramenta via defaultTimeout (padrão 5 minutos).
  • Sistema de arquivos: Acesso opcional de leitura/escrita a um sistema de arquivos virtual (raiz /) com pastas /Temp, /Documents, /Images, /Videos, /Audios, /Downloads. Sem acesso ao sistema de arquivos do host; caminhos não podem escapar da raiz. Use fsEnabled e fsWriteEnabled. Use fs/promises (métodos sync como readFileSync são bloqueados). Arquivos persistem entre invocações de ferramentas; /Temp é limpo na inicialização do app e a cada 24h (idade máxima 48h).

04. Recursos Pro

Agendamento inteligente

Automatize seus fluxos com suporte Cron integrado.

  • Relatórios diários: 0 9 * * * (Toda manhã às 9h)
  • Limpeza semanal: 0 0 * * 0 (Todo domingo à meia-noite)

05. API e referência de ferramentas

Sandbox API

Importe de @deeptask/sandbox:

APIDescrição
browser(apenas Puppeteer) browser.getPage() → página principal; browser.getPages() → todas as páginas. Use import { browser } from "@deeptask/sandbox";
tooltool.self.settings (criptografados em repouso), tool.call(name, params, sandboxId?), tool.chain([{name, params, sandboxId?}, ...]). Use import { tool } from "@deeptask/sandbox";
document, image, audio, video, model, archiveAPIs integradas (veja seções abaixo). Todos retornam { files, data, isError, message }.
language, timeZoneLocale e fuso horário do sandbox.
fs / fs/promises(com fsEnabled) FS virtual sob / com /Temp, /Documents, /Images, etc. Use fs/promises — métodos sync bloqueados.

Puppeteer: page.goto() aceita apenas http/https. Envolva em try/catch. Use response.buffer() (não body()) para bytes de resposta.

document

import { document } from "@deeptask/sandbox"

Conversão de documentos, manipulação de PDF e busca full-text. Todos os métodos retornam { files, data, isError, message }. Sempre verifique isError antes de usar files ou data.

MétodoDescrição
convertDocumentConverter entre formatos. Pares: md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Opções variam por par.
mergePdfMesclar vários PDFs em um.
splitPdfDividir PDF em páginas. Omita pages para um arquivo por página. Saídas em /Temp/.
compressPdfComprimir PDF. Opções: quality (screen, ebook, printer, prepress).
fillPdfFormPreencher campos de formulário PDF. Chaves são nomes de campo PDF brutos (sensível a maiúsculas).
getPdfInfoObter contagem de páginas, título, autor, etc.
getPdfFormListar campos de formulário em um PDF.
extractArticleExtrair texto principal do artigo (Readability). Suporta md, pdf, docx, pptx, epub, html. Retorna data.text; verifique string vazia.
extractPagesExtrair faixa de páginas do PDF (1-based inclusivo).
searchFilesBusca full-text em arquivos indexados. Apenas /Documents é indexado. Retorna data.hits, data.total. Use limit (padrão 20).
searchInFileBuscar dentro de um arquivo. Suporta tipos texto e office. offset/limit paginam resultados.

Nota: protectPdf não está implementado — não use.

image

import { image } from "@deeptask/sandbox"

Processamento de imagem com Sharp/libvips. Todos os métodos retornam { files, data, isError, message }.

MétodoDescrição
resizeImageRedimensionar. Opções: fit (cover, contain, fill, inside, outside), withoutEnlargement.
compressImageRe-codificar para reduzir tamanho; preserva metadados.
minifyImageRemover apenas metadados.
cropImageRecortar por left, top, width, height.
rotateImageRotacionar por ângulo.
flipImage / flopImageEspelhar horizontal ou verticalmente.
convertImageConverter formato. Suporta png, jpeg, gif, tiff, webp, ico, icns; SVG como origem.
removeBackgroundCorrespondência simples de cor (não IA). Saída PNG. threshold 0–255 (padrão 10).
compositeImageSobrepor imagens em left, top, opcional opacity.
mergeImagesCombinar imagens. Opções: layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight.
getImageInfoRetorna data: { width, height, format, channels, hasAlpha, space }.
blurImage, sharpenImageDesfocar ou nitidez; sigma controla intensidade.
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImageOperações de cor e layout.

audio

import { audio } from "@deeptask/sandbox"

Conversão e processamento de áudio. Todos os métodos retornam { files, data, isError, message }.

MétodoDescrição
convertAudioConverter formato. Suporta mp3, wav, aac, ogg, flac, m4a, wma, opus.
trimAudioRecortar por start, end ou duration (segundos).
concatAudioConcatenar arquivos de áudio.
setAudioVolumeDefinir volume (número).
setAudioTempoTempo 0.5–2.0 (limite FFmpeg).
fadeAudioFade in/out. Opções: type, start, duration.
normalizeAudioNormalizar loudness. target LUFS (padrão -16).
removeAudioSilenceRemover silêncio. threshold dB (padrão -50), duration segundos (padrão 0.5).
mixAudioMisturar vários arquivos de áudio. Opcional volumes.
getAudioInfoRetorna data: { duration, sampleRate, channels, bitrate, format, codec }.
textToSpeechTexto para fala. Apenas macOS/Windows. format: mp3, wav, ogg.

Nota: voiceToText não está implementado — não use.

video

import { video } from "@deeptask/sandbox"

Conversão, recorte e efeitos de vídeo. Todos os métodos retornam { files, data, isError, message }.

MétodoDescrição
convertVideoConverter formato. Suporta mp4, webm, avi, mov, mkv, m4v, flv, wmv.
compressVideoComprimir. Opções: crf (18–28, padrão 23), maxWidth, maxHeight, videoBitrate, audioBitrate.
trimVideoRecortar por start, end ou duration.
concatVideosConcatenar arquivos de vídeo.
extractAudioTrackExtrair áudio para mp3, wav, aac, m4a, ogg, flac.
extractFrameExtrair um único frame em timestamp.
screenshotVideoExtrair frames em múltiplos timestamps. Retorna uma imagem por timestamp em ordem.
videoToGifConverter vídeo para GIF. Opções: start, duration, fps, width, height.
generateGifCriar GIF a partir de sequência de imagens. Opções: fps, width, height, loop.
burnSubtitlesGravar arquivo de legenda no vídeo.
extractSubtitlesExtrair legendas para srt ou vtt.
cropVideo, rotateVideoRecortar ou rotacionar (90, 180, 270).
setVideoSpeed, setVideoVolume, fadeVideoEfeitos de velocidade, volume, fade.
getVideoInfoRetorna data: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... }.

model

import { model } from "@deeptask/sandbox"

Geração de texto LLM, geração de imagem e geração de vídeo. Requer networkEnabled e chaves de API. Armazene apiKey em settingsSchema com format: "password"; acesse via tool.self.settings.apiKey. Nunca codifique chaves.

MétodoDescrição
generateTextConclusão de chat. messages, opcional system, options: { provider, apiKey, baseURL }. Provedores: openai, anthropic, google, cohere, mistral, openrouter, grok, deepseek, groq. Padrão: openai (gpt-4o-mini).
generateImageGeração de imagem. prompt, opcional image (imagem para imagem). Provedores: openai, stability, replicate, fal, together, nano-banana, ideogram. Imagem-para-imagem apenas com fal, nano-banana.
generateVideoGeração de vídeo. prompt, opcional image. Provedores: runway, replicate, luma, kling, minimax, seedance, veo3. Resolução é específica do provedor.

archive

import { archive } from "@deeptask/sandbox"

Compactar e descompactar arquivos. Todos os métodos retornam { files, data, isError, message }.

MétodoDescrição
zipFilesCompactar arquivos em um arquivo. Saída: archive-{timestamp}.zip em /Temp/. Arquivos na raiz do zip (estrutura de diretório não preservada).
unzipFileDescompactar. filter: substrings de nome de arquivo para incluir. files[] contém caminhos virtuais dos arquivos extraídos; estrutura de diretório preservada.

Ferramentas MCP para assistentes

Seu assistente de IA interage com o DeepTask via estas ferramentas MCP:

  • install_tool — Instalar uma ferramenta para reutilizar. Executar depois com call_tool.
  • uninstall_tool — Remover uma ferramenta instalada.
  • call_tool — Executar uma ferramenta instalada. Sync/async conforme defaultTimeout da ferramenta (>60s = async).
  • get_call_tool_result — Obter resultado de call_tool async (por taskId).
  • eval_tool_script — Executar ferramenta uma vez sem instalar (one-off). Params: type, content, opcional sandboxId.
  • batch_call_tools — Chamar várias ferramentas em uma requisição.
  • list_more_tools — Listar ferramentas instaladas. Use get_tool_script_syntax para sintaxe de ferramenta (seções: document, image, audio, video, model, archive).

Suporte e recursos