Aktar CLI

Documentación de la CLI aktar

Cada comando, opción y salida de aktar, con ejemplos listos para pegar. ¿Es tu primera vez? La presentación de la CLI se lee más rápido.

Introducción

aktar es un mando a distancia para la app de Aktar en el mismo ordenador. Le pasas archivos, él se los entrega a Aktar en 127.0.0.1, y Aktar los sube con los destinos, las claves, las plantillas de ruta y los ajustes de enlace que ya configuraste. El enlace vuelve a tu terminal.

Qué es

  • Un pequeño comando de Node.js para scripts, tareas de CI en tu propio Mac o PC con Windows y editores como Typora
  • Una forma de subir archivos y el portapapeles, mostrar códigos QR y consultar tus destinos y tu historial de subidas
  • Gratis y de código abierto (MIT), como la app

Qué no es

  • No funciona por su cuenta: sin Aktar abierto, no puede subir nada. Nunca guarda tus claves de almacenamiento
  • No es para servidores Linux ni máquinas remotas: solo se comunica con Aktar en el mismo ordenador. Ahí, usa la CLI de tu proveedor de almacenamiento

Requisitos

  • Aktar para Mac 0.18.0 o Aktar para Windows 0.11.0 o posterior, con al menos un destino. aktar 0.5.0 y anteriores funcionan con Aktar para Mac 0.4.0 o posterior
  • Node.js 18 o posterior (Homebrew lo instala por ti)
  • --name, --qr y aktar qr necesitan aktar 0.2.0 o posterior
  • Reutilizar el enlace de un archivo que ya está subido necesita aktar 0.2.0 y Aktar para Mac 0.10.0 o Aktar para Windows 0.3.0
  • aktar replace necesita aktar 0.3.0 y Aktar para Mac 0.14.0 o Aktar para Windows 0.7.0 o posterior
  • --short, --no-short y aktar short necesitan aktar 0.5.0 y Aktar para Mac 0.17.0 o Aktar para Windows 0.10.0, con un acortador configurado en el destino

Instalación

Instálalo una vez, con npm o Homebrew. Las dos opciones ponen el comando aktar en tu PATH.

Con npm (macOS y Windows)

npm install -g @getaktar/cli

Con Homebrew (macOS)

brew install getaktar/tap/aktar-cli

O ejecútalo una vez sin instalar nada:

npx @getaktar/cli upload file.png

Comprueba qué versión tienes:

aktar --version
0.6.0

Conectar con Aktar

  1. En Aktar para Mac o Windows, abre Ajustes → Integraciones y activa Permitir conexiones locales. Aktar escucha entonces solo en 127.0.0.1, en el puerto 47913 salvo que lo cambies ahí.
  2. Copia el token que aparece debajo.
  3. Ejecuta aktar login y pega el token en el aviso Token:. No se ve mientras escribes, y se comprueba con Aktar antes de guardarlo, así que una errata no se queda guardada.
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

Dónde se guarda el token

aktar login guarda el token y el puerto en ~/.config/aktar/cli.json en un Mac (o en $XDG_CONFIG_HOME/aktar/cli.json si la defines) y en %APPDATA%\aktar\cli.json en Windows. Solo tu usuario puede leerlo.

Antes de enviar el token, aktar pide a la app del puerto que demuestre que tiene el mismo token, sin enviarlo. Así, si Aktar no está abierto y otro programa escucha en su puerto, ese programa no recibe ni el token ni tus archivos. Esto necesita Aktar para Mac 0.18.0 o Aktar para Windows 0.11.0 o posterior; con un Aktar más antiguo, aktar se detiene y te pide que lo actualices.

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

aktar logout elimina ese archivo. Para desconectar a todos los clientes a la vez, haz clic en Regenerate junto al token en Aktar y vuelve a ejecutar aktar login con el nuevo.

Scripts y CI

En una máquina de compilación, sáltate aktar login y define AKTAR_TOKEN (y AKTAR_PORT si cambiaste el puerto). Tienen prioridad sobre el archivo guardado. Aktar tiene que estar abierto en esa máquina, en la misma sesión de usuario.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
VariableQué hace
AKTAR_TOKENEl token de Ajustes → Integraciones en Aktar. Se usa en lugar del guardado.
AKTAR_PORTEl puerto de la API local de Aktar, si lo cambiaste. --port tiene prioridad sobre ella.
NO_COLORDibuja los códigos QR con caracteres simples en lugar de colores de terminal.
XDG_CONFIG_HOMEDónde está la carpeta de configuración en macOS (por defecto ~/.config). En Windows se usa %APPDATA%.

