Documentación de DeepTask Sandbox
Un sandbox seguro, local-first que conecta tu asistente de IA con tu entorno.DeepTask Sandbox es una aplicación de escritorio multiplataforma para ejecutar herramientas de automatización en entornos seguros y aislados. Desarrollada con Electron e integrada con un servidor MCP (Model Context Protocol) basado en Go, proporciona a tu asistente de IA un entorno seguro y con herramientas en tu máquina. Mediante conversación natural (vía MCP), tu asistente puede ejecutar herramientas, acceder a capacidades locales aprobadas y orquestar flujos de trabajo de forma fiable, con ejecución opcional en navegador (Puppeteer) cuando una tarea requiera una página real.
Nota: DeepTask Sandbox es gratuito para uso personal y educativo. El uso comercial requiere una licencia de pago con suscripción mensual según el número de usuarios.
Principios fundamentales
- Privacidad primero: Toda la automatización se ejecuta localmente. Tus datos nunca salen de tu máquina.
- Listo para asistentes: Creado nativamente para Model Context Protocol (MCP). Funciona de forma fluida con Claude, Cursor y más.
- Sandbox con herramientas: Ejecuta herramientas Node para automatización backend y herramientas Puppeteer para automatización de navegador y web scraping, cada una en procesos de trabajo aislados.
- Protecciones integradas: Programación (cron), historial de tareas, límites de recursos (memoria 64–2048 MB, umbrales de CPU), listas de dominios permitidos y ajustes/credenciales cifrados.
01. Inicio rápido
Ponerlo en marcha lleva menos de cinco minutos.
Paso 1: Instalar la aplicación de escritorio
Descarga y ejecuta el instalador para tu sistema operativo.
Paso 2: Conectar tu asistente
DeepTask usa el Model Context Protocol (MCP) para comunicarse con tu IA. Sigue las instrucciones para tu entorno preferido:
| OS | Tipo de instalación | Ruta del comando |
|---|---|---|
| Windows | System (Default) | C:\Program Files\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| Windows | User | C:\Users\<user>\AppData\Local\Programs\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| macOS | Standard | /Applications/DeepTask Sandbox.app/Contents/Resources/mcp/deeptask-mcp |
| Linux | Standard | /opt/deeptask-sandbox/resources/mcp/deeptask-mcp |
Ejemplo de bloque de configuración (Claude Desktop):
{
"mcpServers": {
"deeptask": {
"command": "PASTE_THE_COMMAND_PATH_HERE"
}
}
}
Paso 3: Tu primera herramienta
Una vez conectado, pide a tu asistente que cree y ejecute una pequeña herramienta dentro del sandbox.
Prueba este prompt:
"Usando DeepTask, escribe una pequeña herramienta node que obtenga el título de
https://example.comy lo devuelva como salida estructurada."
02. Guía de herramientas
Las herramientas de DeepTask son potentes, type-safe y fáciles de crear. Tu IA puede generarlas por ti o puedes escribirlas tú mismo.
Anatomía de una herramienta
Cada herramienta consta de dos partes: Metadata (la configuración) y la función principal (la lógica). Los nombres de herramientas deben usar snake_case (minúsculas, números y guiones bajos únicamente; ej. web_scraper). Las herramientas deben ser módulos ESM (.mjs); se soporta Node.js 24+.
import { browser } from "@deeptask/sandbox";
export const metadata = {
name: "web_scraper",
type: "puppeteer", // "node" for pure logic, "puppeteer" when you need a real browser
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
};
}
Funciones avanzadas
Carga de archivos
Puedes definir entradas que acepten archivos (PDFs, imágenes, etc.) usando JSON Schema: contentEncoding: "base64", contentMediaType (ej. application/pdf) y maxLength para límites de tamaño (base64 es ~33% más grande; ej. ~5MB → maxLength: 6990506).
inputSchema: {
properties: {
document: {
type: "string",
contentEncoding: "base64",
contentMediaType: "application/pdf",
maxLength: 6990506, // ~5MB file
description: "Upload a PDF for analysis"
}
}
}
En tu herramienta, decodifica con atob(input.document) (o new Uint8Array(atob(input.document).split('').map(c=>c.charCodeAt(0))) para binario) y procesa según sea necesario. Para límites de tamaño: maxLength = Math.ceil(bytes/3)*4 (ej. 1MB → 1398101, 5MB → 6990506).
Ajustes cifrados
Almacena la configuración sensible de forma segura. Se pide a los usuarios estos valores en la UI y se cifran en reposo. Usa format: "password" para campos de contraseña.
settingsSchema: {
properties: {
apiKey: {
type: "string",
format: "password",
title: "API Key"
}
}
}
03. Seguridad y aislamiento
Todos los planes incluyen estas protecciones. DeepTask está diseñado para fiabilidad y seguridad:
- Listas de dominios permitidos: Las herramientas no pueden acceder a la red a menos que configures
networkEnabled: truey especifiquesdomainsAllowed(usa["*"]para permitir todos los hosts). Cuando una URL está bloqueada,fetch()lanza antes de cualquier petición — envuelvefetch()en try/catch. - Límites de recursos: Memoria configurable (64–2048 MB; por defecto 256 MB para Node, 512 MB para Puppeteer) y umbral de CPU (50–100%, por defecto 95%). Las herramientas que excedan los límites se terminan automáticamente.
- Protección por tiempo de espera: Configurable por herramienta vía
defaultTimeout(por defecto 5 minutos). - Sistema de archivos: Acceso opcional de lectura/escritura a un sistema de archivos virtual (raíz
/) con carpetas/Temp,/Documents,/Images,/Videos,/Audios,/Downloads. Sin acceso al sistema de archivos del host; las rutas no pueden escapar de la raíz. UsafsEnabledyfsWriteEnabled. Usafs/promises— los métodos síncronos comoreadFileSyncestán bloqueados. Los archivos persisten entre invocaciones de herramientas;/Tempse limpia al iniciar la app y cada 24h (máxima antigüedad 48h).
04. Funciones Pro
Programación inteligente
Automatiza tus flujos de trabajo con soporte Cron integrado.
- Informes diarios:
0 9 * * *(Cada mañana a las 9) - Limpieza semanal:
0 0 * * 0(Cada domingo a medianoche)
05. API y referencia de herramientas
Sandbox API
Importa desde @deeptask/sandbox:
| API | Descripción |
|---|---|
browser | (Puppeteer only) browser.getPage() → primary Page; browser.getPages() → all pages. Use import { browser } from "@deeptask/sandbox"; |
tool | tool.self.settings (encrypted at rest), tool.call(name, params, sandboxId?), tool.chain([{name, params, sandboxId?}, ...]). Use import { tool } from "@deeptask/sandbox"; |
document, image, audio, video, model, archive | APIs integradas (ver secciones siguientes). Todas devuelven { files, data, isError, message }. |
language, timeZone | Locale y zona horaria del sandbox. |
fs / fs/promises | (cuando fsEnabled) FS virtual bajo / con /Temp, /Documents, /Images, etc. Usa fs/promises — los métodos síncronos están bloqueados. |
Puppeteer: page.goto() acepta solo http/https. Envuelve en try/catch. Usa response.buffer() (no body()) para los bytes de respuesta.
document
import { document } from "@deeptask/sandbox"
Conversión de documentos, manipulación de PDF y búsqueda de texto completo. Todos los métodos devuelven { files, data, isError, message }. Comprueba siempre isError antes de usar files o data.
| Method | Descripción |
|---|---|
convertDocument | Convertir entre formatos. Pares: md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Las opciones varían por par (ej. html→pdf: format, printBackground; pdf→html: startPage, endPage). |
mergePdf | Fusionar varios PDFs en uno. |
splitPdf | Dividir PDF en páginas. Omite pages para un archivo por página. Las salidas van a /Temp/. |
compressPdf | Comprimir PDF. Opciones: quality (screen, ebook, printer, prepress). |
fillPdfForm | Rellenar campos de formulario PDF. Las claves son nombres de campo PDF crudos (sensible a mayúsculas). |
getPdfInfo | Obtener número de páginas, título, autor, etc. |
getPdfForm | Listar campos de formulario en un PDF. |
extractArticle | Extraer texto principal del artículo (Readability). Soporta md, pdf, docx, pptx, epub, html. Devuelve data.text; comprueba cadena vacía. |
extractPages | Extraer rango de páginas de PDF (1-based inclusivo). |
searchFiles | Búsqueda de texto completo en archivos indexados. Solo /Documents está indexado. Devuelve data.hits, data.total. Usa limit (por defecto 20). |
searchInFile | Buscar dentro de un archivo. Soporta texto y tipos de oficina. offset/limit paginan resultados. |
Nota: protectPdf no está implementado — no uses.
image
import { image } from "@deeptask/sandbox"
Procesamiento de imágenes con Sharp/libvips. Todos los métodos devuelven { files, data, isError, message }.
| Method | Descripción |
|---|---|
resizeImage | Redimensionar. Opciones: fit (cover, contain, fill, inside, outside), withoutEnlargement. |
compressImage | Recodificar para reducir tamaño; preserva metadatos. |
minifyImage | Quitar solo metadatos. |
cropImage | Recortar por left, top, width, height. |
rotateImage | Rotar por ángulo. |
flipImage / flopImage | Reflejar horizontal o verticalmente. |
convertImage | Convertir formato. Soporta png, jpeg, gif, tiff, webp, ico, icns; SVG como origen. |
removeBackground | Coincidencia de color simple (no IA). Salida PNG. threshold 0–255 (por defecto 10). |
compositeImage | Superponer imágenes en left, top, opcional opacity. |
mergeImages | Combinar imágenes. Opciones: layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight. |
getImageInfo | Devuelve data: { width, height, format, channels, hasAlpha, space }. |
blurImage, sharpenImage | Desenfocar o afilar; sigma controla la intensidad. |
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImage | Operaciones de color y diseño. |
audio
import { audio } from "@deeptask/sandbox"
Conversión y procesamiento de audio. Todos los métodos devuelven { files, data, isError, message }.
| Method | Descripción |
|---|---|
convertAudio | Convertir formato. Soporta mp3, wav, aac, ogg, flac, m4a, wma, opus. |
trimAudio | Recortar por start, end o duration (segundos). |
concatAudio | Concatenar archivos de audio. |
setAudioVolume | Establecer volumen (número). |
setAudioTempo | Tempo 0.5–2.0 (límite FFmpeg). |
fadeAudio | Fundido entrada/salida. Opciones: type, start, duration. |
normalizeAudio | Normalizar volumen. target LUFS (por defecto -16). |
removeAudioSilence | Quitar silencio. threshold dB (por defecto -50), duration segundos (por defecto 0.5). |
mixAudio | Mezclar varios archivos de audio. Opcional volumes. |
getAudioInfo | Devuelve data: { duration, sampleRate, channels, bitrate, format, codec }. |
textToSpeech | Texto a voz. Solo macOS/Windows. format: mp3, wav, ogg. |
Nota: voiceToText no está implementado — no uses.
video
import { video } from "@deeptask/sandbox"
Conversión, recorte y efectos de vídeo. Todos los métodos devuelven { files, data, isError, message }.
| Method | Descripción |
|---|---|
convertVideo | Convertir formato. Soporta mp4, webm, avi, mov, mkv, m4v, flv, wmv. |
compressVideo | Comprimir. Opciones: crf (18–28, por defecto 23), maxWidth, maxHeight, videoBitrate, audioBitrate. |
trimVideo | Recortar por start, end o duration. |
concatVideos | Concatenar archivos de vídeo. |
extractAudioTrack | Extraer audio a mp3, wav, aac, m4a, ogg, flac. |
extractFrame | Extraer un solo frame en timestamp. |
screenshotVideo | Extraer frames en varios timestamps. Devuelve una imagen por timestamp en orden. |
videoToGif | Convertir vídeo a GIF. Opciones: start, duration, fps, width, height. |
generateGif | Crear GIF desde secuencia de imágenes. Opciones: fps, width, height, loop. |
burnSubtitles | Incrustar archivo de subtítulos en vídeo. |
extractSubtitles | Extraer subtítulos a srt o vtt. |
cropVideo, rotateVideo | Recortar o rotar (90, 180, 270). |
setVideoSpeed, setVideoVolume, fadeVideo | Efectos de velocidad, volumen y fundido. |
getVideoInfo | Devuelve data: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... }. |
model
import { model } from "@deeptask/sandbox"
Generación de texto LLM, generación de imágenes y vídeo. Requiere networkEnabled y claves API. Guarda apiKey en settingsSchema con format: "password"; accede vía tool.self.settings.apiKey. No hardcodear claves nunca.
| Method | Descripción |
|---|---|
generateText | Completar chat. messages, opcional system, options: { provider, apiKey, baseURL }. Proveedores: openai, anthropic, google, cohere, mistral, openrouter, grok, deepseek, groq. Por defecto: openai (gpt-4o-mini). |
generateImage | Generación de imágenes. prompt, opcional image (image-to-image). Proveedores: openai, stability, replicate, fal, together, nano-banana, ideogram. Image-to-image solo con fal, nano-banana. |
generateVideo | Generación de vídeo. prompt, opcional image. Proveedores: runway, replicate, luma, kling, minimax, seedance, veo3. La resolución es específica del proveedor (ej. ratio, resolution). |
archive
import { archive } from "@deeptask/sandbox"
Comprimir y descomprimir archivos. Todos los métodos devuelven { files, data, isError, message }.
| Method | Descripción |
|---|---|
zipFiles | Comprimir archivos en un solo archivo. Salida: archive-{timestamp}.zip en /Temp/. Archivos en la raíz del zip (no se preserva la estructura de directorios). |
unzipFile | Descomprimir. filter: subcadenas de nombre de archivo a incluir. files[] contiene rutas virtuales de archivos extraídos; se preserva la estructura de directorios. |
Herramientas MCP para asistentes
Tu asistente de IA interactúa con DeepTask a través de estas herramientas MCP:
install_tool— Instalar una herramienta para reutilizar. Ejecutar concall_tooldespués.uninstall_tool— Eliminar una herramienta instalada.call_tool— Ejecutar una herramienta instalada. Síncrono/asíncrono segúndefaultTimeoutde la herramienta (>60s = async).get_call_tool_result— Consultar resultado decall_toolasync (portaskId).eval_tool_script— Ejecutar herramienta una vez sin instalar (de un solo uso). Parámetros:type,content, opcionalsandboxId.batch_call_tools— Llamar varias herramientas en una sola petición.list_more_tools— Listar herramientas instaladas. Usaget_tool_script_syntaxpara la sintaxis de herramientas (secciones:document,image,audio,video,model,archive).
Soporte y recursos
- Web: deeptask.ai
- Email: [email protected]
- Incidencias: Reportar bugs o solicitar funciones a través del menú de feedback de la app.