# Référence CLI

`sqctl` est la façon de piloter SecurQbit depuis un terminal. Il parle au service en arrière-plan via un socket local ; il ne détient aucun identifiant et n'a besoin d'aucun privilège. Si vous ne l'avez pas encore installé, commencez par [Configuration bureau & routeur](/cli-installation).

Toutes les commandes acceptent `--json`, qui affiche le document brut au lieu de la sortie mise en forme. C'est l'interface à scripter — la présentation lisible peut changer.

## En un coup d'œil

```text
sqctl status                        le VPN est-il actif, et sous quel compte
sqctl login                         se connecter en approuvant un lien dans le navigateur
sqctl logout
sqctl locations                     pays accessibles à cet abonnement
sqctl connect [COUNTRY] [--fastest]
sqctl disconnect
sqctl set                           afficher les préférences
sqctl set country DE|any
sqctl set autoconnect on|off
sqctl set updates on|off
sqctl update [--check] [--yes]      installer la dernière version
```

## sqctl status

Indique si vous êtes protégé, et sous quel compte.

```text
$ sqctl status

  ● Connected      Germany
    Connected for  12m 40s
    Transferred    ↓ 148 MB   ↑ 22 MB

    Account        Alice  alice@example.com
    Plan           Monthly
    Renews         1 September 2026
```

Cette sortie ne montre délibérément rien de la construction du tunnel — ni adresse de serveur, ni identifiant de session. Vous ne pouvez rien en faire, et l'adresse du serveur en particulier n'a pas à se retrouver sur une capture d'écran quand vous demandez de l'aide.

Si le service ne tourne pas, `sqctl` vous le dit et affiche la commande qui le démarre sur *cette* machine, quel que soit son système d'init.

## sqctl login

Connecte cet ordinateur en l'approuvant dans un navigateur.

```text
$ sqctl login

Open this link to approve the sign-in:

    https://accounts.securqbit.com/device?code=BCDF-GHJK

Check the page shows this code:

    B C D F - G H J K

Waiting for approval — expires in 10 minutes, Ctrl-C to cancel
```

Ouvrez le lien — `sqctl` essaie de l'ouvrir pour vous, et `--no-browser` l'en empêche —, connectez-vous si ce n'est pas déjà fait, **vérifiez que le code affiché sur la page correspond à celui de votre terminal**, puis approuvez. Rien n'est jamais retapé dans le terminal.

Cette comparaison constitue toute la sécurité de ce mécanisme.

> **N'approuvez qu'une demande que vous avez lancée vous-même.** Si quelqu'un vous envoie un lien de ce type et que vous l'approuvez, vous venez de connecter *son* ordinateur à *votre* compte. Le code et le nom de machine affichés sur la page sont là pour que vous puissiez faire la différence.

Se connecter suppose un compte existant. Créez-en un dans l'[application iOS ou Android](/installation) — y compris un [compte invité](/anonymous-accounts), qui se connecte sur accounts.securqbit.com avec son code de récupération et approuve depuis là comme n'importe quel autre.

## sqctl logout

Coupe le VPN et déconnecte cet ordinateur. Le tunnel tombe d'abord, délibérément : le laisser monté sur des identifiants qui viennent d'être révoqués abandonnerait votre trafic sur une session que le serveur s'apprête à supprimer.

Un [compte invité](/anonymous-accounts) demande d'abord confirmation, car sans son code de récupération vous ne pourrez pas vous reconnecter. `--force` saute la question.

## sqctl connect

```bash
sqctl connect            # votre préférence enregistrée
sqctl connect DE         # apparaître en Allemagne
sqctl connect --fastest  # laisser SecurQbit choisir
```

Le pays est un code à deux lettres — lancez `sqctl locations` pour ceux que votre abonnement autorise. La connexion prend quelques secondes ; le terminal suit l'état réel à mesure qu'il change au lieu de rester muet.

> **Les essais ne peuvent pas choisir de pays.** Avec un essai, utilisez `--fastest`. En nommer un renvoie une erreur indiquant qu'un abonnement payant est nécessaire, plutôt que de vous connecter discrètement ailleurs. Voir [Compte & facturation](/account-billing).

## sqctl disconnect

Coupe le tunnel et remet votre routage et votre DNS dans leur état d'origine.