Comandos

Todos los comandos se comunican con Aktar, salvo aktar qr con texto o un enlace. Sin -d, las subidas van al destino seleccionado en la barra de menús de Aktar y aparecen en su historial como cualquier otra. aktar --help muestra la misma lista. Con Aktar para Mac 0.14.0 o Aktar para Windows 0.7.0 o posterior, una subida sin -d sigue primero las reglas Usar para de los destinos, así una imagen puede ir a tu destino de capturas y una compilación a otro.

aktar upload

Sube uno o varios archivos y muestra un enlace por archivo, en orden, a medida que terminan.

Uso

aktar upload <file>... [options]

Opciones

OpciónValorDescripción
-d, --destination<name|id>Destino al que subir, por nombre o ID. Por defecto: el seleccionado en Aktar.
-f, --format<format>Qué mostrar: url (por defecto), markdown, html o custom (tu plantilla de Aktar).
--name<name>Sube un archivo con este nombre. Se conserva su extensión si el nombre no la tiene.
--folder<path>Conserva el nombre del archivo y súbelo a esta carpeta.
--expires<days>Deja que el bucket elimine el archivo tras 1, 7, 14 o 30 días. 0 lo conserva.
--shortCrear un enlace corto con el acortador del destino, aunque sus reglas se saltarían esta subida.
--no-shortNo crear un enlace corto esta vez.
--qrMuestra también un código QR de cada enlace.
--jsonMuestra un array JSON con todos los detalles de cada subida, en lugar de los enlaces.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Todos los archivos se comprueban antes de subir nada: si uno no existe, no se sube ninguno y aktar termina con el código 2.
  • Si una subida falla, las demás siguen adelante. Cada fallo se indica en stderr, y el código de salida es 1.
  • Sin --folder, la plantilla de ruta del destino pone el nombre al archivo, igual que al soltarlo en la barra de menús. Con --folder, el archivo conserva su nombre dentro de esa carpeta.
  • --name funciona con un solo archivo cada vez. Se quitan las barras, y se añade la extensión del archivo si el nombre no la tiene: --name cover sube IMG_4021.jpg como cover.jpg. Con --folder, es el nombre dentro de la carpeta.
  • --expires admite 1, 7, 14 o 30 (días), o 0 para conservar el archivo. Sin esta opción, el archivo se conserva, tenga lo que tenga Eliminar tras en Aktar. Necesita las reglas de eliminación automática de Aktar en ese destino y no se puede combinar con --folder.
  • --qr no se puede combinar con --json, y --png solo funciona con aktar qr.
  • En una terminal, el progreso aparece en stderr mientras se sube un archivo. El archivo se envía a Aktar como un flujo, así que su tamaño da igual, y no hay límite de tiempo.
  • Si el destino tiene un acortador configurado en Aktar, se imprime el enlace corto, y --format y --qr lo usan. --short crea uno aunque las reglas del destino se saltarían esta subida, --no-short no crea ninguno. Si Aktar no puede crearlo, se imprime el enlace original y stderr dice por qué.

Ejemplos

Un archivo, un enlace.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Varios archivos, en Markdown: una línea por archivo, en orden.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Subir con otro nombre, a una carpeta.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
El mismo archivo ya estaba en el bucket: el enlace se muestra como siempre, y el aviso va a stderr.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg
Con un acortador en el destino, se imprime el enlace corto.
aktar upload talk.pdf --short
https://s.example.com/k3Tq9

aktar upload --clipboard

Sube el archivo o la imagen que tengas en el portapapeles, como el propio atajo de portapapeles de Aktar.

Uso

aktar upload --clipboard [options]

Opciones

