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,--qretaktar qrné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 replacenécessite aktar 0.3.0 et Aktar pour Mac 0.14.0 ou Aktar pour Windows 0.7.0 ou ultérieur -
--short,--no-shortetaktar shortné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/cliAvec Homebrew (macOS)
brew install getaktar/tap/aktar-cliOu lancez-la une fois sans rien installer :
npx @getaktar/cli upload file.pngVérifiez la version installée :
aktar --version
0.6.0Connexion à Aktar
- 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. - Copiez le jeton affiché en dessous.
- Lancez
aktar loginet collez le jeton à l'inviteToken:. 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.jsonOù 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.
{
"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| Variable | Rôle |
|---|---|
AKTAR_TOKEN | Le jeton affiché dans Réglages > Intégrations d'Aktar. Utilisé à la place du jeton enregistré. |
AKTAR_PORT | Le port de l'API locale d'Aktar, si vous l'avez changé. --port l'emporte sur lui. |
NO_COLOR | Dessine les codes QR avec de simples caractères au lieu des couleurs du terminal. |
XDG_CONFIG_HOME | L'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 uploadaktar upload --clipboardaktar replaceaktar shortaktar qraktar loginaktar logoutaktar statusaktar destinationsaktar historyaktar mcpaktar skill
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
| Option | Valeur | Description |
|---|---|---|
-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. |
--short | Créer un lien court avec le raccourcisseur de la destination, même si ses règles ignoreraient cet envoi. | |
--no-short | Ne pas créer de lien court cette fois-ci. | |
--qr | Affiche aussi un code QR pour chaque lien. | |
--json | Affiche 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
aktarse 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. --namefonctionne 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 coverenvoieIMG_4021.jpgsous le nomcover.jpg. Avec--folder, c'est le nom dans le dossier.--expiresaccepte 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.--qrne se combine pas avec--json, et--pngne fonctionne qu'avecaktar 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
--formatet--qrl’utilisent.--shorten crée un même si les règles de la destination ignoreraient cet envoi,--no-shortn’en crée aucun. Si Aktar ne peut pas le créer, le lien d’origine est affiché et stderr indique pourquoi.
Exemples
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.pngaktar upload *.png -f markdown

aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpgaktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpgaktar upload talk.pdf --short
https://s.example.com/k3Tq9aktar upload --clipboard
Envoie le fichier ou l'image du presse-papiers, comme le raccourci presse-papiers d'Aktar.
Utilisation
aktar upload --clipboard [options]Options
| Option | Valeur | Description |
|---|---|---|
--clipboard | Envoie 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. |
--short | Créer un lien court avec le raccourcisseur de la destination, même si ses règles ignoreraient cet envoi. | |
--no-short | Ne pas créer de lien court cette fois-ci. | |
--qr | Affiche aussi un code QR pour chaque lien. | |
--json | Affiche 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. --nameet--folderne fonctionnent qu'avec des fichiers.-d,-f,--expires,--qret--jsonfonctionnent comme avec des fichiers.- Avec
--json, la sortie reste un tableau, avec une seule entrée.
Exemples
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.pngaktar upload --clipboard -f markdown -d Blog
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.pngaktar 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
| Option | Valeur | Description |
|---|---|---|
-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). |
--qr | Affiche aussi un code QR pour chaque lien. | |
--json | Affiche 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,--nameet--clipboardne 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
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdfaktar 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
| Option | Valeur | Description |
|---|---|---|
--json | Afficher les détails du lien court en JSON : fournisseur, état et clics. | |
--qr | Afficher 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.aktarle 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.
--jsonaffiche les détails du lien court : fournisseur, état, et clics et dernier clic quand le raccourcisseur les compte.--qrajoute 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
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZaktar 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
| Option | Valeur | Description |
|---|---|---|
--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
iddeaktar history --jsonouaktar upload --json.aktarle 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_COLORest défini, il est dessiné sans couleurs. --pngenregistre le code QR en PNG au lieu de l'afficher.- Pour un envoi qui a un lien court, il affiche le lien court.
Exemples
aktar qr https://files.example.com/2026/10/demo.mp4aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.pngaktar 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
| Option | Valeur | Description |
|---|---|---|
--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 :aktarvous en avertit donc. Le passer par un pipe ou parAKTAR_TOKENévite cela.- Un jeton refusé par Aktar n'est pas enregistré, et le code de sortie est 3.
Exemples
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.jsonpbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.jsonaktar 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.jsonaktar logout
Supprime le jeton et le port enregistrés.
Utilisation
aktar logoutOptions
Aucune option.
Bon à savoir
AKTAR_TOKEN, s'il est défini, fonctionne toujours aprèsaktar logout.- Cela ne déconnecte pas les autres clients. Pour cela, régénérez le jeton dans Aktar.
Exemples
aktar logout
Logged out.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
| Option | Valeur | Description |
|---|---|---|
--json | Affiche 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
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.jsonaktar 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
| Option | Valeur | Description |
|---|---|---|
--json | Affiche 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. --jsondonneid,name,provider,providerName,bucket,publicBaseURLetisDefaultpour chacune.
Exemples
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-9D5F2A7E4B13aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshotsaktar 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
| Option | Valeur | Description |
|---|---|---|
-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. |
--json | Affiche 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. --jsondonne les mêmes champs queaktar upload --json, y compris l'idde chaque envoi pouraktar qr.
Exemples
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.pdfaktar 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.pdfaktar history -d Builds -n 1 --json | jq -r '.[0].url'
https://acme-builds.s3.amazonaws.com/2026/10/app-3f9c2e1.zipaktar 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
| Option | Valeur | Description |
|---|---|---|
--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-only | Ne proposer que les outils qui ne modifient rien dans un bucket : recherche, listes, liens temporaires et miniatures. | |
--allow-replace | Proposer aussi replace_file, qui écrase un fichier dans un bucket. | |
--allow-delete | Proposer 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,~/.npmrcet 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 avecaktar upload. --read-onlyne 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, etdelete_uploadqu'avec--allow-delete(qui propose aussireplace_file).create_temporary_linkcrée des liens de 60 minutes au plus, sauf si--max-link-minutesautorise davantage.upload_clipboardest 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
--loggarde 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 ~/Projectscomme 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
| Outil | Ce qu'il fait |
|---|---|
upload_file | Envoie 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_clipboard | Envoie 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_link | Cré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_uploads | Recherche dans l'historique des envois. |
list_destinations | Liste les destinations et les types de fichiers pour lesquels chacune est utilisée. |
list_bucket | Liste les dossiers et fichiers d'un bucket, y compris les fichiers non envoyés avec Aktar. |
create_temporary_link | Cré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_thumbnail | Montre à l'agent un aperçu d'un envoi. Nécessite Aktar pour Mac 0.13.0 ou Windows 0.6.0. |
list_watched_folders | Liste les dossiers surveillés et leur état. |
get_status | Vérifie la connexion à Aktar. |
delete_upload | Supprime un envoi de son bucket. Uniquement avec --allow-delete. |
Exemples
claude mcp add aktar -- aktar mcp --root ~/Projects
codex mcp add aktar -- aktar mcp --root ~/Projectsclaude mcp add aktar -- aktar mcp --root ~/Projects --root ~/Desktop --allow-replaceclaude mcp add aktar -- aktar mcp --root ~/Projects --log ~/aktar-mcp.logaktar 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 skillOptions
Aucune option.
Bon à savoir
- Enregistrez-le là où votre agent cherche ses skills, par exemple
~/.claude/skills/aktar/pour Claude Code.
Exemples
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.mdOptions communes à toutes les commandes
| Option | Valeur | Description |
|---|---|---|
-h, --help | Affiche la liste des commandes et des options. | |
-v, --version | Affiche 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.
| Format | Affiché pour photo.jpg |
|---|---|
-f url | https://files.example.com/2026/10/7f3c2a91.jpgLe lien (par défaut). |
-f markdown | 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 | 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.jpgJSON
--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": "",
"html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
"custom": ""
},
"reused": false
}
]| Champ | Signification |
|---|---|
id | L'ID de l'envoi dans l'historique d'Aktar. aktar qr l'accepte. |
filename | Le nom sous lequel Aktar connaît le fichier : le sien, ou celui de --name. |
objectKey | L'emplacement du fichier dans le bucket. |
url | Le lien. |
shortUrl | Le lien court, ou null s’il n’y en a pas. formats l’utilisent déjà. |
destinationId | L'ID de la destination. |
destinationName | Le nom de la destination. |
mimeType | Le type du fichier, après une éventuelle conversion par Aktar. |
size | La taille en octets, telle que stockée. |
createdAt | La date d'envoi (ISO 8601, UTC). |
expiresAt | La date à laquelle le bucket le supprime, ou null s'il est conservé. |
replacedAt | Quand 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. |
formats | Le lien dans les quatre formats : url, markdown, html et custom. |
reused | true 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. |
shortLinkError | Pourquoi 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
| Code | Signification |
|---|---|
0 | Tout a fonctionné. |
1 | Au 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. |
2 | Arguments incorrects, fichier inexistant ou nom de destination inconnu d'Aktar. Rien n'a été envoyé. |
3 | Pas 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.pdfEnvoyer 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.
share: dist/report.pdf
aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-linkOutil 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 uploadPas à 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 --qrLes 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.
$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.markdownAktar 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.
{
"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.
aktarle 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.
aktartransmet 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.