Aktar CLI

Documentation de la CLI aktar

Chaque commande, option et sortie d'aktar, avec des exemples à copier-coller. Vous découvrez l'outil ? La présentation de la CLI se lit plus vite.

Vue d'ensemble

aktar est une télécommande pour l'app Aktar installée sur le même ordinateur. Vous lui donnez des fichiers, elle les transmet à Aktar sur 127.0.0.1, et Aktar les envoie avec les destinations, les clés, les modèles de chemin et les réglages de lien que vous avez déjà configurés. Le lien revient dans votre terminal.

Ce que c'est

  • Une petite commande Node.js pour vos scripts, les jobs de CI sur votre propre Mac ou PC Windows, et les éditeurs comme Typora
  • Un moyen d'envoyer des fichiers et le presse-papiers, d'afficher des codes QR et de consulter vos destinations et votre historique d'envois
  • Gratuite et open source (MIT), comme l'app

Ce que ce n'est pas

  • Pas un outil autonome : sans Aktar ouvert, elle ne peut rien envoyer. Elle ne détient jamais vos clés de stockage
  • Pas pour les serveurs Linux ni les machines distantes : elle ne communique qu'avec Aktar sur le même ordinateur. Là-bas, utilisez la CLI de votre fournisseur de stockage

Configuration requise

  • Aktar pour Mac 0.18.0 ou Aktar pour Windows 0.11.0 ou ultérieur, avec au moins une destination. aktar 0.5.0 et antérieur fonctionnent avec Aktar pour Mac 0.4.0 ou ultérieur
  • Node.js 18 ou ultérieur (Homebrew l'installe pour vous)
  • --name, --qr et aktar qr nécessitent aktar 0.2.0 ou ultérieur
  • Réutiliser le lien d'un fichier déjà envoyé nécessite aktar 0.2.0 et Aktar pour Mac 0.10.0 ou Aktar pour Windows 0.3.0
  • aktar replace nécessite aktar 0.3.0 et Aktar pour Mac 0.14.0 ou Aktar pour Windows 0.7.0 ou ultérieur
  • --short, --no-short et aktar short nécessitent aktar 0.5.0 et Aktar pour Mac 0.17.0 ou Aktar pour Windows 0.10.0, avec un raccourcisseur configuré sur la destination

Installation

Installez-la une fois, avec npm ou Homebrew. Les deux ajoutent la commande aktar à votre PATH.

Avec npm (macOS et Windows)

npm install -g @getaktar/cli

Avec Homebrew (macOS)

brew install getaktar/tap/aktar-cli

Ou lancez-la une fois sans rien installer :

npx @getaktar/cli upload file.png

Vérifiez la version installée :

aktar --version
0.6.0

Connexion à Aktar

  1. Dans Aktar pour Mac ou Windows, ouvrez Réglages > Intégrations et activez Autoriser les connexions locales. Aktar écoute alors uniquement sur 127.0.0.1, sur le port 47913 sauf si vous le changez à cet endroit.
  2. Copiez le jeton affiché en dessous.
  3. Lancez aktar login et collez le jeton à l'invite Token:. Il reste masqué pendant la saisie, et il est vérifié auprès d'Aktar avant d'être enregistré : une faute de frappe n'est donc pas conservée.
aktar login
Copy the token from Aktar: Settings > Integrations (turn on Allow local connections first).
Token:
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

Où le jeton est conservé

aktar login enregistre le jeton et le port dans ~/.config/aktar/cli.json sur Mac (ou $XDG_CONFIG_HOME/aktar/cli.json si vous l'avez défini) et dans %APPDATA%\aktar\cli.json sous Windows. Seul votre utilisateur peut le lire.

Avant d'envoyer le jeton, aktar demande à l'app qui écoute sur le port de prouver qu'elle a le même jeton, sans l'envoyer. Ainsi, si Aktar n'est pas ouvert et qu'un autre programme écoute sur son port, ce programme n'obtient ni le jeton ni vos fichiers. Cela nécessite Aktar pour Mac 0.18.0 ou Aktar pour Windows 0.11.0 ou ultérieur ; avec une version plus ancienne d'Aktar, aktar s'arrête et vous demande de le mettre à jour.

cli.json
{
  "token": "…",
  "port": 47913
}

aktar logout supprime ce fichier. Pour déconnecter tous les clients d'un coup, cliquez sur Regenerate à côté du jeton dans Aktar, puis relancez aktar login avec le nouveau.

Scripts et CI

Sur une machine de build, passez-vous d'aktar login et définissez AKTAR_TOKEN (et AKTAR_PORT si vous avez changé le port). Ces variables l'emportent sur le fichier enregistré. Aktar doit tourner sur cette machine, dans la même session utilisateur.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
VariableRôle
AKTAR_TOKENLe jeton affiché dans Réglages > Intégrations d'Aktar. Utilisé à la place du jeton enregistré.
AKTAR_PORTLe port de l'API locale d'Aktar, si vous l'avez changé. --port l'emporte sur lui.
NO_COLORDessine les codes QR avec de simples caractères au lieu des couleurs du terminal.
XDG_CONFIG_HOMEL'emplacement du dossier de configuration sur macOS (par défaut ~/.config). Sous Windows, c'est %APPDATA%.

Commandes

Toutes les commandes passent par Aktar, sauf aktar qr avec du texte ou un lien. Sans -d, les envois vont vers la destination sélectionnée dans la barre des menus d'Aktar, et ils apparaissent dans l'historique d'Aktar comme les autres. aktar --help affiche la même liste. Avec Aktar pour Mac 0.14.0 ou Aktar pour Windows 0.7.0 ou ultérieur, un envoi sans -d suit d’abord les règles Utiliser pour des destinations : une image peut aller vers votre destination de captures et un build vers une autre.

aktar upload

Envoie un ou plusieurs fichiers et affiche un lien par fichier, dans l'ordre, au fur et à mesure.

Utilisation

aktar upload <file>... [options]

Options

OptionValeurDescription
-d, --destination<name|id>La destination d'envoi, par nom ou par ID. Par défaut : celle sélectionnée dans Aktar.
-f, --format<format>Ce qui est affiché : url (par défaut), markdown, html ou custom (votre modèle dans Aktar).
--name<name>Envoie un seul fichier sous ce nom. Son extension est conservée si le nom n'en a pas.
--folder<path>Garde le nom du fichier et l'envoie dans ce dossier.
--expires<days>Laisse le bucket supprimer le fichier après 1, 7, 14 ou 30 jours. 0 le conserve.
--shortCréer un lien court avec le raccourcisseur de la destination, même si ses règles ignoreraient cet envoi.
--no-shortNe pas créer de lien court cette fois-ci.
--qrAffiche aussi un code QR pour chaque lien.
--jsonAffiche un tableau JSON avec tous les détails de chaque envoi, au lieu des liens.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Tous les fichiers sont vérifiés avant le moindre envoi : si l'un d'eux n'existe pas, rien n'est envoyé et aktar se termine avec le code 2.
  • Si un envoi échoue, les autres aboutissent quand même. Chaque échec est signalé sur stderr, et le code de sortie est 1.
  • Sans --folder, c'est le modèle de chemin de la destination qui nomme le fichier, comme pour un dépôt sur la barre des menus. Avec --folder, le fichier garde son nom dans ce dossier.
  • --name fonctionne avec un seul fichier à la fois. Les barres obliques sont retirées, et l'extension du fichier est ajoutée si le nom n'en a pas : --name cover envoie IMG_4021.jpg sous le nom cover.jpg. Avec --folder, c'est le nom dans le dossier.
  • --expires accepte 1, 7, 14 ou 30 (jours), ou 0 pour conserver le fichier. Sans cette option, le fichier est conservé, quel que soit le réglage Supprimer après dans Aktar. Elle nécessite les règles de suppression automatique d'Aktar sur cette destination, et ne se combine pas avec --folder.
  • --qr ne se combine pas avec --json, et --png ne fonctionne qu'avec aktar qr.
  • Dans un terminal, la progression s'affiche sur stderr pendant l'envoi. Le fichier est transmis à Aktar en flux continu : sa taille n'a pas d'importance, et il n'y a pas de limite de temps.
  • Si la destination a un raccourcisseur configuré dans Aktar, c’est le lien court qui est affiché, et --format et --qr l’utilisent. --short en crée un même si les règles de la destination ignoreraient cet envoi, --no-short n’en crée aucun. Si Aktar ne peut pas le créer, le lien d’origine est affiché et stderr indique pourquoi.

Exemples

Un fichier, un lien.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Plusieurs fichiers, en Markdown : une ligne par fichier, dans l'ordre.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Envoyer sous un autre nom, dans un dossier.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
Le même fichier était déjà dans le bucket : le lien s'affiche normalement, et la remarque part sur stderr.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg
Avec un raccourcisseur sur la destination, c’est le lien court qui est affiché.
aktar upload talk.pdf --short
https://s.example.com/k3Tq9

aktar upload --clipboard

Envoie le fichier ou l'image du presse-papiers, comme le raccourci presse-papiers d'Aktar.

Utilisation

aktar upload --clipboard [options]

Options

OptionValeurDescription
--clipboardEnvoie le contenu du presse-papiers au lieu de fichiers.
-d, --destination<name|id>La destination d'envoi, par nom ou par ID. Par défaut : celle sélectionnée dans Aktar.
-f, --format<format>Ce qui est affiché : url (par défaut), markdown, html ou custom (votre modèle dans Aktar).
--expires<days>Laisse le bucket supprimer le fichier après 1, 7, 14 ou 30 jours. 0 le conserve.
--shortCréer un lien court avec le raccourcisseur de la destination, même si ses règles ignoreraient cet envoi.
--no-shortNe pas créer de lien court cette fois-ci.
--qrAffiche aussi un code QR pour chaque lien.
--jsonAffiche un tableau JSON avec tous les détails de chaque envoi, au lieu des liens.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Passez des fichiers ou --clipboard, pas les deux.
  • --name et --folder ne fonctionnent qu'avec des fichiers. -d, -f, --expires, --qr et --json fonctionnent comme avec des fichiers.
  • Avec --json, la sortie reste un tableau, avec une seule entrée.

Exemples

La capture d'écran que vous venez de copier.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
En Markdown, vers une destination nommée Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
Supprimé par le bucket au bout d'un jour.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Écrit un nouveau fichier par-dessus un envoi, si bien que sa clé et son lien restent les mêmes. Tous ceux qui ont le lien voient le nouveau fichier.

Utilisation

aktar replace <upload-id|link|key> <file> [options]

Options

OptionValeurDescription
-d, --destination<name|id>Pour une clé : la destination dont le bucket la contient, par nom ou ID. Par défaut : celle sélectionnée dans Aktar.
-f, --format<format>Ce qui est affiché : url (par défaut), markdown, html ou custom (votre modèle dans Aktar).
--qrAffiche aussi un code QR pour chaque lien.
--jsonAffiche un tableau JSON avec tous les détails de chaque envoi, au lieu des liens.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Le premier argument est un ID d’envoi ou un lien tiré de aktar history (l’entrée de l’historique d’Aktar est mise à jour), sinon une clé dans le bucket de -d (sans -d, la destination sélectionnée dans Aktar). Un lien absent de l’historique d’Aktar est refusé : indiquez plutôt sa clé avec -d.
  • Aktar retire les métadonnées du fichier et le redimensionne comme le veut la destination, mais ne le convertit jamais dans un autre format : l’extension de la clé reste. Un fichier sous tmp/{N}d/ recommence ses N jours.
  • La clé n’est jamais numérotée et rien d’autre n’est envoyé. --folder, --expires, --name et --clipboard ne s’appliquent pas et sont refusés.
  • D’anciennes copies peuvent rester un moment dans le cache d’un CDN. Le Cache de courte durée d’une destination ou le vidage du cache Cloudflare dans Aktar s’en charge.
  • Nécessite Aktar pour Mac 0.14.0 ou Aktar pour Windows 0.7.0 ou ultérieur.

Exemples

Remplacer un envoi de l’historique par son ID ; le lien reste le même.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Remplacer une clé dans le bucket d’une autre destination et l’afficher en Markdown.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar short

Crée un lien court pour un envoi de l’historique avec le raccourcisseur de sa destination, et l’affiche. Si l’envoi en a déjà un, c’est celui-là qui est affiché.

Utilisation

aktar short <upload-id|link> [--json | --qr]

Options

OptionValeurDescription
--jsonAfficher les détails du lien court en JSON : fournisseur, état et clics.
--qrAfficher aussi le QR code du lien court.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Passez un ID d’envoi ou un lien de aktar history ; son lien court fonctionne aussi. aktar le cherche parmi les 1 000 derniers envois.
  • La destination doit avoir un raccourcisseur dans la section Liens courts d’Aktar : Shlink, YOURLS, Kutt, Dub, Short.io ou une requête personnalisée. Le lien court vient de ce raccourcisseur : vos liens et vos données de clics restent dans votre infrastructure.
  • --json affiche les détails du lien court : fournisseur, état, et clics et dernier clic quand le raccourcisseur les compte. --qr ajoute son QR code. Les deux ne peuvent pas être combinés.
  • Nécessite Aktar pour Mac 0.17.0 ou Aktar pour Windows 0.10.0. Les versions plus anciennes répondent qu’elles ne créent pas encore de liens courts.

Exemples

Un lien court pour un envoi de l’historique.
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZ

aktar qr

Affiche dans le terminal le code QR d'un lien ou de n'importe quel texte, pour l'ouvrir sur un téléphone. Avec l'ID d'un envoi, affiche le lien de cet envoi et son code QR.

Utilisation

aktar qr <link|text|upload-id> [--png <file>]

Options

OptionValeurDescription
--png<file>Enregistre le code QR dans un fichier PNG au lieu de l'afficher.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Passez exactement un argument, et mettez entre guillemets un texte qui contient des espaces.
  • L'ID d'un envoi est le champ id de aktar history --json ou aktar upload --json. aktar le cherche parmi les 1 000 derniers envois de l'historique d'Aktar ; pour du texte ou un lien, Aktar n'est pas nécessaire du tout.
  • Dans un terminal, le code est dessiné en noir sur blanc, quel que soit le thème. Quand la sortie n'est pas un terminal, ou si NO_COLOR est défini, il est dessiné sans couleurs.
  • --png enregistre le code QR en PNG au lieu de l'afficher.
  • Pour un envoi qui a un lien court, il affiche le lien court.

Exemples

Un code QR pour n'importe quel lien. L'appareil photo du téléphone l'ouvre.
aktar qr https://files.example.com/2026/10/demo.mp4
Un envoi de l'historique, enregistré en PNG.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Vérifie un jeton auprès d'Aktar et l'enregistre, pour que les autres commandes puissent se connecter.

Utilisation

aktar login [--token <token>] [--port <port>]

Options

OptionValeurDescription
--token<token>Le jeton, au lieu de l'invite.
--port<port>Le port d'Aktar, enregistré avec le jeton. Par défaut 47913.

Bon à savoir

  • Dans un terminal, la commande demande le jeton et masque la saisie. Quand l'entrée vient d'un pipe, elle lit le jeton depuis celui-ci.
  • --token évite l'invite, mais d'autres programmes peuvent voir le jeton pendant que la commande s'exécute, et il se retrouve dans l'historique de votre shell : aktar vous en avertit donc. Le passer par un pipe ou par AKTAR_TOKEN évite cela.
  • Un jeton refusé par Aktar n'est pas enregistré, et le code de sortie est 3.

Exemples

Le jeton reste masqué pendant la saisie.
aktar login
Copy the token from Aktar: Settings > Integrations (turn on Allow local connections first).
Token:
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Sur Mac, avec le jeton copié depuis Aktar.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Sans invite, pour un port modifié. aktar avertit que le jeton était visible.
aktar login --token "$AKTAR_SECRET" --port 47920
aktar: warning: a token on the command line can be seen by other programs (ps) and stays in your shell history. Next time, run aktar login without --token and paste it, or pipe it in.
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

aktar logout

Supprime le jeton et le port enregistrés.

Utilisation

aktar logout

Options

Aucune option.

Bon à savoir

  • AKTAR_TOKEN, s'il est défini, fonctionne toujours après aktar logout.
  • Cela ne déconnecte pas les autres clients. Pour cela, régénérez le jeton dans Aktar.

Exemples

Oublier le jeton.
aktar logout
Logged out.
Ensuite, les commandes vous demandent de vous reconnecter (code de sortie 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Indique à quel Aktar vous êtes connecté, sur quel port, la destination sélectionnée dans Aktar et l'emplacement du fichier de configuration.

Utilisation

aktar status [--json]

Options

OptionValeurDescription
--jsonAffiche du JSON au lieu de texte.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Un moyen rapide de vérifier la connexion dans un script : la commande se termine avec le code 3 quand Aktar est injoignable ou que le jeton est incorrect.

Exemples

Connecté, avec la destination sélectionnée.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
La même chose en JSON, pour les scripts.
aktar status --json
{
  "app": "Aktar",
  "version": "0.10.0",
  "build": "28",
  "apiVersion": 1,
  "defaultDestinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
  "outputFormat": "url",
  "port": 47913
}

aktar destinations

Liste vos destinations avec leur fournisseur, leur bucket et leur ID. * marque celle sélectionnée dans Aktar.

Utilisation

aktar destinations [--json]

Options

OptionValeurDescription
--jsonAffiche du JSON au lieu de texte.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Utilisez un nom ou un ID avec -d. Les noms sont comparés sans tenir compte de la casse ; un ID fonctionne toujours, même après un renommage.
  • --json donne id, name, provider, providerName, bucket, publicBaseURL et isDefault pour chacune.

Exemples

La destination sélectionnée est marquée d'un *.
aktar destinations
* Screenshots  Cloudflare R2  screenshots  5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47
  Builds  Amazon S3  acme-builds  A83F2C10-6D4B-4F7E-9C1A-2B5E8D0F3C66
  Blog  Backblaze B2  blog-assets  E2C7B9A4-1F3D-4A8E-B6C0-9D5F2A7E4B13
Le nom de la destination sélectionnée, avec jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Liste les envois récents, du plus récent au plus ancien : date, nom du fichier et lien. Les mots placés après history lancent une recherche dans l'historique.

Utilisation

aktar history [search] [options]

Options

OptionValeurDescription
-n, --limit<n>Le nombre d'envois à lister. Par défaut 20.
-d, --destination<name|id>Uniquement les envois vers cette destination, par nom ou par ID.
--jsonAffiche du JSON au lieu de texte.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Elle liste 20 envois, sauf si vous passez -n.
  • --json donne les mêmes champs que aktar upload --json, y compris l'id de chaque envoi pour aktar qr.

Exemples

Les trois derniers envois.
aktar history -n 3
2026-10-01  screenshot.png  https://files.example.com/2026/10/7f3c2a91.png
2026-10-01  cover.jpg  https://files.example.com/blog/2026/cover.jpg
2026-09-30  invoice-september.pdf  https://files.example.com/2026/09/0e7d51b3.pdf
Chercher des factures dans une destination.
aktar history invoice -d Screenshots
2026-09-30  invoice-september.pdf  https://files.example.com/2026/09/0e7d51b3.pdf
2026-08-29  invoice-august.pdf  https://files.example.com/2026/08/a6c94f20.pdf
Le lien de la dernière build, avec jq.
aktar history -d Builds -n 1 --json | jq -r '.[0].url'
https://acme-builds.s3.amazonaws.com/2026/10/app-3f9c2e1.zip

aktar mcp

Lance un serveur Model Context Protocol (MCP), pour que des agents IA comme Claude, Cursor, VS Code et Codex puissent envoyer des fichiers via Aktar, retrouver d'anciens envois et créer des liens. Vous l'ajoutez une fois à votre agent ; l'agent le démarre quand il en a besoin.

Utilisation

aktar mcp [--root <folder>]... [--read-only | --allow-replace | --allow-delete] [--max-link-minutes <n>] [--log <file>]

Options

OptionValeurDescription
--root<folder>N'envoyer que les fichiers de ce dossier. À répéter pour d'autres dossiers. Par défaut : le dossier où tourne le serveur, ou aucun si c'est votre dossier personnel ou la racine du disque.
--read-onlyNe proposer que les outils qui ne modifient rien dans un bucket : recherche, listes, liens temporaires et miniatures.
--allow-replaceProposer aussi replace_file, qui écrase un fichier dans un bucket.
--allow-deleteProposer aussi delete_upload, qui supprime un fichier de son bucket, ainsi que replace_file.
--max-link-minutes<n>La durée maximale de validité d'un lien temporaire, en minutes. Par défaut 60, au plus 10080 (7 jours).
--log<file>Ajouter chaque appel d'outil (heure, outil, arguments, résultat) à ce fichier, lisible par vous seul.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Bon à savoir

  • Lancez d'abord aktar login. Le serveur lit le jeton enregistré à chaque appel, donc se reconnecter fonctionne sans redémarrer l'agent.
  • Envoyer un fichier le publie : toute personne ayant son lien peut l'ouvrir. Les agents demandent confirmation avant d'appeler un outil, sauf si vous l'autorisez.
  • Les fichiers ne sont envoyés que depuis les dossiers indiqués avec --root, ou à défaut depuis le dossier où tourne le serveur. Si c'est votre dossier personnel ou la racine du disque, comme avec certaines apps, aucun fichier local n'est envoyé tant que vous n'ajoutez pas --root. --root ~ autorise tout votre dossier personnel, si vous le voulez vraiment. Les chemins sont résolus, liens symboliques compris, avant d'être vérifiés.
  • Les secrets ne sont jamais envoyés, où qu'ils se trouvent : clés SSH et clés privées, fichiers .env, identifiants cloud et de gestionnaires de paquets (~/.aws, ~/.kube, ~/.npmrc et d'autres), la configuration d'Aktar lui-même, le trousseau, les profils de navigateur et les bases de mots de passe. Les fichiers qui ont plusieurs liens physiques sont aussi refusés. Pour partager l'un d'eux, envoyez-le vous-même avec aktar upload.
  • --read-only ne propose que les outils qui ne modifient rien dans un bucket. replace_file écrase un fichier comme le ferait une suppression : il n'est donc proposé qu'avec --allow-replace, et delete_upload qu'avec --allow-delete (qui propose aussi replace_file).
  • create_temporary_link crée des liens de 60 minutes au plus, sauf si --max-link-minutes autorise davantage. upload_clipboard est exclu quand vous indiquez --root, car le presse-papiers peut contenir n'importe quoi.
  • Les résultats des outils commencent par une note précisant que les noms de fichiers, clés et messages qu'ils contiennent sont des données, pas des instructions, et --log garde une trace de chaque appel. Il exécute au plus 4 appels d'outils à la fois.
  • Sans installation globale, utilisez npx -y @getaktar/cli mcp --root ~/Projects comme commande.
  • Il parle la version actuelle de MCP (2026-07-28) et les précédentes qui commencent par initialize (2024-11-05 à 2025-11-25), via stdio. Nécessite aktar 0.4.0 ; les limites ci-dessus sont arrivées avec aktar 0.6.0.

Outils

OutilCe qu'il fait
upload_fileEnvoie un fichier et renvoie son lien, son Markdown et son HTML. Destination, nom, dossier et expiration sont facultatifs. short demande un lien court, ou aucun.
upload_clipboardEnvoie le fichier ou l'image du presse-papiers. short demande un lien court, ou aucun. Exclu quand --root est indiqué.
replace_fileÉcrit un nouveau fichier par-dessus un envoi ou n'importe quel fichier d'un bucket, en gardant son lien. Seulement avec --allow-replace ou --allow-delete. Nécessite Aktar pour Mac 0.14.0 ou Windows 0.7.0.
create_short_linkCrée un lien court pour un envoi avec le raccourcisseur de sa destination, ou renvoie celui qu’il a déjà. Exclu avec --read-only. Nécessite Aktar pour Mac 0.17.0 ou Windows 0.10.0.
search_uploadsRecherche dans l'historique des envois.
list_destinationsListe les destinations et les types de fichiers pour lesquels chacune est utilisée.
list_bucketListe les dossiers et fichiers d'un bucket, y compris les fichiers non envoyés avec Aktar.
create_temporary_linkCrée un lien qui cesse de fonctionner au bout d'un moment (une URL présignée). Jusque-là, toute personne qui l'a peut télécharger le fichier, même depuis un bucket privé. 60 minutes au plus, sauf si --max-link-minutes autorise davantage.
get_thumbnailMontre à l'agent un aperçu d'un envoi. Nécessite Aktar pour Mac 0.13.0 ou Windows 0.6.0.
list_watched_foldersListe les dossiers surveillés et leur état.
get_statusVérifie la connexion à Aktar.
delete_uploadSupprime un envoi de son bucket. Uniquement avec --allow-delete.

Exemples

Ajouter Aktar à Claude Code ou Codex.
claude mcp add aktar -- aktar mcp --root ~/Projects
codex mcp add aktar -- aktar mcp --root ~/Projects
Laisser l'agent envoyer depuis deux dossiers et remplacer des fichiers.
claude mcp add aktar -- aktar mcp --root ~/Projects --root ~/Desktop --allow-replace
Garder une trace de ce que l'agent a fait.
claude mcp add aktar -- aktar mcp --root ~/Projects --log ~/aktar-mcp.log

aktar skill

Affiche un skill d'agent (SKILL.md) qui apprend aux agents à utiliser la commande aktar avec --json : quoi lancer, comment lire le résultat, et n'envoyer que ce que vous avez demandé de partager. Pour les agents qui utilisent des skills mais pas MCP.

Utilisation

aktar skill

Options

Aucune option.

Bon à savoir

  • Enregistrez-le là où votre agent cherche ses skills, par exemple ~/.claude/skills/aktar/ pour Claude Code.

Exemples

Installer le skill pour Claude Code.
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.md

Options communes à toutes les commandes

OptionValeurDescription
-h, --helpAffiche la liste des commandes et des options.
-v, --versionAffiche la version d'aktar.
--port<port>Le port de l'API locale d'Aktar, pour cette commande uniquement. L'emporte sur AKTAR_PORT et sur le port enregistré.

Sortie

Formats

-f choisit ce qui est affiché pour chaque envoi. Sans cette option, aktar affiche l'URL simple, quel que soit le format copié par la barre des menus d'Aktar. Markdown et HTML intègrent les images et font un lien vers tout le reste, comme Aktar.

FormatAffiché pour photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgLe lien (par défaut).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Une image Markdown, ou un lien Markdown pour les autres fichiers.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Une balise <img>, ou un lien <a> pour les autres fichiers.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)Votre modèle défini dans les réglages d'Aktar, avec {url}, {filename} et les autres variables remplies.

stdout et stderr

La sortie standard ne reçoit que les liens, un par ligne, dans l'ordre des fichiers (et les codes QR, avec --qr). Tout le reste va sur la sortie d'erreur : progression, erreurs et remarques comme aktar: photo.jpg: already uploaded, reused the existing link. Ainsi, url=$(aktar upload file) et aktar upload *.png > links.txt obtiennent toujours des liens propres.

aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg

JSON

--json affiche un tableau avec une entrée par fichier envoyé, une fois tous les envois terminés. Les envois échoués en sont absents (ils sont signalés sur stderr) : vérifiez donc aussi le code de sortie.

aktar upload photo.jpg --json
[
  {
    "id": "0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1",
    "filename": "photo.jpg",
    "objectKey": "2026/10/7f3c2a91.jpg",
    "url": "https://files.example.com/2026/10/7f3c2a91.jpg",
    "shortUrl": null,
    "destinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
    "destinationName": "Screenshots",
    "mimeType": "image/jpeg",
    "size": 482113,
    "createdAt": "2026-10-01T12:00:00Z",
    "expiresAt": null,
    "formats": {
      "url": "https://files.example.com/2026/10/7f3c2a91.jpg",
      "markdown": "![](https://files.example.com/2026/10/7f3c2a91.jpg)",
      "html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
      "custom": "![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)"
    },
    "reused": false
  }
]
ChampSignification
idL'ID de l'envoi dans l'historique d'Aktar. aktar qr l'accepte.
filenameLe nom sous lequel Aktar connaît le fichier : le sien, ou celui de --name.
objectKeyL'emplacement du fichier dans le bucket.
urlLe lien.
shortUrlLe lien court, ou null s’il n’y en a pas. formats l’utilisent déjà.
destinationIdL'ID de la destination.
destinationNameLe nom de la destination.
mimeTypeLe type du fichier, après une éventuelle conversion par Aktar.
sizeLa taille en octets, telle que stockée.
createdAtLa date d'envoi (ISO 8601, UTC).
expiresAtLa date à laquelle le bucket le supprime, ou null s'il est conservé.
replacedAtQuand le fichier a été remplacé pour la dernière fois (ISO 8601, UTC). Absent tant qu’il n’est pas remplacé, et dans les versions d’Aktar antérieures à Mac 0.14.0 et Windows 0.7.0.
formatsLe lien dans les quatre formats : url, markdown, html et custom.
reusedtrue quand rien n'a été envoyé parce que le même fichier s'y trouvait déjà. Absent avec les versions d'Aktar antérieures à Mac 0.10.0 et Windows 0.3.0.
shortLinkErrorPourquoi Aktar n’a pas pu créer le lien court ; url est alors le lien d’origine. Absent quand tout s’est bien passé.

Codes de sortie

CodeSignification
0Tout a fonctionné.
1Au moins un envoi ou une requête a échoué ; les autres ont abouti. Les erreurs propres à Aktar, comme une suppression automatique non configurée, aboutissent aussi ici.
2Arguments incorrects, fichier inexistant ou nom de destination inconnu d'Aktar. Rien n'a été envoyé.
3Pas connecté, Aktar n'est pas ouvert, son API locale est désactivée, le jeton est incorrect, ou l'app sur le port n'a pas pu prouver qu'elle est Aktar (ou est trop ancienne pour le faire).

Recettes

Copiez, adaptez les noms de fichiers, c'est prêt. Chaque recette n'utilise que ce qui est documenté plus haut.

Garder le lien dans une variable

Seul le lien arrive sur la sortie standard : la substitution de commande récupère donc exactement l'URL. || exit 1 arrête le script si l'envoi a échoué.

url=$(aktar upload build/report.pdf) || exit 1
echo "Report: $url"
Report: https://files.example.com/2026/10/0e7d51b3.pdf

Envoyer une build et publier le lien

Compressez une build, envoyez-la vers une destination nommée Builds sous le hash court du commit, et publiez le lien sur n'importe quel webhook qui accepte du JSON (un canal de discussion, un outil de suivi de tickets, votre propre endpoint). set -e arrête le script avant la publication si l'envoi échoue.

#!/bin/sh
set -e
zip -qr app.zip dist
url=$(aktar upload app.zip -d Builds --name "app-$(git rev-parse --short HEAD)")
curl -fsS -X POST "$WEBHOOK_URL" \
  -H 'Content-Type: application/json' \
  -d "{\"text\": \"New build: $url\"}"

Une cible Makefile

make share envoie le rapport sous la date du jour et garde le lien dans .last-link. Dans un Makefile, $$ transmet un $ au shell, et la ligne de commande commence par une tabulation.

Makefile
share: dist/report.pdf
	aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-link

Outil d'envoi d'images pour Typora

Dans Typora, ouvrez Settings > Image, choisissez Custom Command comme outil d'envoi d'images et saisissez le chemin complet d'aktar (celui qu'affiche which aktar) suivi de upload. Typora transmet les chemins des images et lit un lien par ligne.