OpciónValorDescripción
--clipboardSube lo que haya en el portapapeles en lugar de archivos.
-d, --destination<name|id>Destino al que subir, por nombre o ID. Por defecto: el seleccionado en Aktar.
-f, --format<format>Qué mostrar: url (por defecto), markdown, html o custom (tu plantilla de Aktar).
--expires<days>Deja que el bucket elimine el archivo tras 1, 7, 14 o 30 días. 0 lo conserva.
--shortCrear un enlace corto con el acortador del destino, aunque sus reglas se saltarían esta subida.
--no-shortNo crear un enlace corto esta vez.
--qrMuestra también un código QR de cada enlace.
--jsonMuestra un array JSON con todos los detalles de cada subida, en lugar de los enlaces.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Pasa archivos o --clipboard, no las dos cosas.
  • --name y --folder solo funcionan con archivos. -d, -f, --expires, --qr y --json funcionan igual que con archivos.
  • Con --json, sigue mostrando un array, con una sola entrada.

Ejemplos

La captura que acabas de copiar.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
En Markdown, a un destino llamado Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
El bucket lo elimina al cabo de un día.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Escribe un archivo nuevo sobre una subida, así su clave y su enlace siguen igual. Quien tenga el enlace ve el archivo nuevo.

Uso

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

Opciones

OpciónValorDescripción
-d, --destination<name|id>Para una clave: el destino en cuyo bucket está, por nombre o ID. Por omisión: el seleccionado en Aktar.
-f, --format<format>Qué mostrar: url (por defecto), markdown, html o custom (tu plantilla de Aktar).
--qrMuestra también un código QR de cada enlace.
--jsonMuestra un array JSON con todos los detalles de cada subida, en lugar de los enlaces.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • El primer argumento es un ID de subida o un enlace de aktar history (se actualiza la entrada del historial de Aktar), o si no una clave en el bucket de -d (sin -d, el destino seleccionado en Aktar). Un enlace que no está en el historial de Aktar se rechaza: indica su clave con -d.
  • Aktar quita los metadatos del archivo y lo redimensiona según el destino, pero nunca lo convierte a otro formato, así que la extensión de la clave se mantiene. Un archivo bajo tmp/{N}d/ vuelve a empezar sus N días.
  • La clave nunca se numera y no se sube nada más. --folder, --expires, --name y --clipboard no se aplican y se rechazan.
  • Las copias antiguas pueden quedarse un rato en la caché de una CDN. La Caché corta de un destino o la limpieza de la caché de Cloudflare en Aktar se ocupan de eso.
  • Necesita Aktar para Mac 0.14.0 o Aktar para Windows 0.7.0 o posterior.

Ejemplos

Reemplaza una subida del historial por su ID; el enlace sigue igual.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Reemplaza una clave en el bucket de otro destino y la muestra en Markdown.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar short

Crea un enlace corto para una subida del historial con el acortador de su destino y lo imprime. Si la subida ya tiene uno, imprime ese.

Uso

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

Opciones

OpciónValorDescripción
--jsonImprimir los detalles del enlace corto en JSON: proveedor, estado y clics.
--qrImprimir también el código QR del enlace corto.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Pasa un ID de subida o un enlace de aktar history; su enlace corto también sirve. aktar lo busca entre las últimas 1.000 subidas.
  • El destino necesita un acortador en la sección Enlaces cortos de Aktar: Shlink, YOURLS, Kutt, Dub, Short.io o una petición personalizada. El enlace corto sale de ese acortador, así que tus enlaces y datos de clics se quedan en tu infraestructura.
  • --json imprime los detalles del enlace corto: proveedor, estado, y clics y último clic cuando el acortador los cuenta. --qr añade su código QR. No se pueden combinar.
  • Necesita Aktar para Mac 0.17.0 o Aktar para Windows 0.10.0. Las versiones anteriores responden que aún no crean enlaces cortos.

Ejemplos

Un enlace corto para una subida del historial.
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZ

aktar qr

Muestra en la terminal un código QR de un enlace o de cualquier texto, para abrirlo en el móvil. Con el ID de una subida, muestra el enlace de esa subida y su código QR.

Uso

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

Opciones

OpciónValorDescripción
--png<file>Guarda el código QR como archivo PNG en lugar de mostrarlo.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Pasa exactamente un argumento, y pon entre comillas el texto con espacios.
  • El ID de una subida es el id de aktar history --json o aktar upload --json. aktar lo busca entre las últimas 1.000 subidas del historial de Aktar; para texto o un enlace, no necesita Aktar en absoluto.
  • En una terminal, el código se dibuja en negro sobre blanco, sea cual sea su tema. Cuando la salida no es una terminal, o NO_COLOR está definida, se dibuja sin colores.
  • --png guarda el código QR como PNG en lugar de mostrarlo.
  • Para una subida con enlace corto, muestra el enlace corto.

