Aktar CLI

aktar CLI-Dokumentation

Jeder Befehl, jede Option und jede Ausgabe von aktar, mit Beispielen zum Kopieren. Neu hier? Die CLI-Übersicht ist schneller gelesen.

Überblick

aktar ist eine Fernbedienung für die Aktar-App auf demselben Computer. Du gibst ihm Dateien, es reicht sie an Aktar auf 127.0.0.1 weiter, und Aktar lädt sie mit den Zielen, Schlüsseln, Pfadvorlagen und Link-Einstellungen hoch, die du schon eingerichtet hast. Der Link kommt in dein Terminal zurück.

Was es ist

  • Ein kleiner Node.js-Befehl für Skripte, CI-Jobs auf deinem eigenen Mac oder Windows-Rechner und Editoren wie Typora
  • Ein Weg, Dateien und die Zwischenablage hochzuladen, QR-Codes anzuzeigen und deine Ziele und deinen Upload-Verlauf abzurufen
  • Kostenlos und Open Source (MIT), wie die App

Was es nicht ist

  • Nicht eigenständig: Ohne laufendes Aktar kann es nichts hochladen. Es hat nie deine Speicher-Schlüssel
  • Nicht für Linux-Server oder entfernte Rechner: Es spricht nur mit Aktar auf demselben Computer. Dort nutzt du die CLI deines Speicheranbieters

Voraussetzungen

  • Aktar für Mac 0.18.0 oder Aktar für Windows 0.11.0 oder neuer, mit mindestens einem Ziel. aktar 0.5.0 und älter funktionieren mit Aktar für Mac 0.4.0 oder neuer
  • Node.js 18 oder neuer (Homebrew installiert es für dich)
  • --name, --qr und aktar qr brauchen aktar 0.2.0 oder neuer
  • Den Link einer schon hochgeladenen Datei wiederzuverwenden braucht aktar 0.2.0 und Aktar für Mac 0.10.0 oder Aktar für Windows 0.3.0
  • aktar replace braucht aktar 0.3.0 und Aktar für Mac 0.14.0 oder Aktar für Windows 0.7.0 oder neuer
  • --short, --no-short und aktar short brauchen aktar 0.5.0 und Aktar für Mac 0.17.0 oder Aktar für Windows 0.10.0, mit einem Linkkürzer am Ziel

Installation

Einmal installieren, mit npm oder Homebrew. Beide legen den Befehl aktar in deinen Pfad.

Mit npm (macOS und Windows)

npm install -g @getaktar/cli

Mit Homebrew (macOS)

brew install getaktar/tap/aktar-cli

Oder einmal ausführen, ohne etwas zu installieren:

npx @getaktar/cli upload file.png

Prüfen, welche Version du hast:

aktar --version
0.6.0

Mit Aktar verbinden

  1. Öffne in Aktar für Mac oder Windows Einstellungen → Integrationen und aktiviere Lokale Verbindungen erlauben. Aktar lauscht dann nur auf 127.0.0.1, auf Port 47913, sofern du ihn dort nicht änderst.
  2. Kopiere das Token, das darunter angezeigt wird.
  3. Führe aktar login aus und füge das Token bei der Abfrage Token: ein. Es bleibt beim Tippen verborgen und wird vor dem Speichern bei Aktar geprüft, ein Tippfehler wird also nicht gespeichert.
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

Wo das Token liegt

aktar login speichert Token und Port auf dem Mac in ~/.config/aktar/cli.json (oder in $XDG_CONFIG_HOME/aktar/cli.json, wenn du das gesetzt hast) und unter Windows in %APPDATA%\aktar\cli.json. Nur dein Benutzer kann die Datei lesen.

Bevor aktar das Token sendet, lässt es sich von der App auf dem Port beweisen, dass sie dasselbe Token hat, ohne es zu senden. Läuft Aktar also nicht und lauscht ein anderes Programm auf seinem Port, bekommt dieses Programm weder das Token noch deine Dateien. Das braucht Aktar für Mac 0.18.0 oder Aktar für Windows 0.11.0 oder neuer; mit einer älteren Version von Aktar bricht aktar ab und bittet dich, Aktar zu aktualisieren.

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

aktar logout löscht diese Datei. Um alle Clients auf einmal auszusperren, klickst du in Aktar neben dem Token auf Regenerate und führst danach aktar login mit dem neuen Token erneut aus.

Skripte und CI

Auf einem Build-Rechner lässt du aktar login weg und setzt AKTAR_TOKEN (und AKTAR_PORT, falls du den Port geändert hast). Sie haben Vorrang vor der gespeicherten Datei. Aktar muss auf diesem Rechner laufen, in derselben Benutzersitzung.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
VariableWofür sie da ist
AKTAR_TOKENDas Token aus Einstellungen → Integrationen in Aktar. Wird statt des gespeicherten verwendet.
AKTAR_PORTDer Port der lokalen API von Aktar, falls du ihn geändert hast. --port hat Vorrang.
NO_COLORZeichnet QR-Codes mit einfachen Zeichen statt mit Terminalfarben.
XDG_CONFIG_HOMEWo der Konfigurationsordner unter macOS liegt (Standard ~/.config). Unter Windows wird %APPDATA% verwendet.