/opt/homebrew/bin/aktar upload

Pas à pas, avec le réglage When Insert… : Envoyer les images Typora sur S3.

Envoyer depuis le Finder ou Raccourcis

Sur Mac, ajoutez une action Run Shell Script à un raccourci, ou à une Action rapide Automator qui reçoit des fichiers dans le Finder, et réglez-la pour transmettre l'entrée as arguments. Raccourcis et Automator ne chargent pas le PATH de votre shell, d'où la première ligne. Sélectionnez des fichiers, lancez l'action, et les liens sont dans le presse-papiers.

export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
aktar upload "$@" | pbcopy
osascript -e 'display notification "Link copied" with title "aktar"'

Elle envoie des fichiers, pas des dossiers. Plusieurs fichiers donnent plusieurs liens, un par ligne.

Fichiers temporaires

Pour un log, un enregistrement d'écran ou tout ce qui n'a pas vocation à rester, laissez le bucket le supprimer. La destination doit d'abord avoir les règles de suppression automatique d'Aktar : configurez-les une fois depuis Supprimer après dans la barre des menus d'Aktar ou dans les réglages de la destination.

aktar upload crash.log --expires 1
aktar upload screen-recording.mov --expires 7 --qr

Les fichiers temporaires vont sous tmp/1d/, tmp/7d/ et ainsi de suite dans le bucket, et le bucket les supprime même quand Aktar n'est pas ouvert.