Ejemplos

Un código QR para cualquier enlace. La cámara del móvil lo abre.
aktar qr https://files.example.com/2026/10/demo.mp4
Una subida del historial, guardada como PNG.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Comprueba un token con Aktar y lo guarda, para que los demás comandos puedan conectarse.

Uso

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

Opciones

OpciónValorDescripción
--token<token>El token, en lugar del aviso.
--port<port>El puerto de Aktar, que se guarda junto con el token. Por defecto 47913.

Conviene saber

  • En una terminal, te pide el token y oculta lo que escribes. Cuando la entrada llega por una tubería, lee el token de ahí.
  • --token se salta el aviso, pero otros programas pueden ver el token mientras se ejecuta el comando y acaba en el historial de tu shell, así que aktar te lo advierte. Pasarlo por una tubería o usar AKTAR_TOKEN lo evita.
  • Un token que Aktar rechaza no se guarda, y el código de salida es 3.

Ejemplos

El token no se ve mientras lo escribes.
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
En un Mac, con el token copiado de Aktar.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Sin aviso, con un puerto cambiado. aktar advierte de que el token era visible.
aktar login --token "$AKTAR_SECRET" --port 47920
aktar: warning: a token on the command line can be seen by other programs (ps) and stays in your shell history. Next time, run aktar login without --token and paste it, or pipe it in.
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

aktar logout

Elimina el token y el puerto guardados.

Uso

aktar logout

Opciones

Sin opciones.

Conviene saber

  • AKTAR_TOKEN, si está definida, sigue funcionando después de aktar logout.
  • No desconecta a otros clientes. Para eso, regenera el token en Aktar.

Ejemplos