Befehle

Alle Befehle sprechen mit Aktar, außer aktar qr mit reinem Text oder einem Link. Ohne -d gehen Uploads an das Ziel, das in der Menüleiste von Aktar ausgewählt ist, und erscheinen wie alle anderen im Verlauf von Aktar. aktar --help gibt dieselbe Liste aus. Mit Aktar für Mac 0.14.0 oder Aktar für Windows 0.7.0 oder neuer folgt ein Upload ohne -d zuerst den Verwenden für-Regeln der Ziele, sodass ein Bild in dein Bildschirmfoto-Ziel und ein Build in ein anderes gehen kann.

aktar upload

Lädt eine oder mehrere Dateien hoch und gibt pro Datei einen Link aus, in der richtigen Reihenfolge, sobald sie fertig ist.

Verwendung

aktar upload <file>... [options]

Optionen

FlagWertBeschreibung
-d, --destination<name|id>Ziel für den Upload, per Name oder ID. Standard: das in Aktar ausgewählte.
-f, --format<format>Was ausgegeben wird: url (Standard), markdown, html oder custom (deine Vorlage in Aktar).
--name<name>Eine Datei unter diesem Namen hochladen. Ihre Endung bleibt erhalten, wenn der Name keine hat.
--folder<path>Den Dateinamen behalten und in diesen Ordner hochladen.
--expires<days>Den Bucket die Datei nach 1, 7, 14 oder 30 Tagen löschen lassen. 0 behält sie.
--shortEinen Kurzlink mit dem Linkkürzer des Ziels erstellen, auch wenn seine Regeln diesen Upload auslassen würden.
--no-shortDiesmal keinen Kurzlink erstellen.
--qrZusätzlich einen QR-Code für jeden Link ausgeben.
--jsonStatt Links ein JSON-Array mit allen Details zu jedem Upload ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Jede Datei wird geprüft, bevor irgendetwas hochgeladen wird: Fehlt eine, wird nichts hochgeladen, und aktar beendet sich mit Code 2.
  • Schlägt ein Upload fehl, laufen die anderen trotzdem durch. Jeder Fehler wird auf stderr gemeldet, und der Exit-Code ist 1.
  • Ohne --folder benennt die Pfadvorlage des Ziels die Datei, genau wie beim Ablegen auf der Menüleiste. Mit --folder behält die Datei in diesem Ordner ihren Namen.
  • --name funktioniert mit jeweils einer Datei. Schrägstriche werden entfernt, und die Dateiendung wird ergänzt, wenn der Name keine hat: --name cover lädt IMG_4021.jpg als cover.jpg hoch. Mit --folder ist es der Name im Ordner.
  • --expires nimmt 1, 7, 14 oder 30 (Tage) oder 0, um die Datei zu behalten. Ohne die Option bleibt die Datei erhalten, egal, was in Aktar bei Löschen nach eingestellt ist. Das Ziel braucht dafür die Regeln für automatisches Löschen von Aktar, und die Option lässt sich nicht mit --folder kombinieren.
  • --qr lässt sich nicht mit --json kombinieren, und --png funktioniert nur mit aktar qr.
  • Im Terminal wird der Fortschritt auf stderr angezeigt, während eine Datei hochlädt. Die Datei wird an Aktar gestreamt, ihre Größe spielt also keine Rolle, und es gibt kein Zeitlimit.
  • Hat das Ziel in Aktar einen Linkkürzer, wird der Kurzlink ausgegeben, und --format und --qr verwenden ihn. --short erstellt einen, auch wenn die Regeln des Ziels diesen Upload auslassen würden, --no-short erstellt keinen. Kann Aktar ihn nicht erstellen, wird der ursprüngliche Link ausgegeben, und stderr nennt den Grund.

Beispiele

Eine Datei, ein Link.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Mehrere Dateien als Markdown: eine Zeile pro Datei, in der richtigen Reihenfolge.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Unter einem anderen Namen in einen Ordner hochladen.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
Dieselbe Datei lag schon im Bucket: Der Link wird wie gewohnt ausgegeben, der Hinweis geht an stderr.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg
Mit einem Linkkürzer am Ziel wird der Kurzlink ausgegeben.
aktar upload talk.pdf --short
https://s.example.com/k3Tq9

aktar upload --clipboard

Lädt die Datei oder das Bild aus der Zwischenablage hoch, wie das Zwischenablage-Kürzel von Aktar.

Verwendung

aktar upload --clipboard [options]

Optionen