Se déconnecter, c'est aussi dire à SecurQbit de *s'arrêter*. Si un tunnel tombe tout seul, le service continue à le rétablir — c'est ce que vous voulez sur un portable qui sortait de veille ou un routeur dont le lien a vacillé. Seuls `sqctl disconnect`, la déconnexion du compte ou l'arrêt du service annulent cette intention.

## sqctl locations

Liste par nom les pays accessibles à votre abonnement.

```text
$ sqctl locations

    DE             Germany
    FR             France
    NL             Netherlands
    SG             Singapore
    US             United States
```

## sqctl set

Affiche ou modifie vos préférences. Il y en a trois, et ce sont les trois qui relèvent vraiment de votre choix.

```bash
sqctl set                    # afficher les trois
sqctl set country DE         # par défaut, l'Allemagne
sqctl set country any        # par défaut, le plus rapide
sqctl set autoconnect on     # se connecter dès le démarrage de la machine
sqctl set updates off        # cesser de chercher de nouvelles versions
```

```text
$ sqctl set

    Location       Germany (DE)
    Auto-connect   on
    Updates        on
```

Tout le reste du tunnel — sa construction, son DNS, sa façon de réessayer — est décidé pour vous et n'est pas accessible depuis la CLI. Ce ne sont pas des choix qui améliorent un VPN parce qu'on les propose.

`updates` est un réglage plutôt qu'une constante parce que la vérification est un appel périodique au CDN SecurQbit, et que quiconque fait tourner un VPN est en droit de le refuser.

## sqctl update

Installe la dernière version.

```bash
sqctl update            # demander, puis installer et redémarrer
sqctl update --check    # dire seulement s'il y en a une
sqctl update --yes      # sans question
```

```text
$ sqctl update

  ! Update available

    Installed      v1.0.0
    Latest         v1.1.0

  SecurQbit restarts to finish, so the VPN disconnects for a moment.

Install it now? [y/N]
```

Le téléchargement est comparé aux sommes de contrôle publiées avant tout remplacement, puis le service redémarre sur la nouvelle version. `sqctl` attend son retour et lui demande sa version, pour vous annoncer ce qui tourne réellement et non ce qui a été écrit sur le disque.

SecurQbit vérifie une fois par jour de lui-même, et se contente de vous le dire — une ligne sous `sqctl status` :

```text
    Update         v1.1.0 available — run: sqctl update
```

Il n'installe jamais seul. Terminer une mise à jour implique un redémarrage, et un redémarrage coupe le tunnel en cours ; l'infliger à quelqu'un sans prévenir est pire que de le laisser une version en arrière.

Si SecurQbit a été installé par le gestionnaire de paquets de votre distribution, `sqctl update` refuse avant tout téléchargement et vous invite à le mettre à jour comme vous l'avez installé.

## Scripter

`--json` sur n'importe quelle commande affiche le document brut :

```bash
$ sqctl status --json | jq '.state, .country'
"connected"
"DE"
```

```bash
# Se connecter et vérifier que cela a réellement fonctionné
sqctl connect --fastest --json > /dev/null
test "$(sqctl status --json | jq -r .state)" = connected
```

Codes de sortie : `0` succès, `1` la commande a échoué, `2` le service SecurQbit est injoignable.

## Quand quelque chose ne va pas

`sqctl` traduit les échecs en quelque chose d'exploitable et garde les rouages à l'écart. Quand vous avez besoin de ces rouages — pour un rapport de bug — il existe une commande de diagnostic masquée :

```bash
sqctl debug          # versions, emplacements, quel socket a répondu,
                     # le moteur du tunnel et la dernière erreur brute
sqctl debug probe DE # tester un serveur de bout en bout SANS se connecter
```

`sqctl debug probe` est la plus utile. Elle démarre le proxy vers un vrai serveur, y envoie une requête et rapporte l'adresse vue en face — mais elle ne crée aucun périphérique tunnel et ne modifie aucune route : elle vous dit si le chemin fonctionne sans vous coûter votre connexion s'il ne fonctionne pas.

Joignez la sortie de `sqctl debug` à tout signalement de problème. Voir [Dépannage](/troubleshooting).

## Étapes suivantes

- [Configuration bureau & routeur](/cli-installation) — installer, mettre à jour et désinstaller.
- [Se connecter à un serveur](/connecting) — comment le choix du serveur fonctionne.
- [Contournement de pare-feu & obfuscation](/firewall-bypass) — sur un réseau restreint.
