Pas un script de dotfiles. Pas un IDE hébergé.
Une petite app qui transforme « monte-moi un environnement propre pour ça » en bouton, sur du matériel que vous payez déjà — et qui le fait disparaître quand vous avez fini.
- éditeur
- code-server dans chaque espace de travail, sur son propre sous-domaine — un IDE complet dans un onglet
- terminal
- persistant : fermer l’onglet ne tue pas le build, et l’historique revient
- projets
- des specs à la devcontainer : image de base, features, extensions, ports, postCreate / postStart
- versions
- modifier un projet incrémente sa version et pré-construit l’image : le lancement suivant est à chaud
- vos clés
- ~/.ssh monté en lecture seule : tout hébergeur git que votre clé atteint clone et pousse, phrase de passe comprise
- secrets
- globaux ou par projet, chiffrés au repos, injectés en variables d’environnement au démarrage
- stockage
- SQLite dans un volume — sauvegardez-le et vous avez sauvegardé toute l’installation
- routage
- worker-<id>.localhost pour l’IDE, worker-<id>-<port>.localhost pour chaque port qui écoute
étape 1
Lancez le conteneur
Un docker run avec le socket Docker monté — ou le fichier compose ci-dessous. Puis ouvrez http://localhost. Pas d’étape de création de compte, parce qu’il n’y a pas de comptes.
étape 2
Décrivez un projet
Partez d’un modèle (Next.js, Vite, Astro, FastAPI, Express, Docker-in-Docker) ou pointez-le sur votre propre dépôt et votre image de base. Features, ports, hooks et secrets vivent tous dans la spec.
étape 3
Lancez un espace de travail
Un conteneur voisin démarre à partir de cette spec, clone vos dépôts, lance vos hooks et vous donne un éditeur et un terminal sur leur propre sous-domaine.
si vous préférez un fichier
Ou la version compose.
La même chose, plus facile à garder à côté de ce que vous faites déjà tourner. Posez une fois une vraie DATA_ENCRYPTION_KEY (openssl rand -hex 32) : c’est avec elle que vos secrets sont chiffrés.
services:
spunto-lite:
image: ghcr.io/spuntodotnet/spunto-lite:latest
restart: unless-stopped
ports: ["80:80"]
environment:
DATA_ENCRYPTION_KEY: ${DATA_ENCRYPTION_KEY}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- $HOME/.ssh:/host-ssh:ro
- spunto-lite-ssh-agent:/run/spunto-ssh-agent
- spunto-lite-data:/app/data
volumes:
spunto-lite-data:
spunto-lite-ssh-agent:Un endroit sûr où laisser tourner un agent.
Un agent de code a besoin d’un shell qui peut installer des choses, d’un serveur qu’il peut démarrer et d’un dépôt qu’il peut casser. Lui donner tout ça sur votre portable, c’est finir avec un démon mystère et une base de données corrompue. Lui donner un espace de travail Lite, c’est juste un conteneur — son propre réseau, ses propres ports, son propre clone — que vous jetez quand il a fini.
Écrivez ce que vous voulez sur un projet, choisissez le harnais et le modèle, et un worker du pool du projet reçoit la session. Vous suivez la réponse pendant qu’elle s’écrit, vous répondez ou l’interrompez, lisez le diff depuis la machine elle-même, ouvrez un shell dessus, puis Accept ou Drop.
Comment marchent les tâches →- harnais
- Claude Code, Codex et Mistral Vibe — leurs SDK officiels, cuits dans l’image du projet
- clés
- ANTHROPIC_API_KEY, OPENAI_API_KEY ou MISTRAL_API_KEY, comme un secret ordinaire
- sans git imposé
- aucune branche n’est créée pour la tâche : l’agent en fait une s’il en a besoin, et la nomme
- serveurs MCP
- Notion, Linear… connectés une fois en OAuth ; le worker ne détient jamais le jeton de l’éditeur
Trois choses qu’il ne fera pas.
Aucune n’est sur une feuille de route. C’est la frontière entre un outil qu’on fait tourner sur son portable et une plateforme dont dépend une équipe, et la tracer nettement est la seule façon pour Lite de rester aussi petit.
- !Pas d’écran de connexion. Il détient votre socket Docker : gardez-le sur localhost ou sur un réseau de confiance — jamais sur Internet.
- !Une machine, une personne. Pas d’organisations, pas de rôles, pas d’espace partagé avec un collègue.
- !Votre machine seulement. Pas de parc de serveurs, pas de machines cloud à louer — c’est Spunto Cloud.
lite ou cloud — toute la différence
La spec que vous écrivez dans Lite — image, features, hooks, ports — est le format de Spunto Cloud : exportez un projet de l’un, importez-le dans l’autre.
Voir Spunto Cloud →Essayez-le le temps de lire cette page.
C’est sous licence MIT et l’image est publique : essayer ne coûte que de l’espace disque.