FlagWertBeschreibung
--clipboardDen Inhalt der Zwischenablage statt Dateien hochladen.
-d, --destination<name|id>Ziel für den Upload, per Name oder ID. Standard: das in Aktar ausgewählte.
-f, --format<format>Was ausgegeben wird: url (Standard), markdown, html oder custom (deine Vorlage in Aktar).
--expires<days>Den Bucket die Datei nach 1, 7, 14 oder 30 Tagen löschen lassen. 0 behält sie.
--shortEinen Kurzlink mit dem Linkkürzer des Ziels erstellen, auch wenn seine Regeln diesen Upload auslassen würden.
--no-shortDiesmal keinen Kurzlink erstellen.
--qrZusätzlich einen QR-Code für jeden Link ausgeben.
--jsonStatt Links ein JSON-Array mit allen Details zu jedem Upload ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Gib Dateien oder --clipboard an, nicht beides.
  • --name und --folder funktionieren nur mit Dateien. -d, -f, --expires, --qr und --json funktionieren wie bei Dateien.
  • Mit --json kommt trotzdem ein Array heraus, mit einem Eintrag.

Beispiele

Der Screenshot, den du gerade kopiert hast.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
Als Markdown, an ein Ziel namens Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
Vom Bucket nach einem Tag gelöscht.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Schreibt eine neue Datei über einen Upload, sodass Schlüssel und Link gleich bleiben. Alle mit dem Link sehen die neue Datei.

Verwendung

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

Optionen

FlagWertBeschreibung
-d, --destination<name|id>Für einen Schlüssel: das Ziel, in dessen Bucket er liegt, per Name oder ID. Standard: das in Aktar ausgewählte.
-f, --format<format>Was ausgegeben wird: url (Standard), markdown, html oder custom (deine Vorlage in Aktar).
--qrZusätzlich einen QR-Code für jeden Link ausgeben.
--jsonStatt Links ein JSON-Array mit allen Details zu jedem Upload ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Das erste Argument ist eine Upload-ID oder ein Link aus aktar history (der Eintrag im Verlauf von Aktar wird aktualisiert), sonst ein Schlüssel im Bucket von -d (ohne -d das in Aktar ausgewählte Ziel). Ein Link, der nicht im Verlauf von Aktar steht, wird abgelehnt: gib stattdessen seinen Schlüssel mit -d an.
  • Aktar entfernt die Metadaten der Datei und verkleinert sie, wie das Ziel es vorgibt, wandelt sie aber nie in ein anderes Format um, sodass die Endung des Schlüssels bleibt. Eine Datei unter tmp/{N}d/ beginnt ihre N Tage von vorn.
  • Der Schlüssel wird nie nummeriert und sonst wird nichts hochgeladen. --folder, --expires, --name und --clipboard gelten hier nicht und werden abgelehnt.
  • Alte Kopien können eine Weile im Cache eines CDN bleiben. Die Kurze Cache-Dauer eines Ziels oder das Leeren des Cloudflare-Caches in Aktar erledigt das.
  • Braucht Aktar für Mac 0.14.0 oder Aktar für Windows 0.7.0 oder neuer.

Beispiele

Einen Upload aus dem Verlauf per ID ersetzen; der Link bleibt gleich.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Einen Schlüssel im Bucket eines anderen Ziels ersetzen und als Markdown ausgeben.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar short

Erstellt mit dem Linkkürzer des Ziels einen Kurzlink für einen Upload aus dem Verlauf und gibt ihn aus. Hat der Upload schon einen, wird dieser ausgegeben.

Verwendung

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

Optionen

FlagWertBeschreibung
--jsonDie Details des Kurzlinks als JSON ausgeben: Anbieter, Status und Klicks.
--qrZusätzlich den QR-Code des Kurzlinks ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Gib eine Upload-ID oder einen Link aus aktar history an; sein Kurzlink geht auch. aktar sucht ihn in den letzten 1.000 Uploads.
  • Das Ziel braucht einen Linkkürzer im Abschnitt Kurzlinks in Aktar: Shlink, YOURLS, Kutt, Dub, Short.io oder eine eigene Anfrage. Der Kurzlink kommt von diesem Kürzer, deine Links und Klickdaten bleiben also in deiner Infrastruktur.
  • --json gibt die Details des Kurzlinks aus: Anbieter, Status sowie Klicks und letzten Klick, wenn der Kürzer sie zählt. --qr fügt seinen QR-Code hinzu. Beides zusammen geht nicht.
  • Braucht Aktar für Mac 0.17.0 oder Aktar für Windows 0.10.0. Ältere Versionen antworten, dass sie noch keine Kurzlinks erstellen.

Beispiele

Ein Kurzlink für einen Upload aus dem Verlauf.
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZ

aktar qr

Zeigt im Terminal einen QR-Code für einen Link oder beliebigen Text, damit du ihn auf dem Handy öffnen kannst. Mit einer Upload-ID zeigt er den Link dieses Uploads und seinen QR-Code.

Verwendung

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

Optionen