Olvidar el token.
aktar logout
Logged out.
Después, los comandos te piden que vuelvas a iniciar sesión (código de salida 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Muestra a qué Aktar estás conectado, en qué puerto, el destino seleccionado en Aktar y dónde está el archivo de configuración.

Uso

aktar status [--json]

Opciones

OpciónValorDescripción
--jsonMuestra JSON en lugar de texto.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Una forma rápida de comprobar la conexión en un script: termina con el código 3 si no se puede contactar con Aktar o el token no es correcto.

Ejemplos

Conectado, con el destino seleccionado.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
Lo mismo en JSON, para scripts.
aktar status --json
{
  "app": "Aktar",
  "version": "0.10.0",
  "build": "28",
  "apiVersion": 1,
  "defaultDestinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
  "outputFormat": "url",
  "port": 47913
}

aktar destinations

Muestra tus destinos con su proveedor, bucket e ID. * marca el seleccionado en Aktar.

Uso

aktar destinations [--json]

Opciones

OpciónValorDescripción
--jsonMuestra JSON en lugar de texto.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Usa un nombre o un ID con -d. Los nombres no distinguen entre mayúsculas y minúsculas; un ID siempre funciona, incluso después de cambiar el nombre.
  • --json da id, name, provider, providerName, bucket, publicBaseURL e isDefault de cada uno.

Ejemplos

El destino seleccionado está marcado con *.
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
El nombre del destino seleccionado, con jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Muestra las subidas recientes, de la más nueva a la más antigua: fecha, nombre de archivo y enlace. Las palabras que pongas después de history buscan en el historial.

Uso

aktar history [search] [options]

Opciones

OpciónValorDescripción
-n, --limit<n>Cuántas subidas mostrar. Por defecto 20.
-d, --destination<name|id>Solo las subidas a este destino, por nombre o ID.
--jsonMuestra JSON en lugar de texto.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Muestra 20 subidas salvo que pases -n.
  • --json da los mismos campos que aktar upload --json, incluido el id de cada subida para aktar qr.

Ejemplos

Las tres últimas subidas.
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
Buscar facturas en un destino.
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
El enlace de la última build, con 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

Ejecuta un servidor Model Context Protocol (MCP), para que agentes de IA como Claude, Cursor, VS Code y Codex puedan subir archivos con Aktar, encontrar subidas anteriores y crear enlaces. Lo añades una vez a tu agente; el agente lo inicia cuando lo necesita.

Uso

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

Opciones

OpciónValorDescripción
--root<folder>Subir solo archivos de esta carpeta. Repítelo para más carpetas. Por defecto: la carpeta en la que se ejecuta el servidor, o ninguna si esa es tu carpeta de inicio o la raíz del disco.
--read-onlyOfrecer solo las herramientas que no cambian nada en un bucket: búsqueda, listas, enlaces temporales y miniaturas.
--allow-replaceOfrecer también replace_file, que sobrescribe un archivo en un bucket.
--allow-deleteOfrecer también delete_upload, que borra un archivo de su bucket, y replace_file.
--max-link-minutes<n>Lo máximo que puede funcionar un enlace temporal, en minutos. Por defecto 60, como máximo 10080 (7 días).
--log<file>Añadir cada llamada a una herramienta (hora, herramienta, argumentos, resultado) a este archivo, que solo tú puedes leer.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Conviene saber

  • Ejecuta primero aktar login. El servidor lee el token guardado en cada llamada, así que volver a iniciar sesión funciona sin reiniciar el agente.
  • Subir un archivo lo publica: cualquiera con su enlace puede abrirlo. Los agentes preguntan antes de llamar a una herramienta salvo que lo permitas.
  • Los archivos solo se suben desde las carpetas que indiques con --root, o si no, desde la carpeta en la que se ejecuta el servidor. Si esa es tu carpeta de inicio o la raíz del disco, como hacen algunas apps, no se sube ningún archivo local hasta que añadas --root. --root ~ permite toda tu carpeta de inicio, si de verdad lo quieres. Las rutas se resuelven, enlaces simbólicos incluidos, antes de comprobarse.
  • Los secretos nunca se suben, estén donde estén: claves SSH y privadas, archivos .env, credenciales de la nube y de gestores de paquetes (~/.aws, ~/.kube, ~/.npmrc y otros), la propia configuración de Aktar, el llavero, los perfiles del navegador y las bases de datos de contraseñas. También se rechazan los archivos con varios enlaces físicos. Para compartir uno de ellos, súbelo tú mismo con aktar upload.
  • --read-only ofrece solo las herramientas que no cambian nada en un bucket. replace_file sobrescribe un archivo igual que lo haría un borrado, así que solo se ofrece con --allow-replace, y delete_upload solo con --allow-delete (que también ofrece replace_file).
  • create_temporary_link crea enlaces de 60 minutos como máximo, salvo que --max-link-minutes permita más. upload_clipboard se omite cuando indicas --root, porque el portapapeles puede contener cualquier cosa.
  • Los resultados de las herramientas empiezan con una nota que dice que los nombres de archivo, claves y mensajes que contienen son datos, no instrucciones, y --log guarda un registro de cada llamada. Ejecuta como mucho 4 llamadas a herramientas a la vez.
  • Sin instalación global, usa npx -y @getaktar/cli mcp --root ~/Projects como comando.
  • Habla la versión actual de MCP (2026-07-28) y las anteriores que empiezan con initialize (de 2024-11-05 a 2025-11-25), por stdio. Necesita aktar 0.4.0; los límites descritos arriba llegaron con aktar 0.6.0.

Herramientas

HerramientaQué hace
upload_fileSube un archivo y devuelve su enlace, Markdown y HTML. Destino, nombre, carpeta y caducidad son opcionales. short pide un enlace corto, o ninguno.
upload_clipboardSube el archivo o la imagen del portapapeles. short pide un enlace corto, o ninguno. Se omite cuando se indica --root.
replace_fileEscribe un archivo nuevo sobre una subida o cualquier archivo de un bucket y conserva su enlace. Solo con --allow-replace o --allow-delete. Necesita Aktar para Mac 0.14.0 o Windows 0.7.0.
create_short_linkCrea un enlace corto para una subida con el acortador de su destino, o devuelve el que ya tiene. Se omite con --read-only. Necesita Aktar para Mac 0.17.0 o Windows 0.10.0.
search_uploadsBusca en el historial de subidas.
list_destinationsLista los destinos y los tipos de archivo para los que se usa cada uno.
list_bucketLista las carpetas y archivos de un bucket, incluidos los archivos no subidos con Aktar.
create_temporary_linkCrea un enlace que deja de funcionar pasado un tiempo (una URL prefirmada). Hasta entonces, cualquiera que lo tenga puede descargar el archivo, incluso de un bucket privado. Como máximo 60 minutos, salvo que --max-link-minutes permita más.
get_thumbnailMuestra al agente una vista previa de una subida. Necesita Aktar para Mac 0.13.0 o Windows 0.6.0.
list_watched_foldersLista las carpetas vigiladas y su estado.
get_statusComprueba la conexión con Aktar.
delete_uploadBorra una subida de su bucket. Solo con --allow-delete.

Ejemplos

Añade Aktar a Claude Code o Codex.
claude mcp add aktar -- aktar mcp --root ~/Projects
codex mcp add aktar -- aktar mcp --root ~/Projects
Deja que el agente suba desde dos carpetas y reemplace archivos.
claude mcp add aktar -- aktar mcp --root ~/Projects --root ~/Desktop --allow-replace
Guarda un registro de lo que hizo el agente.
claude mcp add aktar -- aktar mcp --root ~/Projects --log ~/aktar-mcp.log

aktar skill

Imprime un skill de agente (SKILL.md) que enseña a los agentes a usar el comando aktar con --json: qué ejecutar, cómo leer el resultado y subir solo lo que pediste compartir. Para agentes que usan skills pero no MCP.

Uso

aktar skill

Opciones

Sin opciones.

Conviene saber

  • Guárdalo donde tu agente busca skills, por ejemplo ~/.claude/skills/aktar/ para Claude Code.

Ejemplos

Instala el skill para Claude Code.
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.md

Opciones para todos los comandos

OpciónValorDescripción
-h, --helpMuestra la lista de comandos y opciones.
-v, --versionMuestra la versión de aktar.
--port<port>El puerto de la API local de Aktar, solo para este comando. Tiene prioridad sobre AKTAR_PORT y el puerto guardado.

Salida

Formatos

-f elige qué se muestra para cada subida. Sin esta opción, aktar muestra la URL simple, copie lo que copie la barra de menús de Aktar. Markdown y HTML insertan las imágenes y enlazan todo lo demás, igual que Aktar.

FormatoSalida para photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgEl enlace (por defecto).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Una imagen en Markdown, o un enlace en Markdown para otros archivos.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Una etiqueta <img>, o un enlace <a> para otros archivos.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)Tu plantilla de los ajustes de Aktar, con {url}, {filename} y las demás variables rellenadas.

