AnalyseDeCircuit/oxideterm
AnalyseDeCircuit/oxideterm has 1,795 GitHub stars and 156 forks. GitHot measured +4 stars in 24 hours and +41 in 7 days. Last checked 2026-11-08 12:49 UTC. Last push 2026-11-07.
Comment ces chiffres sont mesurés
AI-native workspace for local shells and remote machines.Zero Webview, zero OpenSSL, zero telemetry, and no app subscription.Written in Rust+GPUI
Progression mesurée des étoiles
- in 24h
- +4
- in 7 days
- +41
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
docs/readme/README.fr.md
Original
⚡ OxideTerm
Un client SSH natif gratuit et un espace de travail pour administrer vos serveurs à distance, avec un assistant IA utilisant votre propre clé.
SSH · Mosh · Telnet · série · RDP/VNC · SFTP · redirection de ports · éditeur intégré, dans une seule application avec rendu GPU. Sans compte. Sans abonnement. Sans télémétrie. Sans Electron.
Télécharger · Documentation · Journal des modifications · Signaler un problème · Groupe WeChat
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Português | Tiếng Việt
Premiers pas
- Installez OxideTerm. Téléchargez un paquet de la dernière version ; les indications par plateforme figurent dans la section Installation ci-dessous.
- Ajoutez un serveur. Ouvrez le gestionnaire de sessions et créez une connexion SSH, ou importez des hôtes depuis votre fichier
~/.ssh/config. - Connectez-vous. Ouvrez un terminal. Les clés d’hôte sont vérifiées à partir de
~/.ssh/known_hosts. - Utilisez les autres outils de l’espace de travail. Ouvrez SFTP, la redirection de ports ou l’éditeur intégré sur le même nœud. Par défaut, ils partagent une seule connexion SSH.
- Facultatif : activez l’IA. Dans les paramètres, ajoutez votre propre point d’accès OpenAI, Anthropic, Gemini, Ollama ou compatible OpenAI pour activer OxideSens.
Pour une visite guidée, consultez la documentation.
Fonctionnalités
| Terminaux et protocoles | Shells locaux, SSH, Mosh, Telnet, série, volets divisés, routes à plusieurs sauts, agent SSH et transfert d’agent, authentification à deux facteurs (2FA) et identifiants TOTP, transfert X11, intégration du shell, repères de commandes, journaux de session configurables, enregistrement, graphiques Sixel et Kitty, transferts trzsz |
| tmux et diffusion | Mode de contrôle natif tmux -CC avec disposition des volets et séparateurs déplaçables, groupes de diffusion nommés et outil avancé d’envoi de commandes à plusieurs cibles pour des saisies planifiées et répétables |
| Fiabilité | La reconnexion Grace Period maintient les applications TUI en fonctionnement pendant de brèves coupures réseau, puis rétablit les redirections, les transferts et les fichiers ouverts dans l’éditeur |
| Fichiers et édition | Gestionnaire SFTP à deux volets, files de transfert avec limites de vitesse et estimation du temps restant, favoris, éditeur distant intégré avec écriture sécurisée, gestion des conflits et restauration de l’espace de travail |
| Réseau | Redirections locales, distantes et dynamiques SOCKS5, règles enregistrées, détection des ports distants, topologie des connexions et débogage ponctuel de sockets |
| Bureau à distance | Plugins RDP et VNC à installer depuis le catalogue, avec affichage natif, presse-papiers et commandes clavier/souris |
| Administration des hôtes | Surveillance des processus, services, journaux, ports, tâches, disques, paquets, conteneurs et tmux |
| IA et automatisation | OxideSens avec votre propre clé, MCP, RAG local, Agent Skills, actions approuvées dans l’espace de travail et CLI autonome |
| Suivi et audit | Espace de travail facultatif de notifications et d’audit, et enregistrements de sessions chiffrés (tous deux désactivés par défaut) |
| Synchronisation et portabilité | Synchronisation cloud chiffrée, paquets .oxide portables |
| Personnalisation | Thèmes, images d’arrière-plan, raccourcis configurables, commandes rapides, 11 langues d’interface |
Pourquoi OxideTerm
- Gratuit et conçu pour un usage local. Sans compte, sans abonnement, sans télémétrie. Vous gardez le contrôle de vos connexions et de vos données d’administration.
- Un espace de travail par serveur. Terminal, SFTP, redirections, RDP/VNC, éditeur, surveillance et IA sont rattachés au même nœud, plutôt que de fonctionner comme des outils isolés.
- Une véritable application native. L’interface est dessinée directement sur le GPU avec GPUI. Sans Electron ni WebView embarquée.
- L’IA selon vos choix. OxideSens utilise votre fournisseur et votre clé, et n’exécute que les actions que vous approuvez.
- Des connexions résilientes. La reconnexion Grace Period teste l’ancienne connexion pendant 30 secondes avant de la remplacer, pour que les applications TUI puissent continuer à fonctionner lors de brèves coupures réseau.
- SSH entièrement en Rust. La pile SSH utilise
russhavecring, sans OpenSSL ni libssh2.
Utilisation de la mémoire
La réécriture native a réduit la mémoire utilisée au repos à environ un quart de celle de l’ancienne version sur macOS, et à environ un huitième sur Windows. Voici les observations consignées par le mainteneur lors du passage de Tauri 1.x à la version native GPUI 2.0 :
| Plateforme | Tauri 1.x (au repos) | Version native 2.0 (au repos) | Réduction |
|---|---|---|---|
| macOS | 318.7 MB | 81.3 MB | Environ 74% |
| Windows | 182.4 MB | 23.5 MB | Environ 87% |
Le total de l’ancienne version comprend OxideTerm et les processus WebView associés. La version native n’a plus besoin de ces processus de navigateur.