FlagWertBeschreibung
--png<file>Den QR-Code als PNG-Datei speichern, statt ihn auszugeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Gib genau ein Argument an und setz Text mit Leerzeichen in Anführungszeichen.
  • Eine Upload-ID ist die id aus aktar history --json oder aktar upload --json. aktar sucht sie in den letzten 1.000 Uploads im Verlauf von Aktar. Für reinen Text oder einen Link braucht es Aktar gar nicht.
  • Im Terminal wird der Code schwarz auf weiß gezeichnet, unabhängig vom Theme. Ist die Ausgabe kein Terminal oder ist NO_COLOR gesetzt, wird er ohne Farben gezeichnet.
  • --png speichert den QR-Code als PNG, statt ihn auszugeben.
  • Bei einem Upload mit Kurzlink zeigt er den Kurzlink.

Beispiele

Ein QR-Code für einen beliebigen Link. Die Handykamera öffnet ihn.
aktar qr https://files.example.com/2026/10/demo.mp4
Ein Upload aus dem Verlauf, als PNG gespeichert.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Prüft ein Token bei Aktar und speichert es, damit die anderen Befehle sich verbinden können.

Verwendung

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

Optionen

FlagWertBeschreibung
--token<token>Das Token, statt der Abfrage.
--port<port>Der Port von Aktar, wird zusammen mit dem Token gespeichert. Standard 47913.

Gut zu wissen

  • Im Terminal fragt es nach dem Token und verbirgt, was du tippst. Kommt die Eingabe über eine Pipe, liest es das Token von dort.
  • --token überspringt die Abfrage, aber andere Programme können das Token sehen, solange der Befehl läuft, und es landet in deinem Shell-Verlauf, deshalb warnt aktar davor. Eine Pipe oder AKTAR_TOKEN vermeiden das.
  • Ein Token, das Aktar ablehnt, wird nicht gespeichert, und der Exit-Code ist 3.

Beispiele

Das Token bleibt beim Tippen verborgen.
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
Auf dem Mac, mit dem aus Aktar kopierten Token.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Ohne Abfrage, für einen geänderten Port. aktar warnt, dass das Token sichtbar war.
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

Löscht das gespeicherte Token und den Port.

Verwendung

aktar logout

Optionen

Keine Optionen.

Gut zu wissen

  • AKTAR_TOKEN funktioniert, falls gesetzt, auch nach aktar logout weiter.
  • Andere Clients werden dadurch nicht getrennt. Dafür erzeugst du das Token in Aktar neu.

Beispiele