stdout y stderr

La salida estándar solo recibe los enlaces, uno por línea, en el orden de los archivos (y los códigos QR, con --qr). Todo lo demás va a la salida de error: el progreso, los errores y avisos como aktar: photo.jpg: already uploaded, reused the existing link. Así, url=$(aktar upload file) y aktar upload *.png > links.txt siempre reciben enlaces limpios.

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

JSON

--json muestra un array con una entrada por archivo subido, cuando terminan todos. Las subidas que fallan no aparecen (se indican en stderr), así que comprueba también el código de salida.

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
  }
]
CampoSignificado
idEl ID de la subida en el historial de Aktar. aktar qr lo acepta.
filenameEl nombre con el que Aktar conoce el archivo: el suyo propio, o --name.
objectKeyDónde está el archivo en el bucket.
urlEl enlace.
shortUrlEl enlace corto, o null si no hay. formats ya lo usan.
destinationIdEl ID del destino.
destinationNameEl nombre del destino.
mimeTypeEl tipo del archivo, después de cualquier conversión de Aktar.
sizeTamaño en bytes, tal como se guardó.
createdAtCuándo se subió (ISO 8601, UTC).
expiresAtCuándo lo elimina el bucket, o null si se conserva.
replacedAtCuándo se reemplazó el archivo por última vez (ISO 8601, UTC). No aparece hasta que se reemplaza, ni en versiones de Aktar anteriores a Mac 0.14.0 y Windows 0.7.0.
formatsEl enlace en los cuatro formatos: url, markdown, html y custom.
reusedtrue cuando no se subió nada porque el mismo archivo ya estaba ahí. No aparece con versiones de Aktar anteriores a la 0.10.0 para Mac y la 0.3.0 para Windows.
shortLinkErrorPor qué Aktar no pudo crear el enlace corto; url es entonces el enlace original. Se omite si todo fue bien.