Captures d’écran
| Terminal SSH avec OxideSens | Gestionnaire de fichiers SFTP |
|---|---|
![]() |
![]() |
| IDE intégré | Redirection de ports intelligente |
|---|---|
![]() |
![]() |
IA OxideSens
OxideSens est un assistant facultatif qui peut examiner vos sessions actives et effectuer des actions dans l’espace de travail uniquement après votre approbation.
- Utilisez votre propre clé. Compatible avec OpenAI, Anthropic (Claude), Google Gemini, Ollama et tout point d’accès compatible OpenAI, avec des réglages de raisonnement adaptés au fournisseur. Il n’y a pas de crédits de plateforme.
- MCP et Agent Skills. Connectez des serveurs MCP (stdio et SSE) et chargez des Agent Skills dans des limites définies.
- Base de connaissances locale (RAG). Recherche plein texte BM25 et index vectoriel.
- Vous contrôlez le contexte. Vous choisissez le contexte de l’espace de travail et les actions à approuver ; les règles de la politique de commandes s’appliquent.
- Masquage des identifiants. Les messages envoyés à un fournisseur passent par un filtre qui masque les motifs correspondant à des identifiants.
- Les clés restent dans le trousseau du système d’exploitation et ne figurent pas dans les journaux structurés.
Plugins
OxideTerm prend en charge trois types de plugins :
| Type | Exécution | Limites |
|---|---|---|
| Manifeste uniquement | Extensions déclaratives, sans code | Aucun code exécutable |
| WASM | Wasmtime/WASI ou processus auxiliaire | Appels à l’hôte contrôlés, limités aux capacités autorisées |
| Processus | Processus local ordinaire | Code local de confiance, sans bac à sable du système d’exploitation |
Les anciens plugins ESM de Tauri (1.x) peuvent apparaître dans la liste, mais l’application native 2.x ne les exécute pas. N’installez des plugins de type processus que depuis des sources de confiance.
Sécurité et confidentialité
| Sujet | Fonctionnement |
|---|---|
| Identifiants enregistrés | Trousseau du système d’exploitation (macOS Keychain, Windows Credential Manager, libsecret) |
| Secrets en mémoire | Les types contenant des secrets et les tampons temporaires utilisent zeroize aux points de gestion de propriété pris en charge |
| Clés d’hôte | Confiance à la première utilisation avec ~/.ssh/known_hosts ; les modifications inattendues sont refusées |
| Exports portables | Les paquets .oxide utilisent ChaCha20-Poly1305 avec Argon2id (256 MB de mémoire, 4 itérations) |
| Contexte de l’IA | Masquage des motifs d’identifiants avant tout envoi à un fournisseur ; vous approuvez le contexte et les actions |
| Enregistrements de sessions | Désactivés par défaut ; stockés chiffrés sur votre appareil et exclus de la synchronisation cloud ; les frappes au clavier ne sont pas enregistrées |
| Audit | Désactivé par défaut ; les données restent sur votre appareil et les détails sensibles sont chiffrés |
| Modifications via la CLI | Plans de simulation, confirmations --yes et sauvegardes de restauration pour les commandes qui modifient l’état |
| Plugins | Voir Plugins |
| Télémétrie | Aucune |
Utilisation légale. OxideTerm est distribué sous licence GPL-3.0-only, sans restrictions supplémentaires. Accédez uniquement aux systèmes, réseaux et appareils qui vous appartiennent ou pour lesquels vous disposez d’une autorisation explicite, et respectez la législation applicable. N’utilisez pas OxideTerm pour des accès non autorisés, pour perturber des services ou pour contourner des contrôles d’accès.
Limites actuelles
À savoir avant l’installation :
- Disponible uniquement sur ordinateur (macOS, Windows, Linux). Il n’existe pas d’application mobile.
- Le projet évolue rapidement, avec des versions fréquentes. Consultez le journal des modifications et les tickets ouverts.
- L’audit et l’enregistrement des sessions doivent être activés explicitement et ne reflètent que ce qu’OxideTerm peut lui-même observer.
- Les plugins de type processus ne sont pas isolés par un bac à sable du système d’exploitation.
- Si le moteur de rendu ne fonctionne pas sur votre machine, essayez le profil de compatibilité :
OXIDETERM_RENDER_PROFILE=compatibility.
Pour les développeurs
Exécuter depuis les sources
Prérequis : une chaîne d’outils Rust (édition 2024) et un environnement de bureau capable d’exécuter GPUI.
# Run the app
cargo run
# If the renderer fails on your machine
OXIDETERM_RENDER_PROFILE=compatibility cargo run
# Build the headless CLI companion
./scripts/build/build-cli.sh
# Build the optional Linux remote agent
./scripts/build/build-agent.sh
Avec Nix : nix build .#oxideterm, nix run .#oxideterm ou nix develop.
Les binaires de la CLI sont placés dans crates/oxideterm-gpui-app/resources/cli-bin/<target-triple>/oxideterm.
Interface en ligne de commande
La CLI sans interface graphique oxideterm fonctionne sans lancer l’application, ce qui est utile pour l’automatisation, l’intégration continue et les diagnostics. Elle couvre les paramètres, connexions, redirections, plugins, commandes rapides, secrets, paquets portables, diagnostics, rapports, plans de traitement par lots, sauvegardes et synchronisation cloud.
cargo run -p oxideterm-cli -- doctor --strict
cargo run -p oxideterm-cli -- settings validate --strict --json
cargo run -p oxideterm-cli -- connections search prod
cargo run -p oxideterm-cli -- forwards list --format json
cargo run -p oxideterm-cli -- cloud-sync push --dry-run --json
cargo run -p oxideterm-cli -- oxide export ./profile.oxide --connection prod --password-stdin
cargo run -p oxideterm-cli -- report --bundle ./oxideterm-report.zip
cargo run -p oxideterm-cli -- completion install zsh --force
# Path and profile isolation for CI or fixtures
cargo run -p oxideterm-cli -- --config-dir ./fixture-config doctor --strict
Architecture
L’interface et le backend terminal/SSH partagent un même processus Rust ; les agents distants facultatifs et les auxiliaires de plateforme fonctionnent à l’extérieur de ce processus. Les octets du terminal modifient directement TerminalState, à partir duquel GPUI effectue le rendu, sans étape d’analyse JSON, WebSocket, Base64 ou xterm.js.
┌─────────────────────────────────────────────────┐
│ GPUI Render Loop │
│ WorkspaceApp · Tab surfaces · GPUI views │
└──────────────────────┬──────────────────────────┘
│ in-process Arc<> / async
┌──────────────────────▼──────────────────────────┐
│ Domain Crates (Rust async) │
│ NodeRouter → SshConnectionRegistry │
│ TerminalState ← SSH PTY channel (russh) │
│ SftpSession · ForwardingRuntime · IdeWorkspace │
│ Ai/ACP Entities · CloudSync · Plugin Runtimes │
└─────────────────────────────────────────────────┘
| Aspect | Approche avec navigateur embarqué | OxideTerm |
|---|---|---|
| Rendu | Moteur de navigateur et mise en page web | GPUI sur une surface GPU |
| Flux des données du terminal | WebSocket → boucle d’événements JS → xterm.js | Entrée Rust → TerminalState → rendu GPUI |
| Cycle de vie des connexions | Réparti entre frontend et backend | Une seule chaîne de connexion et de reconnexion dans le même processus |
| Contexte de l’IA | Copié via un pont applicatif | Construit à partir de l’espace de travail actif avec l’approbation de l’utilisateur |
| CLI | Nécessite que l’application de bureau soit lancée | Binaire autonome, liaison directe avec les crates |
Pool de connexions. SshConnectionRegistry repose sur DashMap et s’utilise via NodeRouter. Les volets de terminal, SFTP, les redirections de ports et l’éditeur peuvent partager une connexion SSH physique par nœud ; une politique de terminal peut aussi opter pour une connexion dédiée. Chaque connexion suit les états connecting → active → idle → link_down → reconnecting. Une panne de l’hôte de rebond place les nœuds en aval dans l’état link_down. L’IA et les plugins utilisent des références de capacités et des instantanés des hôtes plutôt que de s’enregistrer comme consommateurs de connexion.
Reconnexion Grace Period.
- Détecter l’expiration du délai keepalive.
- Prendre un instantané des volets de terminal, transferts SFTP, redirections et fichiers de l’éditeur.
- Tester l’ancienne connexion pendant 30 s pour que les applications TUI puissent continuer à fonctionner lors de brèves coupures réseau.
- Ouvrir une nouvelle connexion, rétablir les redirections, reprendre les transferts et rouvrir les fichiers de l’éditeur.
Les sessions SFTP portent une génération de connexion : après une reconnexion, une session admissible est obtenue à nouveau, mais une opération d’une ancienne génération n’est jamais transférée silencieusement vers la nouvelle connexion.
Redirection de ports. Une crate dédiée assure les redirections locales, distantes et dynamiques SOCKS5. Chaque règle possède ses propres tâches d’écoute et de connexion, gérées via le registre partagé des connexions SSH.
SSH entièrement en Rust. russh avec ring : SSH2 complet, ChaCha20-Poly1305 et AES-GCM, clés Ed25519/RSA/ECDSA, agent SSH sur Unix (SSH_AUTH_SOCK) et Windows (\\.\pipe\openssh-ssh-agent), et chaînes à plusieurs sauts avec authentification indépendante à chaque saut.
Technologies
| Couche | Technologie |
|---|---|
| Interface | GPUI (framework d’interface de Zed avec rendu GPU) |
| Exécution | Tokio, DashMap |
| SSH | russh avec ring (sans OpenSSL ni libssh2) |
| PTY local | portable-pty (ConPTY sur Windows) |
| Émulation de terminal | alacritty_terminal (VT100–VT500, graphiques Sixel et Kitty) |
| Éditeur | Coloration syntaxique tree-sitter, tampon personnalisé |
| Chiffrement | ChaCha20-Poly1305, Argon2id |
| Plugins | Wasmtime/WASI, processus auxiliaire WASM et plugins de type processus |
| Flux de l’IA | SSE (OpenAI, Anthropic, Gemini), dans le même processus |
| RAG | BM25 + index vectoriel HNSW avec fusion des classements, tokenisation CJK par bigrammes |
| i18n | oxideterm-i18n (11 langues) |
Installation
Télécharger la dernière version
| Système | x64 | ARM64 |
|---|---|---|
| macOS | DMG (Intel) | DMG (Apple Silicon) |
| Windows | Installateur (.exe) |
Installateur (.exe) |
| Linux | AppImage · .deb · .rpm |
AppImage · .deb · .rpm |
Vérifiez votre téléchargement à l’aide du fichier sha256sums.txt disponible sur la page de la version. Les archives portables et les signatures y figurent également.
macOS
Si Gatekeeper bloque l’application, supprimez l’attribut de quarantaine :
xattr -cr /Applications/OxideTerm.app
Windows
Si SmartScreen affiche un avertissement, choisissez Informations complémentaires → Exécuter quand même.
Linux
# AppImage
chmod +x OxideTerm_*_linux_*.AppImage && ./OxideTerm_*_linux_*.AppImage
# Debian / Ubuntu
sudo dpkg -i OxideTerm_*_linux_*.deb && sudo apt-get install -f
# Fedora / RHEL-compatible
sudo dnf install ./OxideTerm_*_linux_*.rpm
# Nix; updates are managed by Nix
nix run github:AnalyseDeCircuit/oxideterm
Vous préférez compiler vous-même ? Consultez Exécuter depuis les sources dans la section Pour les développeurs.
Contribuer
Les contributions sont les bienvenues : code Rust, documentation, traductions, plugins, tests et reproduction de problèmes. Pour les changements importants, ouvrez d’abord un ticket afin d’en discuter.
Les rapports de bugs sont plus utiles lorsqu’ils sont accompagnés d’un dossier de diagnostic dont les données sensibles ont été masquées :
cargo run -p oxideterm-cli -- report --bundle ./oxideterm-report.zip
Les bugs reproductibles et les régressions sont prioritaires. Les demandes de fonctionnalités sont évaluées selon leur portée, leur sécurité et leur adéquation avec l’objectif d’OxideTerm : un espace de travail pour les serveurs distants. Si OxideTerm vous aide dans votre travail, une étoile sur GitHub, un rapport de bug reproductible, une correction de traduction ou un plugin contribuent à faire avancer le projet.
Contributeurs
Merci à toutes les personnes qui contribuent à améliorer OxideTerm.
Licence
GPL-3.0-only. Les mentions relatives aux dépendances figurent dans THIRD_PARTY_NOTICES.md, avec des mentions supplémentaires dans NOTICE.
Développé avec : russh · GPUI · alacritty_terminal · portable-pty · wasmtime · tree-sitter
Star History
Explorer des projets similaires
affaan-m/ECC
Système d'optimisation des performances du framework d'exécution et de contrôle des agents. Il couvre les skills, les instincts, la mémoire, la sécurité et le développement qui privilégie la recherche, pour Claude Code, Codex, Opencode, Cursor et au-delà.
299,795 étoilesNousResearch/hermes-agent
L'agent qui grandit avec vous
261,831 étoilesmultica-ai/andrej-karpathy-skills
Un seul fichier CLAUDE.md pour améliorer le comportement de Claude Code, dérivé des observations d'Andrej Karpathy sur les pièges du codage avec les LLM.
231,026 étoilesfirecrawl/firecrawl
Boostez vos agents d'IA avec des données issues du web et au-delà. Nous construisons la bibliothèque pour la superintelligence. 🔥
199,847 étoiles