Das Token vergessen.
aktar logout
Logged out.
Danach verlangen die Befehle eine neue Anmeldung (Exit-Code 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Zeigt, mit welchem Aktar du verbunden bist, auf welchem Port, welches Ziel in Aktar ausgewählt ist und wo die Konfigurationsdatei liegt.

Verwendung

aktar status [--json]

Optionen

FlagWertBeschreibung
--jsonJSON statt Text ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Ein schneller Verbindungstest in einem Skript: Der Befehl beendet sich mit Code 3, wenn Aktar nicht erreichbar oder das Token falsch ist.

Beispiele

Verbunden, mit dem ausgewählten Ziel.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
Dasselbe als JSON, für Skripte.
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

Listet deine Ziele mit Anbieter, Bucket und ID auf. * markiert das in Aktar ausgewählte.

Verwendung

aktar destinations [--json]

Optionen

FlagWertBeschreibung
--jsonJSON statt Text ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Nutze bei -d einen Namen oder eine ID. Bei Namen spielt Groß- und Kleinschreibung keine Rolle, eine ID funktioniert immer, auch nach dem Umbenennen.
  • --json liefert für jedes Ziel id, name, provider, providerName, bucket, publicBaseURL und isDefault.

Beispiele

Das ausgewählte Ziel ist mit * markiert.
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
Der Name des ausgewählten Ziels, mit jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Listet die letzten Uploads auf, die neuesten zuerst: Datum, Dateiname und Link. Wörter nach history durchsuchen den Verlauf.

Verwendung

aktar history [search] [options]

Optionen

FlagWertBeschreibung
-n, --limit<n>Wie viele Uploads gelistet werden. Standard 20.
-d, --destination<name|id>Nur Uploads zu diesem Ziel, per Name oder ID.
--jsonJSON statt Text ausgeben.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Es werden 20 Uploads gelistet, sofern du nicht -n angibst.
  • --json liefert dieselben Felder wie aktar upload --json, darunter die id jedes Uploads für aktar qr.

Beispiele

Die letzten drei Uploads.
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
In einem Ziel nach Rechnungen suchen.
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
Der Link des neuesten Builds, mit 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

Startet einen Model-Context-Protocol-Server (MCP), damit KI-Agenten wie Claude, Cursor, VS Code und Codex über Aktar Dateien hochladen, frühere Uploads finden und Links erstellen können. Du trägst ihn einmal in deinen Agenten ein; der Agent startet ihn selbst, wenn er ihn braucht.

Verwendung

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

Optionen

FlagWertBeschreibung
--root<folder>Nur Dateien aus diesem Ordner hochladen. Für weitere Ordner wiederholen. Standard: der Ordner, in dem der Server läuft, oder keiner, wenn das dein Benutzerordner oder die oberste Ebene der Festplatte ist.
--read-onlyNur die Tools anbieten, die in einem Bucket nichts verändern: Suche, Listen, temporäre Links und Vorschaubilder.
--allow-replaceZusätzlich replace_file anbieten, das eine Datei in einem Bucket überschreibt.
--allow-deleteZusätzlich delete_upload anbieten, das eine Datei aus ihrem Bucket löscht, und replace_file.
--max-link-minutes<n>Wie lange ein temporärer Link höchstens funktioniert, in Minuten. Standard 60, höchstens 10080 (7 Tage).
--log<file>Jeden Tool-Aufruf (Zeit, Tool, Argumente, Ergebnis) an diese Datei anhängen, die nur du lesen kannst.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Gut zu wissen

  • Führe zuerst aktar login aus. Der Server liest bei jedem Aufruf das gespeicherte Token, daher funktioniert ein erneutes Anmelden ohne Neustart des Agenten.
  • Ein Upload veröffentlicht eine Datei: Jeder mit dem Link kann sie öffnen. Agenten fragen vor dem Aufruf eines Tools nach, sofern du es nicht erlaubst.
  • Dateien werden nur aus den Ordnern hochgeladen, die du mit --root angibst, sonst aus dem Ordner, in dem der Server läuft. Ist das dein Benutzerordner oder die oberste Ebene der Festplatte, wie bei manchen Apps, werden keine lokalen Dateien hochgeladen, bis du --root hinzufügst. --root ~ erlaubt deinen ganzen Benutzerordner, falls du das wirklich willst. Pfade werden samt Symlinks aufgelöst, bevor sie geprüft werden.
  • Geheimnisse werden nie hochgeladen, egal wo sie liegen: SSH- und private Schlüssel, .env-Dateien, Zugangsdaten für Cloud und Paketmanager (~/.aws, ~/.kube, ~/.npmrc und andere), die Konfiguration von Aktar selbst, der Schlüsselbund, Browserprofile und Passwortdatenbanken. Dateien mit mehreren Hardlinks werden ebenfalls abgelehnt. Um eine davon zu teilen, lade sie selbst mit aktar upload hoch.
  • --read-only bietet nur die Tools an, die in einem Bucket nichts verändern. replace_file überschreibt eine Datei, wie es ein Löschen täte, und wird daher nur mit --allow-replace angeboten, delete_upload nur mit --allow-delete (das auch replace_file anbietet).
  • create_temporary_link erstellt Links, die höchstens 60 Minuten gelten, sofern --max-link-minutes nicht mehr erlaubt. upload_clipboard fehlt, wenn du --root angibst, da die Zwischenablage alles enthalten kann.
  • Tool-Ergebnisse beginnen mit dem Hinweis, dass Dateinamen, Keys und Meldungen darin Daten sind, keine Anweisungen, und --log protokolliert jeden Aufruf. Es laufen höchstens 4 Tool-Aufrufe gleichzeitig.
  • Ohne globale Installation nimm npx -y @getaktar/cli mcp --root ~/Projects als Befehl.
  • Er spricht die aktuelle MCP-Version (2026-07-28) und die früheren, die mit initialize beginnen (2024-11-05 bis 2025-11-25), über stdio. Braucht aktar 0.4.0; die Grenzen oben kamen mit aktar 0.6.0.

Tools

ToolWas es tut
upload_fileLädt eine Datei hoch und gibt ihren Link, Markdown und HTML zurück. Ziel, Name, Ordner und Ablauf sind optional. short verlangt einen Kurzlink oder keinen.
upload_clipboardLädt die Datei oder das Bild aus der Zwischenablage hoch. short verlangt einen Kurzlink oder keinen. Fehlt, wenn --root angegeben ist.
replace_fileSchreibt eine neue Datei über einen Upload oder eine beliebige Datei in einem Bucket und behält ihren Link. Nur mit --allow-replace oder --allow-delete. Braucht Aktar für Mac 0.14.0 oder Windows 0.7.0.
create_short_linkErstellt mit dem Linkkürzer des Ziels einen Kurzlink für einen Upload oder gibt den vorhandenen zurück. Fehlt mit --read-only. Braucht Aktar für Mac 0.17.0 oder Windows 0.10.0.
search_uploadsDurchsucht den Upload-Verlauf.
list_destinationsListet Ziele und die Dateitypen auf, für die jedes genutzt wird.
list_bucketListet die Ordner und Dateien eines Buckets auf, auch Dateien, die nicht mit Aktar hochgeladen wurden.
create_temporary_linkErstellt einen Link, der nach einer Weile nicht mehr funktioniert (eine Presigned URL). Bis dahin kann jeder mit dem Link die Datei herunterladen, auch aus einem privaten Bucket. Höchstens 60 Minuten, sofern --max-link-minutes nicht mehr erlaubt.
get_thumbnailZeigt dem Agenten eine Vorschau eines Uploads. Braucht Aktar für Mac 0.13.0 oder Windows 0.6.0.
list_watched_foldersListet überwachte Ordner und ihren Status auf.
get_statusPrüft die Verbindung zu Aktar.
delete_uploadLöscht einen Upload aus seinem Bucket. Nur mit --allow-delete.

Beispiele

Aktar zu Claude Code oder Codex hinzufügen.
claude mcp add aktar -- aktar mcp --root ~/Projects
codex mcp add aktar -- aktar mcp --root ~/Projects
Den Agenten aus zwei Ordnern hochladen und Dateien ersetzen lassen.
claude mcp add aktar -- aktar mcp --root ~/Projects --root ~/Desktop --allow-replace
Festhalten, was der Agent getan hat.
claude mcp add aktar -- aktar mcp --root ~/Projects --log ~/aktar-mcp.log

aktar skill

Gibt einen Agenten-Skill (SKILL.md) aus, der Agenten beibringt, den Befehl aktar mit --json zu nutzen: was auszuführen ist, wie das Ergebnis gelesen wird und dass nur hochgeladen wird, was du teilen wolltest. Für Agenten, die Skills, aber kein MCP nutzen.

Verwendung

aktar skill

Optionen

Keine Optionen.

Gut zu wissen

  • Speichere ihn dort, wo dein Agent nach Skills sucht, zum Beispiel ~/.claude/skills/aktar/ für Claude Code.

Beispiele

Den Skill für Claude Code installieren.
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.md

Optionen für jeden Befehl

FlagWertBeschreibung
-h, --helpDie Liste der Befehle und Optionen anzeigen.
-v, --versionDie Version von aktar anzeigen.
--port<port>Der Port der lokalen API von Aktar, nur für diesen Befehl. Hat Vorrang vor AKTAR_PORT und dem gespeicherten Port.

Ausgabe

Formate

-f bestimmt, was für jeden Upload ausgegeben wird. Ohne die Option gibt aktar die reine URL aus, egal, welches Format die Menüleiste von Aktar kopiert. Markdown und HTML betten Bilder ein und verlinken alles andere, genau wie Aktar.

FormatAusgabe für photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgDer Link (Standard).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Ein Markdown-Bild, bei anderen Dateien ein Markdown-Link.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Ein <img>-Tag, bei anderen Dateien ein <a>-Link.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)Deine Vorlage aus den Einstellungen von Aktar, mit ausgefülltem {url}, {filename} und den anderen Variablen.

