Varin

Tout ce qui entoure le modèle, prêt à l’emploi et personnalisable en profondeur.

v0.9.32WindowsmacOSLinuxAuto-hébergé avec Docker

01 · Harness

Le même modèle va plus loin dans Varin.

Le modèle est au centre. Chaque cellule autour de lui est quelque chose que Varin prépare pour lui : outils, contexte, exécution, collaboration et reprise. Placé ici, le même modèle mène à bien des tâches plus longues et plus complexes.

    • Sorties lisiblesTaillées selon leur structure, originaux à portée
    • Préparé à l’avanceLe contexte se range en arrière-plan
    • Comptes exactsTokenizers locaux, calés sur l’usage réel
    • MémoireVoyez ce qu’il retient, et modifiez-le
    • Outils à la demandeLes courants sous la main, les autres chargés au besoin
    • Contexte autogéréIl résume et garde les extraits clés
    • MCP, deux façonsExposé directement ou découvert au besoin
    • Copies isoléesChaque coéquipier code dans sa propre copie
    • Travail d’équipeAssigner, échanger, transmettre, rendre compte
    • ModèleIl réfléchit. Vous choisissez lequel.
    • Exécution durableChaque étape notée, reprise après redémarrage
    • Questions sans blocageLe reste avance pendant qu’il attend votre réponse
    • Multi-modèlesUne tâche, plusieurs modèles, en parallèle
    • Objectifs et relancesDes objectifs budgétés qui reprennent au bon moment
    • Pas de rejeu aveugleUn résultat incertain impose une vérification
    • Relances automatiquesBackoff intégré, règles modifiables
    • Outils scriptésUn script, plusieurs outils, un arbre d’appels visible
    • Historique des fichiersRevenir par tour, et annuler ce retour
    • Règles d’accèsAutoriser, demander ou refuser, outil par outil

02 · Prêt, et à vous

Bien réglé par défaut. Personnalisable en profondeur.

Prêt à l’emploi

Ajoutez une clé d’API et commencez. Tout le reste est déjà en place.

outils natifs
~80
modes de travail
4
espaces de travail officiels
4
serveurs de langage intégrés
6
protocoles de modèle natifs
8
familles de thèmes, clair et sombre
21
langues d’interface
10
langues en dictée hors ligne
~100

Personnalisation en profondeur

Ajustez le fonctionnement de chaque partie sans écrire de code.

  • Changez le modèle, les instructions ou les outils de n’importe quel agent prédéfini, ou créez le vôtre
  • Des modèles distincts pour les titres, le contexte, la planification, les images et les embeddings
  • Instructions système et mémoire modifiables
  • Skills compatibles avec les dossiers .claude et .agents, installables depuis un dépôt Git
  • Serveurs MCP exposés directement ou découverts à la demande
  • Règles de permission par outil et politiques de relance configurables

Utilisez votre propre clé d’API.

Les clés restent sur votre propre Host, les requêtes partent directement vers les fournisseurs que vous configurez, et l’usage est enregistré par canal et par modèle, tour après tour.

  • OpenAI Responses
  • OpenAI Chat
  • Anthropic
  • Gemini
  • Vertex AI
  • Azure OpenAI
  • Bedrock
  • Mistral
  • Alibaba Model Studio
  • Zhipu
  • StepFun
  • Ollama
  • LM Studio
  • Tout endpoint compatible

03 · Quatre façons de travailler

Un mode pour le code, la recherche, la bureautique et le reste.Le mode détermine les outils dont l’agent dispose d’emblée et les coéquipiers qui l’aident.

ProgrammationCODE

Des outils pour travailler sur le code

Lire et modifier le code, lancer des commandes, ouvrir des terminaux. Chaque fichier modifié est sauvegardé à chaque tour, pour revenir en arrière à tout moment.

WorkerAgent de rechercheVérificateur
« Refactorise le module de connexion et préviens-moi quand tous les tests passent. »

RechercheRESEARCH

Étudier des questions, comparer les explications, concevoir des expériences

Interroger OpenAlex et Semantic Scholar, lire articles et PDF, et faire avancer une expérience pas à pas.

WorkerAgent de recherchePartenaire de recherche
« Trouve les articles des deux dernières années sur ce sujet et fais-en un tableau comparatif filtrable. »

BureautiqueOFFICE

Documents, données, navigateur et outils de bureau