Ouvrir un lien sur votre téléphone

--qr affiche un code QR sous le lien ; pointez l'appareil photo de votre téléphone vers le terminal. Pour le réafficher plus tard, passez l'ID d'un envoi à aktar qr, ici le dernier envoi correspondant à « demo ».

aktar upload demo.mp4 --qr
aktar qr "$(aktar history demo -n 1 --json | jq -r '.[0].id')"

Windows PowerShell

La même chose fonctionne dans PowerShell. $LASTEXITCODE contient le code de sortie, et ConvertFrom-Json lit --json.

PowerShell
$url = aktar upload .\dist\app.zip -d Builds
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Set-Clipboard $url

$upload = aktar upload .\report.pdf --json | Out-String | ConvertFrom-Json
$upload.formats.markdown

Aktar dans Claude Desktop, Cursor ou VS Code

Les apps qui acceptent une configuration JSON pour les serveurs MCP (Claude Desktop, Cursor, Windsurf et d'autres) ont besoin de cette entrée. VS Code utilise la même entrée sous servers dans .vscode/mcp.json. Demandez ensuite à votre agent d'envoyer un fichier, de retrouver les captures d'écran de la semaine dernière ou de créer un lien temporaire.

JSON
{
  "mcpServers": {
    "aktar": { "command": "aktar", "args": ["mcp", "--root", "/Users/you/Projects"] }
  }
}

Si l'app ne trouve pas aktar, utilisez son chemin complet (which aktar), ou npx avec ["-y", "@getaktar/cli", "mcp", "--root", "/Users/you/Projects"] comme arguments. Indiquez après --root le dossier depuis lequel votre agent peut envoyer des fichiers (sous Windows, par exemple C:\\Users\\you\\Projects).

Ce qu'Aktar fait pour vous

La CLI ne fait que transmettre les fichiers ; Aktar fait le reste, avec les réglages de chaque destination. Tout ce que vous configurez dans l'app s'applique donc aussi à aktar upload, sans option supplémentaire, et le lien obtenu est celui du fichier tel qu'il est stocké.

  • Modèles de chemin

    Le chemin d'objet de la destination nomme le fichier, avec {year}, {uuid}, {filename} et les autres variables. {md5} et {sha256} nomment les fichiers d'après leur contenu.

  • Traitement des images

    Si la destination convertit les images en WebP ou AVIF, les compresse ou les redimensionne, les envois de la CLI ont droit au même traitement, et le lien pointe vers le fichier converti.

  • Métadonnées des photos

    Métadonnées des images, dans les réglages d'envoi par défaut de la destination, retire la position des photos, ou toutes leurs métadonnées, avant qu'elles ne quittent votre ordinateur.

  • Même fichier, même lien

    Avec Réutiliser les liens des fichiers en double activé, un contenu identique dans la même destination reçoit le lien existant au lieu d'être envoyé une deuxième fois. aktar le signale sur stderr.

  • Gros fichiers

    Les gros fichiers sont envoyés en plusieurs parties, sans limite de 5 Go, sont relancés après une coupure de connexion et reprennent là où ils s'étaient arrêtés. aktar transmet le fichier à Aktar en flux continu, sans jamais le charger en mémoire.

  • Liens publics ou temporaires

    Que le lien soit public ou temporaire (présigné), ce qui fonctionne aussi avec un bucket privé, dépend de la destination, comme dans l'app.

Les liens des fichiers en double, le traitement des images, {md5} et {sha256} et les envois en plusieurs parties sont arrivés avec Aktar pour Mac 0.10.0 et Windows 0.3.0 : les nouveautés de la 0.10.0.

Dépannage

Les messages d'erreur d'aktar commencent par aktar: et vont sur stderr. Le code de sortie indique le type de problème.

Aktar isn't running, or its local API is turned off

Ouvrez Aktar et vérifiez que Autoriser les connexions locales est activé dans Réglages > Intégrations. Si vous y avez changé le port, passez-le avec --port ou AKTAR_PORT, ou relancez aktar login --port. Code de sortie 3.

Not connected to Aktar yet

Il n'y a ni jeton enregistré ni AKTAR_TOKEN. Lancez aktar login avec le jeton affiché dans Réglages > Intégrations d'Aktar. Code de sortie 3.

The token doesn't match Aktar's anymore

Le jeton a été régénéré dans Aktar, ou il contient une faute de frappe. Relancez aktar login avec le jeton actuel. Si AKTAR_TOKEN est défini, il l'emporte sur le jeton enregistré : mettez-le à jour ou supprimez-le aussi. Code de sortie 3.

The app on port … couldn't prove it's Aktar

Quelque chose a répondu sur le port d'Aktar mais n'a pas pu montrer qu'il avait votre jeton, donc le jeton n'a pas été envoyé. Si Aktar est ouvert, son jeton a probablement changé : relancez aktar login. Si Aktar n'est pas ouvert, ouvrez-le. Code de sortie 3.

This version of Aktar can't prove it's Aktar

aktar 0.6.0 et ultérieur vérifient l'app avant d'envoyer le jeton, ce qui nécessite Aktar pour Mac 0.18.0 ou Aktar pour Windows 0.11.0 ou ultérieur. Mettez Aktar à jour (il propose lui-même les mises à jour) et la commande fonctionne à nouveau. Code de sortie 3.

MCP: This server doesn't upload local files

L'agent a lancé aktar mcp dans votre dossier personnel ou à la racine du disque, sans --root. Ajoutez à la commande ou à la configuration du serveur --root suivi du dossier d'où les fichiers peuvent venir, par exemple aktar mcp --root ~/Projects, puis redémarrez l'agent.

Auto-delete isn't set up for this destination

--expires nécessite les règles de suppression automatique du bucket. Configurez-les une fois depuis Supprimer après dans la barre des menus d'Aktar ou dans les réglages de la destination, ou envoyez sans --expires. Code de sortie 1.

No destination named "…"

Le message liste les noms connus d'Aktar. Vérifiez l'orthographe, mettez entre guillemets les noms qui contiennent des espaces (-d "Client work"), ou utilisez l'ID affiché par aktar destinations. Code de sortie 2.

Un gros envoi prend beaucoup de temps

C'est la vitesse du fournisseur de stockage : aktar n'a pas de limite de temps pour les envois et affiche la progression sur stderr dans un terminal. Laissez Aktar ouvert jusqu'à la fin. Si la connexion tombe ou qu'Aktar se ferme (Aktar closed the connection before the request finished), envoyez à nouveau le même fichier : Aktar pour Mac 0.10.0 et Windows 0.3.0 reprennent à partir de la dernière partie.

aktar ne démarre pas : SyntaxError ou parseArgs

Votre Node.js est antérieur à la version 18. Vérifiez avec node --version et mettez-le à jour, ou installez aktar avec Homebrew, qui fournit son propre Node.js.

PowerShell indique que l'exécution de scripts est désactivée

La stratégie d'exécution de PowerShell bloque le script installé par npm pour aktar. Lancez plutôt aktar.cmd, ou autorisez une fois les scripts locaux avec Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.