stdout und stderr

Die Standardausgabe bekommt nur die Links, einen pro Zeile, in der Reihenfolge der Dateien (und mit --qr die QR-Codes). Alles andere geht an die Standardfehlerausgabe: Fortschritt, Fehler und Hinweise wie aktar: photo.jpg: already uploaded, reused the existing link. So bekommen url=$(aktar upload file) und aktar upload *.png > links.txt immer saubere Links.

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

JSON

--json gibt ein Array mit einem Eintrag pro hochgeladener Datei aus, nachdem alle fertig sind. Fehlgeschlagene Uploads fehlen darin (sie werden auf stderr gemeldet), prüf also auch den Exit-Code.

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
  }
]
FeldBedeutung
idDie ID des Uploads im Verlauf von Aktar. aktar qr nimmt sie an.
filenameDer Dateiname, unter dem Aktar die Datei kennt: ihr eigener oder --name.
objectKeyWo die Datei im Bucket liegt.
urlDer Link.
shortUrlDer Kurzlink oder null, wenn es keinen gibt. formats verwenden ihn schon.
destinationIdDie ID des Ziels.
destinationNameDer Name des Ziels.
mimeTypeDer Dateityp, nach einer eventuellen Umwandlung durch Aktar.
sizeGröße in Bytes, wie gespeichert.
createdAtWann die Datei hochgeladen wurde (ISO 8601, UTC).
expiresAtWann der Bucket sie löscht, oder null, wenn sie bleibt.
replacedAtWann die Datei zuletzt ersetzt wurde (ISO 8601, UTC). Fehlt, bis sie ersetzt wird, und bei Aktar-Versionen vor Mac 0.14.0 und Windows 0.7.0.
formatsDer Link in allen vier Formaten: url, markdown, html und custom.
reusedtrue, wenn nichts hochgeladen wurde, weil dieselbe Datei schon da war. Fehlt bei Aktar-Versionen vor Mac 0.10.0 und Windows 0.3.0.
shortLinkErrorWarum Aktar den Kurzlink nicht erstellen konnte; url ist dann der ursprüngliche Link. Fehlt, wenn alles geklappt hat.

Exit-Codes