Códigos de salida

CódigoSignificado
0Todo ha funcionado.
1Al menos una subida o solicitud falló; las demás se completaron. Los errores del propio Aktar, como no tener configurada la eliminación automática, también acaban aquí.
2Argumentos incorrectos, un archivo que no existe o un nombre de destino que Aktar no tiene. No se subió nada.
3No has iniciado sesión, Aktar no está abierto, su API local está desactivada, el token no es correcto o la app del puerto no pudo demostrar que es Aktar (o es demasiado antigua para hacerlo).

Recetas

Copia, ajusta los nombres de archivo y listo. Cada receta usa solo lo que se documenta arriba.

Guardar el enlace en una variable

Solo el enlace llega a la salida estándar, así que la sustitución de comandos recibe exactamente la URL. || exit 1 detiene el script si la subida falló.

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

Subir una build y publicar el enlace

Comprime una build en ZIP, súbela a un destino llamado Builds con el hash corto del commit como nombre y publica el enlace en cualquier webhook que acepte JSON (un canal de chat, un gestor de incidencias, tu propio endpoint). set -e se detiene antes de publicar si la subida falla.

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

Un objetivo de Makefile

make share sube el informe con la fecha de hoy y guarda el enlace en .last-link. En un Makefile, $$ pasa un $ a la shell, y la línea del comando empieza con un tabulador.

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

Cargador de imágenes de Typora

En Typora, abre Settings > Image, elige Custom Command como cargador de imágenes e introduce la ruta completa de aktar (la que muestra which aktar) seguida de upload. Typora pasa las rutas de las imágenes y lee un enlace por línea.

/opt/homebrew/bin/aktar upload

Paso a paso, con el ajuste When Insert…: Sube las imágenes de Typora a S3.

Subir desde Finder o Atajos

En un Mac, añade una acción Run Shell Script a un atajo, o a una Acción rápida de Automator que reciba archivos en Finder, y configúrala para pasar la entrada as arguments. Atajos y Automator no cargan el PATH de tu shell, de ahí la primera línea. Selecciona archivos, ejecútala y tendrás los enlaces en el portapapeles.

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

Sube archivos, no carpetas. Varios archivos dan varios enlaces, uno por línea.

Archivos temporales

Para un log, una grabación de pantalla o cualquier cosa que no deba quedarse, deja que el bucket la elimine. Antes, el destino necesita las reglas de eliminación automática de Aktar: configúralas una vez desde Eliminar tras en la barra de menús de Aktar o en los ajustes del destino.

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

Los archivos con caducidad van a tmp/1d/, tmp/7d/ y similares en el bucket, y el bucket los elimina aunque Aktar no esté abierto.

Abrir un enlace en el móvil

--qr muestra un código QR debajo del enlace; apunta la cámara del móvil a la terminal. Para volver a mostrarlo más tarde, pasa el ID de una subida a aktar qr, aquí la última subida que coincide con "demo".

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

Windows PowerShell

Lo mismo funciona en PowerShell. $LASTEXITCODE guarda el código de salida, y ConvertFrom-Json lee --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 en Claude Desktop, Cursor o VS Code

Las apps que aceptan una configuración JSON para servidores MCP (Claude Desktop, Cursor, Windsurf y otras) necesitan esta entrada. VS Code usa la misma entrada bajo servers en .vscode/mcp.json. Luego pide a tu agente que suba un archivo, encuentre las capturas de la semana pasada o cree un enlace temporal.

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

Si la app no encuentra aktar, usa su ruta completa (which aktar), o npx con ["-y", "@getaktar/cli", "mcp", "--root", "/Users/you/Projects"] como argumentos. Pon después de --root la carpeta desde la que tu agente puede subir archivos (en Windows, algo como C:\\Users\\you\\Projects).

Lo que Aktar hace por ti