Il travaille directement avec Word, Excel et PowerPoint, ainsi qu’avec le navigateur et les applications de votre ordinateur.

WorkerAgent de recherche
« Exporte les commandes du mois dernier dans un fichier Excel avec des graphiques. »

GénéralGENERAL

Des outils équilibrés pour le travail quotidien

Chercher une information, rédiger, créer un petit outil interactif pour les tâches du quotidien.

WorkerAgent de recherche
« Compare ces trois appareils photo et fais-moi un graphique réglable. »

04 · Équipe

Une tâche, répartie entre plusieurs agents.

L’agent principal découpe la tâche et en confie les parties à ses coéquipiers : un Worker écrit l’implémentation, l’agent de recherche rassemble le contexte, le vérificateur lance les tests. Chaque membre a son nom, son avatar et sa propre conversation. Ils s’écrivent directement, se transmettent du code et rendent compte à l’agent qui leur a confié le travail. Suivez leurs échanges dans le panneau de collaboration et intervenez quand vous voulez.

  • Les membres avancent en parallèle, chacun dans son fil
  • Ils s’écrivent directement, sans tout faire passer par vous
  • Les transferts de code arrivent avec leur diff, fichier par fichier
  • Chacun rend compte une fois le travail terminé

05 · Bots

Des bots qui restent en poste.

Un bot a son propre nom, sa personnalité, son modèle et son dossier de travail, mène plusieurs tâches de front et peut se voir attribuer un bureau d’ordinateur. Vous voyez tout ce dont il se souvient, vous pouvez le corriger ou le lui faire oublier. Mettez-le en veille et son travail est suspendu ; réveillez-le et il reprend là où il s’était arrêté.

  • Son nom, ses instructions, son modèle et son dossier
  • Plusieurs tâches menées en parallèle
  • Une mémoire visible, corrigeable, effaçable
  • Veille et réveil sans perte de travail
NomMallowModèlePar défautDossier~/bots/mallow
  • Contrôle hebdo des dépendancesEn coursSuspenduReprise…
  • Mise au propre des notes de lectureEn coursSuspenduReprise…
  • Réponse aux commentaires de revueAttend votre avisSuspenduReprise…
Les rapports hebdo vont dans un tableauCorrigerOublierNe jamais pousser directement sur mainCorrigerOublier

06 · Extensions

Nos espaces de travail sont aussi des extensions.

Les espaces Agent, IDE, Recherche et Bot, ainsi que le navigateur, Office, le contrôle de l’ordinateur et les serveurs de langage, sont tous enregistrés dans un même catalogue d’extensions et utilisent les mêmes contrats que les extensions tierces. Chacun peut être désactivé, et un espace de travail peut être remplacé entièrement.

De quoi se compose une extension

Survolez un fichier à gauche pour voir la partie correspondante du manifeste.

examples/extensions/agent-authored-panel/
varin.extension.json

Le contrat. Découverte, activation, revue des permissions et schémas d’outils le lisent tous : une extension est découvrable sans exécuter son code.

IdentitéPoints d’entréeServices et outilsContributions d’interface
package.json

Des métadonnées npm classiques. La version correspond au manifeste, et des points d’entrée de build peuvent y être déclarés.

host.js

Côté Host : outils, protocoles de modèle, algorithmes de contexte, politiques d’agent. Ici en mode brokered, dans son propre processus enfant.

surface.cjs

Côté interface : panneaux, éditeurs, voire un espace de travail entier. Déclaratif, géré, ou isolé dans une iframe ou un worker.

panel.css · panel.svg

Ressources. Icônes, styles ou exécutables fournis avec le paquet, tous résolus dans le paquet immuable.

{
  "schemaVersion": 1,
  "id": "example.agent-authored-panel",
  "version": "1.0.0",
  "engines": { "varin": "*" },
  "entrypoints": {
    "host": { "file": "host.js", "mode": "brokered",
              "activation": ["service-request"] },
    "surfaces": [{ "id": "panel", "file": "surface.cjs", "mode": "managed",
      "supports": ["web", "desktop"], "activation": ["application-startup"] }]
  },
  "provides": { "services": [{
    "id": "example.agent-authored-panel.count", "version": 1,
    "tool": { "name": "authored_text_count", "completion": "result",
              "operation": "read", "inputSchema": { … } }
  }] },
  "contributions": [{
    "id": "example.agent-authored-panel.summary", "kind": "panel",
    "entrypoint": "panel", "supports": ["web", "desktop"],
    "placement": { "slot": "workbench.secondary.after", "order": 20 }
  }]
}
import { defineHostExtension, provideTool } from '@varin/extension-sdk';
import manifest from './varin.extension.json' with { type: 'json' };
 