CodeBedeutung
0Alles hat geklappt.
1Mindestens ein Upload oder eine Anfrage ist fehlgeschlagen, die anderen sind trotzdem durchgelaufen. Fehler von Aktar selbst, etwa wenn automatisches Löschen nicht eingerichtet ist, landen ebenfalls hier.
2Falsche Argumente, eine Datei, die nicht existiert, oder ein Zielname, den Aktar nicht kennt. Nichts wurde hochgeladen.
3Nicht angemeldet, Aktar läuft nicht, die lokale API ist aus, das Token ist falsch, oder die App auf dem Port konnte nicht beweisen, dass sie Aktar ist (oder ist dafür zu alt).

Rezepte

Kopieren, Dateinamen anpassen, fertig. Jedes Rezept nutzt nur, was oben dokumentiert ist.

Den Link in einer Variablen speichern

Nur der Link landet in der Standardausgabe, die Befehlsersetzung bekommt also genau die URL. || exit 1 bricht das Skript ab, wenn der Upload fehlgeschlagen ist.

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

Einen Build hochladen und den Link posten

Pack einen Build als ZIP, lade ihn unter dem kurzen Hash des Commits an ein Ziel namens Builds hoch und poste den Link an einen beliebigen Webhook, der JSON annimmt (einen Chat-Kanal, einen Issue-Tracker, deinen eigenen Endpunkt). set -e stoppt vor dem Posten, wenn der Upload fehlschlägt.

#!/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\"}"

Ein Makefile-Target

make share lädt den Bericht unter dem heutigen Datum hoch und speichert den Link in .last-link. In einem Makefile reicht $$ ein $ an die Shell weiter, und die Befehlszeile beginnt mit einem Tab.

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

Bild-Uploader für Typora

Öffne in Typora Settings > Image, wähle Custom Command als Image Uploader und trag den vollständigen Pfad zu aktar ein (den, den which aktar ausgibt), gefolgt von upload. Typora übergibt die Bildpfade und liest einen Link pro Zeile.

/opt/homebrew/bin/aktar upload

Schritt für Schritt, mit der Einstellung When Insert…: Typora-Bilder zu S3 hochladen.

Aus dem Finder oder mit Kurzbefehlen hochladen

Füge auf dem Mac einem Kurzbefehl oder einer Automator-Schnellaktion, die Dateien im Finder empfängt, eine Aktion Run Shell Script hinzu und stell die Eingabe auf as arguments. Kurzbefehle und Automator laden den PATH deiner Shell nicht, daher die erste Zeile. Dateien auswählen, ausführen, und die Links liegen in der Zwischenablage.

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

Es lädt Dateien hoch, keine Ordner. Mehrere Dateien ergeben mehrere Links, einen pro Zeile.

Temporäre Dateien

Ein Log, eine Bildschirmaufnahme oder alles, was nicht liegen bleiben soll: Lass den Bucket es löschen. Das Ziel braucht zuerst die Regeln für automatisches Löschen von Aktar. Richte sie einmal über Löschen nach in der Menüleiste von Aktar oder in den Einstellungen des Ziels ein.

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

Ablaufende Dateien landen im Bucket unter tmp/1d/, tmp/7d/ und so weiter, und der Bucket löscht sie auch, wenn Aktar nicht läuft.

Einen Link auf dem Handy öffnen

--qr gibt unter dem Link einen QR-Code aus. Richte einfach die Handykamera aufs Terminal. Um ihn später erneut anzuzeigen, übergib die ID eines Uploads an aktar qr, hier die des neuesten Uploads, der zu „demo“ passt.

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

Windows PowerShell

Dasselbe funktioniert in PowerShell. $LASTEXITCODE enthält den Exit-Code, und ConvertFrom-Json liest --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 in Claude Desktop, Cursor oder VS Code

Apps, die eine JSON-Konfiguration für MCP-Server annehmen (Claude Desktop, Cursor, Windsurf und andere), brauchen diesen Eintrag. VS Code nutzt denselben Eintrag unter servers in .vscode/mcp.json. Bitte dann deinen Agenten, eine Datei hochzuladen, die Screenshots der letzten Woche zu finden oder einen temporären Link zu erstellen.

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

Findet die App aktar nicht, nimm den vollständigen Pfad (which aktar) oder npx mit ["-y", "@getaktar/cli", "mcp", "--root", "/Users/you/Projects"] als Argumenten. Setze hinter --root den Ordner, aus dem dein Agent hochladen darf (unter Windows etwa C:\\Users\\you\\Projects).

Was Aktar für dich erledigt