La CLI solo pasa los archivos; Aktar hace el resto, con los ajustes de cada destino. Así que todo lo que configuras en la app se aplica también a aktar upload, sin opciones extra, y el enlace que recibes es el del archivo tal como se guardó.

  • Plantillas de ruta

    La ruta del objeto del destino pone el nombre al archivo, con {year}, {uuid}, {filename} y las demás variables. {md5} y {sha256} nombran los archivos según su contenido.

  • Procesamiento de imágenes

    Si el destino convierte las imágenes a WebP o AVIF, las comprime o las redimensiona, las subidas desde la CLI reciben el mismo trato, y el enlace apunta al archivo convertido.

  • Metadatos de las fotos

    Metadatos de imagen, en los valores de subida del destino, quita la ubicación de las fotos, o todos los metadatos, antes de que salgan de tu ordenador.

  • Mismo archivo, mismo enlace

    Con Reutilizar enlaces de archivos duplicados activado, el mismo contenido en el mismo destino recibe el enlace existente en lugar de subirse otra vez. aktar lo indica en stderr.

  • Archivos grandes

    Los archivos grandes se suben por partes, sin límite de 5 GB, se reintentan si se corta la conexión y se reanudan donde se quedaron. aktar envía el archivo a Aktar como un flujo, así que nunca lo carga en memoria.

  • Enlaces públicos o temporales

    Que el enlace sea público o temporal (prefirmado), que también funciona con un bucket privado, lo decide el destino, igual que en la app.

Los enlaces de duplicados, el procesamiento de imágenes, {md5} y {sha256} y las subidas por partes llegaron con Aktar para Mac 0.10.0 y Windows 0.3.0: novedades de la 0.10.0.

Solución de problemas

Los mensajes de error de aktar empiezan por aktar: y van a stderr. El código de salida te dice de qué tipo de problema se trata.

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

Abre Aktar y comprueba que Permitir conexiones locales está activado en Ajustes → Integraciones. Si cambiaste el puerto ahí, pásalo con --port o AKTAR_PORT, o vuelve a ejecutar aktar login --port. Código de salida 3.

Not connected to Aktar yet

No hay ningún token guardado ni AKTAR_TOKEN. Ejecuta aktar login con el token de Ajustes → Integraciones en Aktar. Código de salida 3.

The token doesn't match Aktar's anymore

El token se regeneró en Aktar, o tiene una errata. Vuelve a ejecutar aktar login con el actual. Si AKTAR_TOKEN está definida, tiene prioridad sobre el token guardado, así que actualízala o elimínala también. Código de salida 3.

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

Algo respondió en el puerto de Aktar pero no pudo demostrar que tiene tu token, así que el token no se envió. Si Aktar está abierto, probablemente su token ha cambiado: vuelve a ejecutar aktar login. Si Aktar no está abierto, ábrelo. Código de salida 3.

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

aktar 0.6.0 y posteriores comprueban la app antes de enviar el token, lo que necesita Aktar para Mac 0.18.0 o Aktar para Windows 0.11.0 o posterior. Actualiza Aktar (él mismo ofrece las actualizaciones) y el comando vuelve a funcionar. Código de salida 3.

MCP: This server doesn't upload local files

El agente inició aktar mcp en tu carpeta de inicio o en la raíz del disco, y no hay --root. Añade al comando o a la configuración del servidor --root con la carpeta de la que pueden venir los archivos, por ejemplo aktar mcp --root ~/Projects, y reinicia el agente.

Auto-delete isn't set up for this destination

--expires necesita las reglas de eliminación automática del bucket. Configúralas una vez desde Eliminar tras en la barra de menús de Aktar o en los ajustes del destino, o sube sin --expires. Código de salida 1.

No destination named "…"

El mensaje muestra los nombres que tiene Aktar. Revisa cómo está escrito, pon entre comillas los nombres con espacios (-d "Client work") o usa el ID de aktar destinations. Código de salida 2.

Una subida grande tarda mucho

Es la velocidad del proveedor de almacenamiento: aktar no tiene límite de tiempo para las subidas y muestra el progreso en stderr en una terminal. Mantén Aktar abierto hasta que termine. Si se corta la conexión o Aktar se cierra (Aktar closed the connection before the request finished), vuelve a subir el mismo archivo: Aktar para Mac 0.10.0 y Windows 0.3.0 continúan desde la última parte.

aktar no arranca: SyntaxError o parseArgs

Tu Node.js es anterior a la 18. Compruébalo con node --version y actualízalo, o instala aktar con Homebrew, que trae su propio Node.js.

PowerShell dice que la ejecución de scripts está deshabilitada

La directiva de ejecución de PowerShell bloquea el script que npm instala para aktar. Ejecuta aktar.cmd en su lugar, o permite los scripts locales una vez con Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.