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,--qryaktar qrnecesitan 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 replacenecesita aktar 0.3.0 y Aktar para Mac 0.14.0 o Aktar para Windows 0.7.0 o posterior -
--short,--no-shortyaktar shortnecesitan 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/cliCon Homebrew (macOS)
brew install getaktar/tap/aktar-cliO ejecútalo una vez sin instalar nada:
npx @getaktar/cli upload file.pngComprueba qué versión tienes:
aktar --version
0.6.0Conectar con Aktar
- 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í. - Copia el token que aparece debajo.
- Ejecuta
aktar loginy pega el token en el avisoToken:. 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.jsonDó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.
{
"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| Variable | Qué hace |
|---|---|
AKTAR_TOKEN | El token de Ajustes → Integraciones en Aktar. Se usa en lugar del guardado. |
AKTAR_PORT | El puerto de la API local de Aktar, si lo cambiaste. --port tiene prioridad sobre ella. |
NO_COLOR | Dibuja los códigos QR con caracteres simples en lugar de colores de terminal. |
XDG_CONFIG_HOME | Dó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 uploadaktar upload --clipboardaktar replaceaktar shortaktar qraktar loginaktar logoutaktar statusaktar destinationsaktar historyaktar mcpaktar skill
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ón | Valor | Descripció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. |
--short | Crear un enlace corto con el acortador del destino, aunque sus reglas se saltarían esta subida. | |
--no-short | No crear un enlace corto esta vez. | |
--qr | Muestra también un código QR de cada enlace. | |
--json | Muestra 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
aktartermina 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. --namefunciona 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 coversubeIMG_4021.jpgcomocover.jpg. Con--folder, es el nombre dentro de la carpeta.--expiresadmite 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.--qrno se puede combinar con--json, y--pngsolo funciona conaktar 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
--formaty--qrlo usan.--shortcrea uno aunque las reglas del destino se saltarían esta subida,--no-shortno crea ninguno. Si Aktar no puede crearlo, se imprime el enlace original y stderr dice por qué.
Ejemplos
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
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ón | Valor | Descripción |
|---|---|---|
--clipboard | Sube 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. |
--short | Crear un enlace corto con el acortador del destino, aunque sus reglas se saltarían esta subida. | |
--no-short | No crear un enlace corto esta vez. | |
--qr | Muestra también un código QR de cada enlace. | |
--json | Muestra 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. --namey--foldersolo funcionan con archivos.-d,-f,--expires,--qry--jsonfuncionan igual que con archivos.- Con
--json, sigue mostrando un array, con una sola entrada.
Ejemplos
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
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ón | Valor | Descripció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). |
--qr | Muestra también un código QR de cada enlace. | |
--json | Muestra 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,--namey--clipboardno 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
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
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ón | Valor | Descripción |
|---|---|---|
--json | Imprimir los detalles del enlace corto en JSON: proveedor, estado y clics. | |
--qr | Imprimir 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.aktarlo 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.
--jsonimprime los detalles del enlace corto: proveedor, estado, y clics y último clic cuando el acortador los cuenta.--qrañ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
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZaktar 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ón | Valor | Descripció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
iddeaktar history --jsonoaktar upload --json.aktarlo 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_COLORestá definida, se dibuja sin colores. --pngguarda el código QR como PNG en lugar de mostrarlo.- Para una subida con enlace corto, muestra el enlace corto.
Ejemplos
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
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ón | Valor | Descripció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í.
--tokense salta el aviso, pero otros programas pueden ver el token mientras se ejecuta el comando y acaba en el historial de tu shell, así queaktarte lo advierte. Pasarlo por una tubería o usarAKTAR_TOKENlo evita.- Un token que Aktar rechaza no se guarda, y el código de salida es 3.
Ejemplos
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 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.jsonaktar logout
Elimina el token y el puerto guardados.
Uso
aktar logoutOpciones
Sin opciones.
Conviene saber
AKTAR_TOKEN, si está definida, sigue funcionando después deaktar logout.- No desconecta a otros clientes. Para eso, regenera el token en Aktar.
Ejemplos
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
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ón | Valor | Descripción |
|---|---|---|
--json | Muestra 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
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
Muestra tus destinos con su proveedor, bucket e ID. * marca el seleccionado en Aktar.
Uso
aktar destinations [--json]Opciones
| Opción | Valor | Descripción |
|---|---|---|
--json | Muestra 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. --jsondaid,name,provider,providerName,bucket,publicBaseURLeisDefaultde cada uno.
Ejemplos
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
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ón | Valor | Descripció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. |
--json | Muestra 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. --jsonda los mismos campos queaktar upload --json, incluido elidde cada subida paraaktar qr.
Ejemplos
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
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ón | Valor | Descripció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-only | Ofrecer solo las herramientas que no cambian nada en un bucket: búsqueda, listas, enlaces temporales y miniaturas. | |
--allow-replace | Ofrecer también replace_file, que sobrescribe un archivo en un bucket. | |
--allow-delete | Ofrecer 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,~/.npmrcy 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 conaktar upload. --read-onlyofrece solo las herramientas que no cambian nada en un bucket.replace_filesobrescribe un archivo igual que lo haría un borrado, así que solo se ofrece con--allow-replace, ydelete_uploadsolo con--allow-delete(que también ofrecereplace_file).create_temporary_linkcrea enlaces de 60 minutos como máximo, salvo que--max-link-minutespermita más.upload_clipboardse 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
--logguarda 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 ~/Projectscomo 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
| Herramienta | Qué hace |
|---|---|
upload_file | Sube un archivo y devuelve su enlace, Markdown y HTML. Destino, nombre, carpeta y caducidad son opcionales. short pide un enlace corto, o ninguno. |
upload_clipboard | Sube el archivo o la imagen del portapapeles. short pide un enlace corto, o ninguno. Se omite cuando se indica --root. |
replace_file | Escribe 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_link | Crea 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_uploads | Busca en el historial de subidas. |
list_destinations | Lista los destinos y los tipos de archivo para los que se usa cada uno. |
list_bucket | Lista las carpetas y archivos de un bucket, incluidos los archivos no subidos con Aktar. |
create_temporary_link | Crea 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_thumbnail | Muestra al agente una vista previa de una subida. Necesita Aktar para Mac 0.13.0 o Windows 0.6.0. |
list_watched_folders | Lista las carpetas vigiladas y su estado. |
get_status | Comprueba la conexión con Aktar. |
delete_upload | Borra una subida de su bucket. Solo con --allow-delete. |
Ejemplos
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
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 skillOpciones
Sin opciones.
Conviene saber
- Guárdalo donde tu agente busca skills, por ejemplo
~/.claude/skills/aktar/para Claude Code.
Ejemplos
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.mdOpciones para todos los comandos
| Opción | Valor | Descripción |
|---|---|---|
-h, --help | Muestra la lista de comandos y opciones. | |
-v, --version | Muestra 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.
| Formato | Salida para photo.jpg |
|---|---|
-f url | https://files.example.com/2026/10/7f3c2a91.jpgEl enlace (por defecto). |
-f markdown | 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 | 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.jpgJSON
--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": "",
"html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
"custom": ""
},
"reused": false
}
]| Campo | Significado |
|---|---|
id | El ID de la subida en el historial de Aktar. aktar qr lo acepta. |
filename | El nombre con el que Aktar conoce el archivo: el suyo propio, o --name. |
objectKey | Dónde está el archivo en el bucket. |
url | El enlace. |
shortUrl | El enlace corto, o null si no hay. formats ya lo usan. |
destinationId | El ID del destino. |
destinationName | El nombre del destino. |
mimeType | El tipo del archivo, después de cualquier conversión de Aktar. |
size | Tamaño en bytes, tal como se guardó. |
createdAt | Cuándo se subió (ISO 8601, UTC). |
expiresAt | Cuándo lo elimina el bucket, o null si se conserva. |
replacedAt | Cuá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. |
formats | El enlace en los cuatro formatos: url, markdown, html y custom. |
reused | true 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. |
shortLinkError | Por 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ódigo | Significado |
|---|---|
0 | Todo ha funcionado. |
1 | Al 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í. |
2 | Argumentos incorrectos, un archivo que no existe o un nombre de destino que Aktar no tiene. No se subió nada. |
3 | No 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.pdfSubir 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.
share: dist/report.pdf
aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-linkCargador 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 uploadPaso 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 --qrLos 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.
$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 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.
{
"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.
aktarlo 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.
aktarenví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.