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.4.0 oder neuer oder Aktar für Windows, mit mindestens einem Ziel
  • 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

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.2.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.

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.

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.
--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.

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

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.
--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 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.

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 das Token landet dann in deinem Shell-Verlauf. 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 login --token "$AKTAR_SECRET" --port 47920
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

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",
    "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.
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.
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.

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 oder das Token ist falsch.

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

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.

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.