Documentation DeepTask Sandbox
Un sandbox sécurisé et local-first qui connecte votre assistant IA à votre environnement.DeepTask Sandbox est une application de bureau multiplateforme pour exécuter des outils d'automatisation dans des environnements sécurisés et isolés. Construite avec Electron et intégrée à un serveur MCP (Model Context Protocol) basé sur Go, elle offre à votre assistant IA un environnement sûr et outillé sur votre machine. Par une conversation naturelle (via MCP), votre assistant peut exécuter des outils, accéder aux capacités locales autorisées et orchestrer des flux de travail de manière fiable — avec une exécution optionnelle via navigateur (Puppeteer) lorsque une tâche nécessite une vraie page.
Note : DeepTask Sandbox est gratuit pour un usage personnel et éducatif. L'usage commercial nécessite une licence payante avec tarification par abonnement mensuel selon le nombre d'utilisateurs.
Principes fondamentaux
- Confidentialité d'abord : Toute l'automatisation s'exécute localement. Vos données ne quittent jamais votre machine.
- Prêt pour les assistants : Conçu nativement pour le Model Context Protocol (MCP). Fonctionne avec Claude, Cursor et plus.
- Sandbox outillable : Exécutez des outils Node pour l'automatisation backend et des outils Puppeteer pour l'automatisation navigateur et le web scraping — chacun dans des processus isolés.
- Garde-fous intégrés : Planification (cron), historique des tâches, limites de ressources (mémoire 64–2048 Mo, seuils CPU), listes blanches de domaines, et paramètres/identifiants chiffrés.
01. Démarrage rapide
La mise en route prend moins de cinq minutes.
Étape 1 : Installer l'application de bureau
Téléchargez et exécutez l'installateur pour votre système d'exploitation.
Étape 2 : Connecter votre assistant
DeepTask utilise le Model Context Protocol (MCP) pour communiquer avec votre IA. Suivez les instructions pour votre environnement :
| OS | Type d'installation | Chemin de commande |
|---|---|---|
| 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 |
Exemple de bloc de configuration (Claude Desktop) :
{
"mcpServers": {
"deeptask": {
"command": "PASTE_THE_COMMAND_PATH_HERE"
}
}
}
Étape 3 : Votre premier outil
Une fois connecté, demandez simplement à votre assistant de créer et exécuter un petit outil dans le sandbox.
Essayez cette invite :
"En utilisant DeepTask, écris un petit outil node qui récupère le titre de
https://example.comet le retourne en sortie structurée."
02. Guide des outils
Les outils DeepTask sont puissants, type-safe et faciles à créer. Votre IA peut les générer pour vous, ou vous pouvez les écrire vous-même.
Anatomie d'un outil
Chaque outil se compose de deux parties : les Metadata (la configuration) et la fonction principale (la logique). Les noms d'outils doivent utiliser snake_case (minuscules, chiffres, tirets bas uniquement ; ex. web_scraper). Les outils doivent être des modules ESM (.mjs) ; Node.js 24+ est pris en charge.
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
};
}
Fonctions avancées
Téléversement de fichiers
Vous pouvez définir des entrées acceptant des fichiers (PDF, images, etc.) via JSON Schema : contentEncoding: "base64", contentMediaType (ex. application/pdf) et maxLength pour les limites de taille (base64 est ~33 % plus grand ; ex. ~5 Mo → maxLength: 6990506).
inputSchema: {
properties: {
document: {
type: "string",
contentEncoding: "base64",
contentMediaType: "application/pdf",
maxLength: 6990506, // ~5MB file
description: "Upload a PDF for analysis"
}
}
}
Dans votre outil, décodez avec atob(input.document) (ou new Uint8Array(atob(input.document).split('').map(c=>c.charCodeAt(0))) pour le binaire) et traitez selon besoin. Pour les limites de taille : maxLength = Math.ceil(bytes/3)*4 (ex. 1 Mo → 1398101, 5 Mo → 6990506).
Paramètres chiffrés
Stockez la configuration sensible en toute sécurité. Les utilisateurs sont invités à saisir ces valeurs dans l'interface, et elles sont chiffrées au repos. Utilisez format: "password" pour les champs de mot de passe.
settingsSchema: {
properties: {
apiKey: {
type: "string",
format: "password",
title: "API Key"
}
}
}
03. Sécurité et isolation
Tous les plans incluent ces protections. DeepTask est conçu pour la fiabilité et la sécurité :
- Listes blanches de domaines : Les outils ne peuvent pas accéder au réseau sauf si vous définissez
networkEnabled: trueet spécifiezdomainsAllowed(utilisez["*"]pour autoriser tous les hôtes). Quand une URL est bloquée,fetch()lance avant toute requête — enveloppezfetch()dans try/catch. - Limites de ressources : Mémoire configurable (64–2048 Mo ; par défaut 256 Mo pour Node, 512 Mo pour Puppeteer) et seuil CPU (50–100 %, défaut 95 %). Les outils dépassant les limites sont automatiquement terminés.
- Protection par timeout : Configurable par outil via
defaultTimeout(par défaut 5 minutes). - Système de fichiers : Accès lecture/écriture optionnel à un système de fichiers virtuel (racine
/) avec les dossiers/Temp,/Documents,/Images,/Videos,/Audios,/Downloads. Pas d'accès au système de fichiers hôte ; les chemins ne peuvent pas s'échapper de la racine. UtilisezfsEnabledetfsWriteEnabled. Utilisezfs/promises— les méthodes sync commereadFileSyncsont bloquées. Les fichiers persistent entre les invocations ;/Tempest nettoyé au démarrage de l'app et toutes les 24 h (âge max 48 h).
04. Fonctions Pro
Planification intelligente
Automatisez vos flux de travail avec le support Cron intégré.
- Rapports quotidiens :
0 9 * * *(Chaque matin à 9 h) - Nettoyage hebdomadaire :
0 0 * * 0(Chaque dimanche à minuit)
05. API et référence des outils
Sandbox API
Importez depuis @deeptask/sandbox :
| API | Description |
|---|---|
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 intégrées (voir sections ci-dessous). Toutes renvoient { files, data, isError, message }. |
language, timeZone | Locale et fuseau horaire du sandbox. |
fs / fs/promises | (quand fsEnabled) FS virtuel sous / avec /Temp, /Documents, /Images, etc. Utilisez fs/promises — les méthodes sync sont bloquées. |
Puppeteer : page.goto() n'accepte que http/https. Enveloppez dans try/catch. Utilisez response.buffer() (pas body()) pour les octets de réponse.
document
import { document } from "@deeptask/sandbox"
Conversion de documents, manipulation PDF et recherche plein texte. Toutes les méthodes renvoient { files, data, isError, message }. Toujours vérifier isError avant d'utiliser files ou data.
| Method | Description |
|---|---|
convertDocument | Convertir entre formats. Paires : md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Les options varient selon la paire (ex. html→pdf : format, printBackground ; pdf→html : startPage, endPage). |
mergePdf | Fusionner plusieurs PDF en un. |
splitPdf | Découper un PDF en pages. Omettre pages pour un fichier par page. Sorties dans /Temp/. |
compressPdf | Compresser un PDF. Options : quality (screen, ebook, printer, prepress). |
fillPdfForm | Remplir les champs de formulaire PDF. Les clés sont les noms bruts des champs PDF (sensibles à la casse). |
getPdfInfo | Obtenir nombre de pages, titre, auteur, etc. |
getPdfForm | Lister les champs de formulaire d'un PDF. |
extractArticle | Extraire le texte principal de l'article (Readability). Supporte md, pdf, docx, pptx, epub, html. Renvoie data.text ; vérifier la chaîne vide. |
extractPages | Extraire une plage de pages d'un PDF (1-based inclus). |
searchFiles | Recherche plein texte dans les fichiers indexés. Seul /Documents est indexé. Renvoie data.hits, data.total. Utilisez limit (défaut 20). |
searchInFile | Rechercher dans un fichier. Supporte texte et types office. offset/limit paginent les résultats. |
Note : protectPdf n'est pas implémenté — ne pas utiliser.
image
import { image } from "@deeptask/sandbox"
Traitement d'images avec Sharp/libvips. Toutes les méthodes renvoient { files, data, isError, message }.
| Method | Description |
|---|---|
resizeImage | Redimensionner. Options : fit (cover, contain, fill, inside, outside), withoutEnlargement. |
compressImage | Ré-encoder pour réduire la taille ; préserve les métadonnées. |
minifyImage | Retirer les métadonnées uniquement. |
cropImage | Recadrer par left, top, width, height. |
rotateImage | Rotation par angle. |
flipImage / flopImage | Miroir horizontal ou vertical. |
convertImage | Convertir le format. Supporte png, jpeg, gif, tiff, webp, ico, icns ; SVG comme source. |
removeBackground | Correspondance de couleur simple (pas d'IA). Sortie PNG. threshold 0–255 (défaut 10). |
compositeImage | Superposer des images en left, top, opacity optionnelle. |
mergeImages | Combiner des images. Options : layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight. |
getImageInfo | Renvoie data: { width, height, format, channels, hasAlpha, space }. |
blurImage, sharpenImage | Flou ou netteté ; sigma contrôle l'intensité. |
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImage | Opérations couleur et mise en page. |
audio
import { audio } from "@deeptask/sandbox"
Conversion et traitement audio. Toutes les méthodes renvoient { files, data, isError, message }.
| Method | Description |
|---|---|
convertAudio | Convertir le format. Supporte mp3, wav, aac, ogg, flac, m4a, wma, opus. |
trimAudio | Découper par start, end ou duration (secondes). |
concatAudio | Concaténer des fichiers audio. |
setAudioVolume | Définir le volume (nombre). |
setAudioTempo | Tempo 0,5–2,0 (limite FFmpeg). |
fadeAudio | Fondu entrée/sortie. Options : type, start, duration. |
normalizeAudio | Normaliser le volume. target LUFS (défaut -16). |
removeAudioSilence | Retirer le silence. threshold dB (défaut -50), duration secondes (défaut 0,5). |
mixAudio | Mélanger plusieurs fichiers audio. volumes optionnel. |
getAudioInfo | Renvoie data: { duration, sampleRate, channels, bitrate, format, codec }. |
textToSpeech | Synthèse vocale. macOS/Windows uniquement. format : mp3, wav, ogg. |
Note : voiceToText n'est pas implémenté — ne pas utiliser.
video
import { video } from "@deeptask/sandbox"
Conversion, découpage et effets vidéo. Toutes les méthodes renvoient { files, data, isError, message }.
| Method | Description |
|---|---|
convertVideo | Convertir le format. Supporte mp4, webm, avi, mov, mkv, m4v, flv, wmv. |
compressVideo | Compresser. Options : crf (18–28, défaut 23), maxWidth, maxHeight, videoBitrate, audioBitrate. |
trimVideo | Découper par start, end ou duration. |
concatVideos | Concaténer des fichiers vidéo. |
extractAudioTrack | Extraire l'audio en mp3, wav, aac, m4a, ogg, flac. |
extractFrame | Extraire une frame unique à timestamp. |
screenshotVideo | Extraire des frames à plusieurs timestamps. Renvoie une image par timestamp dans l'ordre. |
videoToGif | Convertir une vidéo en GIF. Options : start, duration, fps, width, height. |
generateGif | Créer un GIF à partir d'une séquence d'images. Options : fps, width, height, loop. |
burnSubtitles | Graver un fichier de sous-titres dans la vidéo. |
extractSubtitles | Extraire les sous-titres en srt ou vtt. |
cropVideo, rotateVideo | Recadrer ou pivoter (90, 180, 270). |
setVideoSpeed, setVideoVolume, fadeVideo | Effets de vitesse, volume et fondu. |
getVideoInfo | Renvoie data: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... }. |
model
import { model } from "@deeptask/sandbox"
Génération de texte LLM, d'images et de vidéos. Nécessite networkEnabled et des clés API. Stockez apiKey dans settingsSchema avec format: "password" ; accès via tool.self.settings.apiKey. Ne jamais hardcoder les clés.
| Method | Description |
|---|---|
generateText | Complétion de chat. messages, system optionnel, options: { provider, apiKey, baseURL }. Fournisseurs : openai, anthropic, google, cohere, mistral, openrouter, grok, deepseek, groq. Défaut : openai (gpt-4o-mini). |
generateImage | Génération d'images. prompt, image optionnel (image-to-image). Fournisseurs : openai, stability, replicate, fal, together, nano-banana, ideogram. Image-to-image uniquement avec fal, nano-banana. |
generateVideo | Génération de vidéo. prompt, image optionnel. Fournisseurs : runway, replicate, luma, kling, minimax, seedance, veo3. La résolution est spécifique au fournisseur (ex. ratio, resolution). |
archive
import { archive } from "@deeptask/sandbox"
Zipper et dézipper des fichiers. Toutes les méthodes renvoient { files, data, isError, message }.
| Method | Description |
|---|---|
zipFiles | Zipper des fichiers en une archive. Sortie : archive-{timestamp}.zip dans /Temp/. Fichiers à la racine du zip (structure de dossiers non préservée). |
unzipFile | Dézipper. filter : sous-chaînes de noms de fichiers à inclure. files[] contient les chemins virtuels des fichiers extraits ; structure de dossiers préservée. |
Outils MCP pour les assistants
Votre assistant IA interagit avec DeepTask via ces outils MCP :
install_tool— Installer un outil pour réutilisation. Exécuter aveccall_toolensuite.uninstall_tool— Supprimer un outil installé.call_tool— Exécuter un outil installé. Sync/async selondefaultTimeoutde l'outil (>60 s = async).get_call_tool_result— Interroger le résultat decall_toolasync (partaskId).eval_tool_script— Exécuter un outil une fois sans installation (ponctuel). Paramètres :type,content,sandboxIdoptionnel.batch_call_tools— Appeler plusieurs outils en une requête.list_more_tools— Lister les outils installés. Utilisezget_tool_script_syntaxpour la syntaxe des outils (sections :document,image,audio,video,model,archive).
Support et ressources
- Site web : deeptask.ai
- E-mail : [email protected]
- Incidents : Signaler des bugs ou demander des fonctionnalités via le menu de feedback de l'app.