Documentação DeepTask Sandbox
Um sandbox seguro e local-first que conecta seu assistente de IA ao seu ambiente.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.
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:
| OS | Tipo de instalação | Caminho do comando |
|---|---|---|
| Windows | Sistema (padrão) | C:\Program Files\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| Windows | Usuário | C:\Users\<user>\AppData\Local\Programs\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| macOS | Padrão | /Applications/DeepTask Sandbox.app/Contents/Resources/mcp/deeptask-mcp |
| Linux | Padrã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.come 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: truee especifiquedomainsAllowed(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. UsefsEnabledefsWriteEnabled. Usefs/promises(métodos sync comoreadFileSyncsã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:
| API | Descrição |
|---|---|
browser | (apenas Puppeteer) browser.getPage() → página principal; browser.getPages() → todas as páginas. Use import { browser } from "@deeptask/sandbox"; |
tool | tool.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, archive | APIs integradas (veja seções abaixo). Todos retornam { files, data, isError, message }. |
language, timeZone | Locale 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étodo | Descrição |
|---|---|
convertDocument | Converter entre formatos. Pares: md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Opções variam por par. |
mergePdf | Mesclar vários PDFs em um. |
splitPdf | Dividir PDF em páginas. Omita pages para um arquivo por página. Saídas em /Temp/. |
compressPdf | Comprimir PDF. Opções: quality (screen, ebook, printer, prepress). |
fillPdfForm | Preencher campos de formulário PDF. Chaves são nomes de campo PDF brutos (sensível a maiúsculas). |
getPdfInfo | Obter contagem de páginas, título, autor, etc. |
getPdfForm | Listar campos de formulário em um PDF. |
extractArticle | Extrair texto principal do artigo (Readability). Suporta md, pdf, docx, pptx, epub, html. Retorna data.text; verifique string vazia. |
extractPages | Extrair faixa de páginas do PDF (1-based inclusivo). |
searchFiles | Busca full-text em arquivos indexados. Apenas /Documents é indexado. Retorna data.hits, data.total. Use limit (padrão 20). |
searchInFile | Buscar 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étodo | Descrição |
|---|---|
resizeImage | Redimensionar. Opções: fit (cover, contain, fill, inside, outside), withoutEnlargement. |
compressImage | Re-codificar para reduzir tamanho; preserva metadados. |
minifyImage | Remover apenas metadados. |
cropImage | Recortar por left, top, width, height. |
rotateImage | Rotacionar por ângulo. |
flipImage / flopImage | Espelhar horizontal ou verticalmente. |
convertImage | Converter formato. Suporta png, jpeg, gif, tiff, webp, ico, icns; SVG como origem. |
removeBackground | Correspondência simples de cor (não IA). Saída PNG. threshold 0–255 (padrão 10). |
compositeImage | Sobrepor imagens em left, top, opcional opacity. |
mergeImages | Combinar imagens. Opções: layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight. |
getImageInfo | Retorna data: { width, height, format, channels, hasAlpha, space }. |
blurImage, sharpenImage | Desfocar ou nitidez; sigma controla intensidade. |
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImage | Operaçõ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étodo | Descrição |
|---|---|
convertAudio | Converter formato. Suporta mp3, wav, aac, ogg, flac, m4a, wma, opus. |
trimAudio | Recortar por start, end ou duration (segundos). |
concatAudio | Concatenar arquivos de áudio. |
setAudioVolume | Definir volume (número). |
setAudioTempo | Tempo 0.5–2.0 (limite FFmpeg). |
fadeAudio | Fade in/out. Opções: type, start, duration. |
normalizeAudio | Normalizar loudness. target LUFS (padrão -16). |
removeAudioSilence | Remover silêncio. threshold dB (padrão -50), duration segundos (padrão 0.5). |
mixAudio | Misturar vários arquivos de áudio. Opcional volumes. |
getAudioInfo | Retorna data: { duration, sampleRate, channels, bitrate, format, codec }. |
textToSpeech | Texto 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étodo | Descrição |
|---|---|
convertVideo | Converter formato. Suporta mp4, webm, avi, mov, mkv, m4v, flv, wmv. |
compressVideo | Comprimir. Opções: crf (18–28, padrão 23), maxWidth, maxHeight, videoBitrate, audioBitrate. |
trimVideo | Recortar por start, end ou duration. |
concatVideos | Concatenar arquivos de vídeo. |
extractAudioTrack | Extrair áudio para mp3, wav, aac, m4a, ogg, flac. |
extractFrame | Extrair um único frame em timestamp. |
screenshotVideo | Extrair frames em múltiplos timestamps. Retorna uma imagem por timestamp em ordem. |
videoToGif | Converter vídeo para GIF. Opções: start, duration, fps, width, height. |
generateGif | Criar GIF a partir de sequência de imagens. Opções: fps, width, height, loop. |
burnSubtitles | Gravar arquivo de legenda no vídeo. |
extractSubtitles | Extrair legendas para srt ou vtt. |
cropVideo, rotateVideo | Recortar ou rotacionar (90, 180, 270). |
setVideoSpeed, setVideoVolume, fadeVideo | Efeitos de velocidade, volume, fade. |
getVideoInfo | Retorna 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étodo | Descrição |
|---|---|
generateText | Conclusã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). |
generateImage | Geraçã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. |
generateVideo | Geraçã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étodo | Descrição |
|---|---|
zipFiles | Compactar arquivos em um arquivo. Saída: archive-{timestamp}.zip em /Temp/. Arquivos na raiz do zip (estrutura de diretório não preservada). |
unzipFile | Descompactar. 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 comcall_tool.uninstall_tool— Remover uma ferramenta instalada.call_tool— Executar uma ferramenta instalada. Sync/async conformedefaultTimeoutda ferramenta (>60s = async).get_call_tool_result— Obter resultado decall_toolasync (portaskId).eval_tool_script— Executar ferramenta uma vez sem instalar (one-off). Params:type,content, opcionalsandboxId.batch_call_tools— Chamar várias ferramentas em uma requisição.list_more_tools— Listar ferramentas instaladas. Useget_tool_script_syntaxpara sintaxe de ferramenta (seções:document,image,audio,video,model,archive).
Suporte e recursos
- Site: deeptask.ai
- E-mail: [email protected]
- Problemas: Reporte bugs ou peça recursos pelo menu de feedback do app.