export default defineHostExtension({
  activate(context) {
    // Le service déclaré dans le manifeste : découverte et activation lisent une seule description
    provideTool(context, manifest.provides.services[0], async (input, call) => {
      // Appeler un outil intégré depuis le nouvel outil ; le reçu d’origine est conservé
      const memory = await call.tools.invoke({
        callId: 'memory', name: 'memory', arguments: input.memory,
      });
      return { memory };
    });
  },
});

Manifeste extrait de examples/extensions/agent-authored-panel, schémas longs omis ; host.ts simplifié à partir de nested-tools.

Trois couches, chacune avec ses points d’extension

L’interface ne détient aucun privilège. Le travail privilégié reste du côté de confiance.

SurfaceINTERFACE

Reçoit des callbacks typés et des points de montage, rien de plus. Changer de shell ou d’éditeur n’apporte aucune permission supplémentaire.

DéclaratifGéréiframe / worker isoléNatif

Application HostHOST

Outils, serveurs de langage, débogueurs et tests tournent ici. Une extension brokered a son propre processus et son propre cycle de vie ; en cas d’échec, seule elle est récupérée.

Processus enfant brokeredNatif

Runtime RustRUNTIME

Fixe l’implémentation exacte de chaque appel. Identifiants, requêtes de modèle, historique d’exécution et reprise restent ici.

Répertoire d’outilsAdaptateurs de modèleRegistre de composition

Contributions d’interface16 types

Espace completScène de transitionVueÉditeurPanneauBarre latéralePagePage de réglagesCommandeRaccourciÉlément de menuAction de saisieÉlément de statutBadge de sessionRendu de messageRendu d’outil

Contrats d’agentVersionnés

Outilsvarin.models@1varin.context.fragments@1varin.context.budget@1varin.context.compaction@1varin.retrieval.plan@1varin.agent.policy@4Observateurs d’activité

Espace de travailExécuté par le Host

Support des langagesAdaptateurs de débogageTests

Pourquoi cette conception

Quel que soit le nombre d’extensions, l’espace de travail reste stable et sous votre contrôle.

Le manifeste fait contrat

Découverte, activation et revue lisent le même varin.extension.json. Une extension peut être trouvée, affichée et vérifiée avant qu’une seule ligne de son code ne s’exécute.

Demander n’est pas obtenir

Les permissions s’approuvent par version et par couche. Une mise à jour n’hérite jamais de nouvelles permissions, et une révocation prend effet immédiatement.

Préparé, puis publié d’un bloc

Tout ce que contient une mise à jour prend effet au même instant. En cas d’échec, la version précédente reste en place ; rien n’est installé à moitié.

Les mises à jour n’interrompent rien

Les appels en cours restent sur l’implémentation avec laquelle ils ont démarré. Seuls les nouveaux appels utilisent la nouvelle version.

Des échecs bien délimités

Les extensions brokered tournent dans leur propre processus enfant : un échec ne récupère que cette extension. Si l’espace choisi ne démarre pas, un shell de secours prend le relais.

Un agent écrit, il n’approuve pas

Un agent peut lire les contrats, écrire une extension et l’installer, mais une première installation reste désactivée jusqu’à votre revue.

SDKCLI : init · check · build · test7 modèles de projet16 exemplesKit de tests de conformitéEn attendant la publication du SDK, installez-le depuis le dépôt.Guide de création →Parcourir les exemples →

07 · Contrôle

Modifications notées tour par tour, retour arrière à tout moment.

Chaque fichier modifié s’aligne sur une frise, tour par tour. Revenez en arrière en un geste, et annulez ce retour si besoin. Les fichiers que vous avez modifiés vous-même ne sont jamais écrasés, et une action au résultat incertain n’est jamais rejouée en silence.

08 · Partout

Ordinateur, navigateur, téléphone : un seul Varin.

Associez-les avec un QR code. Loin de votre réseau, un relais chiffré de bout en bout transporte la connexion sans voir votre contenu.

Open source · AGPL-3.0

Commencez par une première tâche.

Le code est open source. Vos données, vos modèles et vos extensions restent entre vos mains.