Ü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,--qrundaktar qrbrauchen 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 replacebraucht aktar 0.3.0 und Aktar für Mac 0.14.0 oder Aktar für Windows 0.7.0 oder neuer -
--short,--no-shortundaktar shortbrauchen 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/cliMit Homebrew (macOS)
brew install getaktar/tap/aktar-cliOder einmal ausführen, ohne etwas zu installieren:
npx @getaktar/cli upload file.pngPrüfen, welche Version du hast:
aktar --version
0.6.0Mit Aktar verbinden
- Ö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. - Kopiere das Token, das darunter angezeigt wird.
- Führe
aktar loginaus und füge das Token bei der AbfrageToken: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.jsonWo 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.
{
"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| Variable | Wofür sie da ist |
|---|---|
AKTAR_TOKEN | Das Token aus Einstellungen → Integrationen in Aktar. Wird statt des gespeicherten verwendet. |
AKTAR_PORT | Der Port der lokalen API von Aktar, falls du ihn geändert hast. --port hat Vorrang. |
NO_COLOR | Zeichnet QR-Codes mit einfachen Zeichen statt mit Terminalfarben. |
XDG_CONFIG_HOME | Wo 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 uploadaktar upload --clipboardaktar replaceaktar shortaktar qraktar loginaktar logoutaktar statusaktar destinationsaktar historyaktar mcpaktar skill
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
| Flag | Wert | Beschreibung |
|---|---|---|
-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. |
--short | Einen Kurzlink mit dem Linkkürzer des Ziels erstellen, auch wenn seine Regeln diesen Upload auslassen würden. | |
--no-short | Diesmal keinen Kurzlink erstellen. | |
--qr | Zusätzlich einen QR-Code für jeden Link ausgeben. | |
--json | Statt 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
aktarbeendet 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
--folderbenennt die Pfadvorlage des Ziels die Datei, genau wie beim Ablegen auf der Menüleiste. Mit--folderbehält die Datei in diesem Ordner ihren Namen. --namefunktioniert mit jeweils einer Datei. Schrägstriche werden entfernt, und die Dateiendung wird ergänzt, wenn der Name keine hat:--name coverlädtIMG_4021.jpgalscover.jpghoch. Mit--folderist es der Name im Ordner.--expiresnimmt 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--folderkombinieren.--qrlässt sich nicht mit--jsonkombinieren, und--pngfunktioniert nur mitaktar 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
--formatund--qrverwenden ihn.--shorterstellt einen, auch wenn die Regeln des Ziels diesen Upload auslassen würden,--no-shorterstellt keinen. Kann Aktar ihn nicht erstellen, wird der ursprüngliche Link ausgegeben, und stderr nennt den Grund.
Beispiele
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
Lädt die Datei oder das Bild aus der Zwischenablage hoch, wie das Zwischenablage-Kürzel von Aktar.
Verwendung
aktar upload --clipboard [options]Optionen
| Flag | Wert | Beschreibung |
|---|---|---|
--clipboard | Den 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. |
--short | Einen Kurzlink mit dem Linkkürzer des Ziels erstellen, auch wenn seine Regeln diesen Upload auslassen würden. | |
--no-short | Diesmal keinen Kurzlink erstellen. | |
--qr | Zusätzlich einen QR-Code für jeden Link ausgeben. | |
--json | Statt 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
--clipboardan, nicht beides. --nameund--folderfunktionieren nur mit Dateien.-d,-f,--expires,--qrund--jsonfunktionieren wie bei Dateien.- Mit
--jsonkommt trotzdem ein Array heraus, mit einem Eintrag.
Beispiele
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
-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). |
--qr | Zusätzlich einen QR-Code für jeden Link ausgeben. | |
--json | Statt 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-ddas in Aktar ausgewählte Ziel). Ein Link, der nicht im Verlauf von Aktar steht, wird abgelehnt: gib stattdessen seinen Schlüssel mit-dan. - 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,--nameund--clipboardgelten 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
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
--json | Die Details des Kurzlinks als JSON ausgeben: Anbieter, Status und Klicks. | |
--qr | Zusä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 historyan; sein Kurzlink geht auch.aktarsucht 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.
--jsongibt die Details des Kurzlinks aus: Anbieter, Status sowie Klicks und letzten Klick, wenn der Kürzer sie zählt.--qrfü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
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZaktar 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
| Flag | Wert | Beschreibung |
|---|---|---|
--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
idausaktar history --jsonoderaktar upload --json.aktarsucht 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_COLORgesetzt, wird er ohne Farben gezeichnet. --pngspeichert den QR-Code als PNG, statt ihn auszugeben.- Bei einem Upload mit Kurzlink zeigt er den Kurzlink.
Beispiele
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
--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 warntaktardavor. Eine Pipe oderAKTAR_TOKENvermeiden das.- Ein Token, das Aktar ablehnt, wird nicht gespeichert, und der Exit-Code ist 3.
Beispiele
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 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.jsonaktar logout
Löscht das gespeicherte Token und den Port.
Verwendung
aktar logoutOptionen
Keine Optionen.
Gut zu wissen
AKTAR_TOKENfunktioniert, falls gesetzt, auch nachaktar logoutweiter.- Andere Clients werden dadurch nicht getrennt. Dafür erzeugst du das Token in Aktar neu.
Beispiele
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
--json | JSON 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
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
Listet deine Ziele mit Anbieter, Bucket und ID auf. * markiert das in Aktar ausgewählte.
Verwendung
aktar destinations [--json]Optionen
| Flag | Wert | Beschreibung |
|---|---|---|
--json | JSON 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
-deinen Namen oder eine ID. Bei Namen spielt Groß- und Kleinschreibung keine Rolle, eine ID funktioniert immer, auch nach dem Umbenennen. --jsonliefert für jedes Zielid,name,provider,providerName,bucket,publicBaseURLundisDefault.
Beispiele
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
-n, --limit | <n> | Wie viele Uploads gelistet werden. Standard 20. |
-d, --destination | <name|id> | Nur Uploads zu diesem Ziel, per Name oder ID. |
--json | JSON 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
-nangibst. --jsonliefert dieselben Felder wieaktar upload --json, darunter dieidjedes Uploads füraktar qr.
Beispiele
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
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
| Flag | Wert | Beschreibung |
|---|---|---|
--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-only | Nur die Tools anbieten, die in einem Bucket nichts verändern: Suche, Listen, temporäre Links und Vorschaubilder. | |
--allow-replace | Zusätzlich replace_file anbieten, das eine Datei in einem Bucket überschreibt. | |
--allow-delete | Zusä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 loginaus. 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
--rootangibst, 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--roothinzufü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,~/.npmrcund 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 mitaktar uploadhoch. --read-onlybietet 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-replaceangeboten,delete_uploadnur mit--allow-delete(das auchreplace_fileanbietet).create_temporary_linkerstellt Links, die höchstens 60 Minuten gelten, sofern--max-link-minutesnicht mehr erlaubt.upload_clipboardfehlt, wenn du--rootangibst, da die Zwischenablage alles enthalten kann.- Tool-Ergebnisse beginnen mit dem Hinweis, dass Dateinamen, Keys und Meldungen darin Daten sind, keine Anweisungen, und
--logprotokolliert jeden Aufruf. Es laufen höchstens 4 Tool-Aufrufe gleichzeitig. - Ohne globale Installation nimm
npx -y @getaktar/cli mcp --root ~/Projectsals Befehl. - Er spricht die aktuelle MCP-Version (2026-07-28) und die früheren, die mit
initializebeginnen (2024-11-05 bis 2025-11-25), über stdio. Braucht aktar 0.4.0; die Grenzen oben kamen mit aktar 0.6.0.
Tools
| Tool | Was es tut |
|---|---|
upload_file | Lä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_clipboard | Lädt die Datei oder das Bild aus der Zwischenablage hoch. short verlangt einen Kurzlink oder keinen. Fehlt, wenn --root angegeben ist. |
replace_file | Schreibt 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_link | Erstellt 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_uploads | Durchsucht den Upload-Verlauf. |
list_destinations | Listet Ziele und die Dateitypen auf, für die jedes genutzt wird. |
list_bucket | Listet die Ordner und Dateien eines Buckets auf, auch Dateien, die nicht mit Aktar hochgeladen wurden. |
create_temporary_link | Erstellt 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_thumbnail | Zeigt dem Agenten eine Vorschau eines Uploads. Braucht Aktar für Mac 0.13.0 oder Windows 0.6.0. |
list_watched_folders | Listet überwachte Ordner und ihren Status auf. |
get_status | Prüft die Verbindung zu Aktar. |
delete_upload | Löscht einen Upload aus seinem Bucket. Nur mit --allow-delete. |
Beispiele
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
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 skillOptionen
Keine Optionen.
Gut zu wissen
- Speichere ihn dort, wo dein Agent nach Skills sucht, zum Beispiel
~/.claude/skills/aktar/für Claude Code.
Beispiele
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.mdOptionen für jeden Befehl
| Flag | Wert | Beschreibung |
|---|---|---|
-h, --help | Die Liste der Befehle und Optionen anzeigen. | |
-v, --version | Die 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.
| Format | Ausgabe für photo.jpg |
|---|---|
-f url | https://files.example.com/2026/10/7f3c2a91.jpgDer Link (Standard). |
-f markdown | 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 | 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.jpgJSON
--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": "",
"html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
"custom": ""
},
"reused": false
}
]| Feld | Bedeutung |
|---|---|
id | Die ID des Uploads im Verlauf von Aktar. aktar qr nimmt sie an. |
filename | Der Dateiname, unter dem Aktar die Datei kennt: ihr eigener oder --name. |
objectKey | Wo die Datei im Bucket liegt. |
url | Der Link. |
shortUrl | Der Kurzlink oder null, wenn es keinen gibt. formats verwenden ihn schon. |
destinationId | Die ID des Ziels. |
destinationName | Der Name des Ziels. |
mimeType | Der Dateityp, nach einer eventuellen Umwandlung durch Aktar. |
size | Größe in Bytes, wie gespeichert. |
createdAt | Wann die Datei hochgeladen wurde (ISO 8601, UTC). |
expiresAt | Wann der Bucket sie löscht, oder null, wenn sie bleibt. |
replacedAt | Wann 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. |
formats | Der Link in allen vier Formaten: url, markdown, html und custom. |
reused | true, wenn nichts hochgeladen wurde, weil dieselbe Datei schon da war. Fehlt bei Aktar-Versionen vor Mac 0.10.0 und Windows 0.3.0. |
shortLinkError | Warum Aktar den Kurzlink nicht erstellen konnte; url ist dann der ursprüngliche Link. Fehlt, wenn alles geklappt hat. |
Exit-Codes
| Code | Bedeutung |
|---|---|
0 | Alles hat geklappt. |
1 | Mindestens 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. |
2 | Falsche Argumente, eine Datei, die nicht existiert, oder ein Zielname, den Aktar nicht kennt. Nichts wurde hochgeladen. |
3 | Nicht 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.pdfEinen 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.
share: dist/report.pdf
aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-linkBild-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 uploadSchritt 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 --qrAblaufende 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.
$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 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.
{
"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.
aktarvermerkt 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.
aktarstreamt 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.