Die CLI reicht nur Dateien weiter, den Rest erledigt Aktar mit den Einstellungen des jeweiligen Ziels. Alles, was du in der App eingerichtet hast, gilt also auch für aktar upload, ohne zusätzliche Optionen, und du bekommst den Link zur Datei, wie sie gespeichert wurde.

  • Pfadvorlagen

    Der Objektpfad des Ziels benennt die Datei, mit {year}, {uuid}, {filename} und den anderen Variablen. {md5} und {sha256} benennen Dateien nach ihrem Inhalt.

  • Bildbearbeitung

    Wandelt das Ziel Bilder in WebP oder AVIF um, komprimiert oder verkleinert sie, gilt das auch für Uploads aus der CLI, und der Link zeigt auf die umgewandelte Datei.

  • Foto-Metadaten

    Bild-Metadaten in den Upload-Standards des Ziels entfernt den Standort oder alle Metadaten aus Fotos, bevor sie deinen Computer verlassen.

  • Gleiche Datei, gleicher Link

    Ist Links für doppelte Dateien wiederverwenden an, bekommt derselbe Inhalt im selben Ziel den vorhandenen Link statt eines zweiten Uploads. aktar vermerkt das auf stderr.

  • Große Dateien

    Große Dateien werden in Teilen hochgeladen, ohne Grenze von 5 GB, nach einem Verbindungsabbruch erneut versucht und dort fortgesetzt, wo sie aufgehört haben. aktar streamt die Datei an Aktar und lädt sie nie komplett in den Speicher.

  • Öffentliche oder temporäre Links

    Ob der Link öffentlich ist oder ein temporärer (presigned), der auch für einen privaten Bucket funktioniert, legt wie in der App das Ziel fest.

Doppelte Links, Bildbearbeitung, {md5} und {sha256} und Uploads in Teilen kamen mit Aktar für Mac 0.10.0 und Windows 0.3.0: Neues in 0.10.0.

Fehlerbehebung

Fehlermeldungen von aktar beginnen mit aktar: und gehen an stderr. Der Exit-Code verrät dir, um welche Art Problem es sich handelt.

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

Öffne Aktar und prüf, ob Lokale Verbindungen erlauben unter Einstellungen → Integrationen aktiviert ist. Hast du dort den Port geändert, gib ihn mit --port oder AKTAR_PORT an oder führe aktar login --port erneut aus. Exit-Code 3.

Not connected to Aktar yet

Es gibt weder ein gespeichertes Token noch AKTAR_TOKEN. Führe aktar login mit dem Token aus Einstellungen → Integrationen in Aktar aus. Exit-Code 3.

The token doesn't match Aktar's anymore

Das Token wurde in Aktar neu erzeugt oder falsch eingegeben. Führe aktar login mit dem aktuellen erneut aus. Ist AKTAR_TOKEN gesetzt, hat es Vorrang vor dem gespeicherten Token, also aktualisiere es ebenfalls oder entferne es. Exit-Code 3.

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

Etwas hat auf dem Port von Aktar geantwortet, konnte aber nicht zeigen, dass es dein Token hat, deshalb wurde das Token nicht gesendet. Läuft Aktar, hat sich sein Token wahrscheinlich geändert: Führe aktar login erneut aus. Läuft Aktar nicht, öffne es. Exit-Code 3.

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

aktar 0.6.0 und neuer prüfen die App, bevor sie das Token senden, und das braucht Aktar für Mac 0.18.0 oder Aktar für Windows 0.11.0 oder neuer. Aktualisiere Aktar (es bietet Updates selbst an), dann funktioniert der Befehl wieder. Exit-Code 3.

MCP: This server doesn't upload local files

Der Agent hat aktar mcp in deinem Benutzerordner oder auf der obersten Ebene der Festplatte gestartet, und es gibt kein --root. Füge dem Befehl oder der Konfiguration des Servers --root mit dem Ordner hinzu, aus dem Dateien stammen dürfen, zum Beispiel aktar mcp --root ~/Projects, und starte den Agenten neu.

Auto-delete isn't set up for this destination

--expires braucht die Regeln für automatisches Löschen im Bucket. Richte sie einmal über Löschen nach in der Menüleiste von Aktar oder in den Einstellungen des Ziels ein, oder lade ohne --expires hoch. Exit-Code 1.

No destination named "…"

Die Meldung listet die Namen auf, die Aktar kennt. Prüf die Schreibweise, setz Namen mit Leerzeichen in Anführungszeichen (-d "Client work") oder nutze die ID aus aktar destinations. Exit-Code 2.

Ein großer Upload dauert lange

Das liegt an der Geschwindigkeit des Speicheranbieters: aktar hat kein Zeitlimit für Uploads und zeigt im Terminal den Fortschritt auf stderr. Lass Aktar laufen, bis er fertig ist. Bricht die Verbindung ab oder wird Aktar beendet (Aktar closed the connection before the request finished), lade dieselbe Datei erneut hoch: Aktar für Mac 0.10.0 und Windows 0.3.0 machen beim letzten Teil weiter.

aktar startet nicht: SyntaxError oder parseArgs

Dein Node.js ist älter als 18. Prüf es mit node --version und aktualisiere es, oder installiere aktar mit Homebrew, das sein eigenes Node.js mitbringt.

PowerShell meldet, dass die Ausführung von Skripts deaktiviert ist

Die Ausführungsrichtlinie von PowerShell blockiert das Skript, das npm für aktar installiert. Führe stattdessen aktar.cmd aus oder erlaube lokale Skripts einmalig mit Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.