Aktar CLI

Documentação do aktar CLI

Cada comando, opção e saída do aktar, com exemplos prontos para colar. Primeira vez aqui? A visão geral do CLI é uma leitura mais rápida.

Visão geral

O aktar é um controle remoto do app Aktar no mesmo computador. Você passa os arquivos para ele, ele os entrega ao Aktar em 127.0.0.1, e o Aktar faz o envio com os destinos, chaves, modelos de caminho e ajustes de link que você já configurou. O link volta para o seu terminal.

O que ele é

  • Um pequeno comando Node.js para scripts, jobs de CI no seu próprio Mac ou máquina Windows e editores como o Typora
  • Uma forma de enviar arquivos e a área de transferência, mostrar códigos QR e consultar seus destinos e o histórico de envios
  • Gratuito e open source (MIT), como o app

O que ele não é

  • Não é independente: sem o Aktar aberto, ele não consegue enviar nada. Ele nunca guarda suas chaves de armazenamento
  • Não é para servidores Linux nem máquinas remotas: ele só conversa com o Aktar no mesmo computador. Nesses casos, use o CLI do seu provedor de armazenamento

Requisitos

  • Aktar para Mac 0.18.0 ou Aktar para Windows 0.11.0 ou posterior, com pelo menos um destino. O aktar 0.5.0 e anteriores funcionam com o Aktar para Mac 0.4.0 ou posterior
  • Node.js 18 ou posterior (o Homebrew instala para você)
  • --name, --qr e aktar qr precisam do aktar 0.2.0 ou posterior
  • Reutilizar o link de um arquivo já enviado exige o aktar 0.2.0 e o Aktar para Mac 0.10.0 ou o Aktar para Windows 0.3.0
  • aktar replace precisa do aktar 0.3.0 e do Aktar para Mac 0.14.0 ou do Aktar para Windows 0.7.0 ou posterior
  • --short, --no-short e aktar short precisam do aktar 0.5.0 e do Aktar para Mac 0.17.0 ou Aktar para Windows 0.10.0, com um encurtador configurado no destino

Instalação

Instale uma vez, com npm ou Homebrew. Os dois colocam o comando aktar no seu PATH.

Com npm (macOS e Windows)

npm install -g @getaktar/cli

Com Homebrew (macOS)

brew install getaktar/tap/aktar-cli

Ou execute uma vez sem instalar nada:

npx @getaktar/cli upload file.png

Veja qual versão você tem:

aktar --version
0.6.0

Conectar ao Aktar

  1. No Aktar para Mac ou Windows, abra Ajustes > Integrações e ative Permitir conexões locais. O Aktar passa a escutar apenas em 127.0.0.1, na porta 47913, a menos que você a mude ali.
  2. Copie o token que aparece logo abaixo.
  3. Execute aktar login e cole o token no prompt Token:. Ele fica oculto enquanto você digita e é verificado com o Aktar antes de ser salvo, então um erro de digitação não fica guardado.
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

Onde o token fica guardado

O aktar login salva o token e a porta em ~/.config/aktar/cli.json no Mac (ou em $XDG_CONFIG_HOME/aktar/cli.json, se você a definiu) e em %APPDATA%\aktar\cli.json no Windows. Só o seu usuário consegue ler esse arquivo.

Antes de enviar o token, o aktar pede ao app na porta que prove que tem o mesmo token, sem enviá-lo. Assim, se o Aktar não estiver aberto e outro programa estiver escutando na porta dele, esse programa não recebe nem o token nem os seus arquivos. Isso precisa do Aktar para Mac 0.18.0 ou do Aktar para Windows 0.11.0 ou posterior; com um Aktar mais antigo, o aktar para e pede que você atualize.

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

O aktar logout apaga esse arquivo. Para desconectar todos os clientes de uma vez, clique em Regenerate ao lado do token no Aktar; depois execute aktar login de novo com o novo token.

Scripts e CI

Em uma máquina de build, pule o aktar login e defina AKTAR_TOKEN (e AKTAR_PORT, se você mudou a porta). Essas variáveis têm prioridade sobre o arquivo salvo. O Aktar precisa estar aberto nessa máquina, na mesma sessão de usuário.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
VariávelO que faz
AKTAR_TOKENO token de Ajustes > Integrações do Aktar. Usado no lugar do token salvo.
AKTAR_PORTA porta da API local do Aktar, se você a mudou. --port tem prioridade sobre ela.
NO_COLORDesenha os códigos QR com caracteres simples em vez de cores do terminal.
XDG_CONFIG_HOMEOnde fica a pasta de configuração no macOS (padrão ~/.config). No Windows, é usado %APPDATA%.

Comandos

Todos os comandos conversam com o Aktar, exceto aktar qr com texto simples ou um link. Sem -d, os envios vão para o destino selecionado na barra de menus do Aktar e aparecem no histórico do Aktar como qualquer outro. aktar --help mostra a mesma lista. Com o Aktar para Mac 0.14.0 ou o Aktar para Windows 0.7.0 ou posterior, um envio sem -d segue primeiro as regras Usar para dos destinos, então uma imagem pode ir para o destino de capturas e um build para outro.

aktar upload

Envia um ou mais arquivos e mostra um link por arquivo, na ordem, à medida que cada um termina.

Uso

aktar upload <file>... [options]

Opções

FlagValorDescrição
-d, --destination<name|id>Destino do envio, por nome ou ID. Padrão: o selecionado no Aktar.
-f, --format<format>O que mostrar: url (padrão), markdown, html ou custom (o seu modelo no Aktar).
--name<name>Envia um arquivo com este nome. A extensão é mantida se o nome não tiver uma.
--folder<path>Mantém o nome do arquivo e envia para esta pasta.
--expires<days>Deixa o bucket excluir o arquivo após 1, 7, 14 ou 30 dias. 0 o mantém.
--shortCriar um link curto com o encurtador do destino, mesmo que as regras dele pulariam este envio.
--no-shortNão criar link curto desta vez.
--qrTambém mostra um código QR de cada link.
--jsonMostra um array JSON com todos os detalhes de cada envio, em vez dos links.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Todos os arquivos são verificados antes de qualquer envio: se um não existir, nada é enviado e o aktar sai com o código 2.
  • Se um envio falhar, os outros continuam. Cada falha é informada no stderr, e o código de saída é 1.
  • Sem --folder, o modelo de caminho do destino dá nome ao arquivo, como ao soltá-lo na barra de menus. Com --folder, o arquivo mantém o nome dentro dessa pasta.
  • --name funciona com um arquivo por vez. As barras são removidas, e a extensão do arquivo é adicionada se o nome não tiver uma: --name cover envia IMG_4021.jpg como cover.jpg. Com --folder, é o nome dentro da pasta.
  • --expires aceita 1, 7, 14 ou 30 (dias), ou 0 para manter o arquivo. Sem ela, o arquivo é mantido, seja qual for o valor de Excluir após no Aktar. Ela precisa das regras de exclusão automática do Aktar nesse destino e não pode ser combinada com --folder.
  • --qr não pode ser combinada com --json, e --png só funciona com aktar qr.
  • Em um terminal, o progresso aparece no stderr enquanto o arquivo é enviado. O arquivo é transmitido ao Aktar em fluxo, então o tamanho não importa, e não há limite de tempo.
  • Se o destino tem um encurtador configurado no Aktar, o link curto é impresso, e --format e --qr usam ele. --short cria um mesmo que as regras do destino pulariam este envio, --no-short não cria nenhum. Se o Aktar não conseguir criá-lo, o link original é impresso e o stderr diz por quê.

Exemplos

Um arquivo, um link.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Vários arquivos, em Markdown: uma linha por arquivo, na ordem.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Envie com outro nome, para uma pasta.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
O mesmo arquivo já estava no bucket: o link é mostrado normalmente, e o aviso vai para o stderr.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg
Com um encurtador no destino, o link curto é impresso.
aktar upload talk.pdf --short
https://s.example.com/k3Tq9

aktar upload --clipboard

Envia o arquivo ou a imagem da área de transferência, como o próprio atalho de área de transferência do Aktar.

Uso

aktar upload --clipboard [options]

Opções

FlagValorDescrição
--clipboardEnvia o conteúdo da área de transferência em vez de arquivos.
-d, --destination<name|id>Destino do envio, por nome ou ID. Padrão: o selecionado no Aktar.
-f, --format<format>O que mostrar: url (padrão), markdown, html ou custom (o seu modelo no Aktar).
--expires<days>Deixa o bucket excluir o arquivo após 1, 7, 14 ou 30 dias. 0 o mantém.
--shortCriar um link curto com o encurtador do destino, mesmo que as regras dele pulariam este envio.
--no-shortNão criar link curto desta vez.
--qrTambém mostra um código QR de cada link.
--jsonMostra um array JSON com todos os detalhes de cada envio, em vez dos links.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Passe arquivos ou --clipboard, não os dois.
  • --name e --folder só funcionam com arquivos. -d, -f, --expires, --qr e --json funcionam como com arquivos.
  • Com --json, ele continua mostrando um array, com uma entrada.

Exemplos

A captura de tela que você acabou de copiar.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
Em Markdown, para um destino chamado Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
Excluído pelo bucket depois de um dia.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Grava um arquivo novo por cima de um envio, então a chave e o link continuam os mesmos. Quem tem o link vê o arquivo novo.

Uso

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

Opções

FlagValorDescrição
-d, --destination<name|id>Para uma chave: o destino em cujo bucket ela está, por nome ou ID. Padrão: o selecionado no Aktar.
-f, --format<format>O que mostrar: url (padrão), markdown, html ou custom (o seu modelo no Aktar).
--qrTambém mostra um código QR de cada link.
--jsonMostra um array JSON com todos os detalhes de cada envio, em vez dos links.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • O primeiro argumento é um ID de envio ou um link do aktar history (a entrada do histórico do Aktar é atualizada); senão, uma chave no bucket de -d (sem -d, o destino selecionado no Aktar). Um link que não está no histórico do Aktar é recusado: passe a chave com -d.
  • O Aktar remove os metadados do arquivo e o redimensiona como o destino pede, mas nunca converte para outro formato, então a extensão da chave continua. Um arquivo em tmp/{N}d/ recomeça os N dias.
  • A chave nunca é numerada e nada mais é enviado. --folder, --expires, --name e --clipboard não se aplicam e são recusados.
  • Cópias antigas podem ficar um tempo no cache de uma CDN. O Cache curto de um destino ou a limpeza do cache da Cloudflare no Aktar resolve isso.
  • Precisa do Aktar para Mac 0.14.0 ou do Aktar para Windows 0.7.0 ou posterior.

Exemplos

Substituir um envio do histórico pelo ID; o link continua o mesmo.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Substituir uma chave no bucket de outro destino e mostrar em Markdown.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar short

Cria um link curto para um envio do histórico com o encurtador do destino e o imprime. Se o envio já tem um, é esse que aparece.

Uso

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

Opções

FlagValorDescrição
--jsonImprimir os detalhes do link curto em JSON: provedor, status e cliques.
--qrImprimir também o QR code do link curto.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Passe um ID de envio ou um link do aktar history; o link curto dele também funciona. O aktar procura entre os últimos 1.000 envios.
  • O destino precisa de um encurtador na seção Links curtos do Aktar: Shlink, YOURLS, Kutt, Dub, Short.io ou uma requisição personalizada. O link curto vem desse encurtador, então seus links e dados de cliques ficam na sua infraestrutura.
  • --json imprime os detalhes do link curto: provedor, status, e cliques e último clique quando o encurtador conta. --qr adiciona o QR code. Os dois não podem ser combinados.
  • Precisa do Aktar para Mac 0.17.0 ou Aktar para Windows 0.10.0. Versões anteriores respondem que ainda não criam links curtos.

Exemplos

Um link curto para um envio do histórico.
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZ

aktar qr

Mostra no terminal um código QR de um link ou de qualquer texto, para você abri-lo no celular. Com o ID de um envio, mostra o link desse envio e o código QR dele.

Uso

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

Opções

FlagValorDescrição
--png<file>Salva o código QR como arquivo PNG em vez de mostrá-lo.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Passe exatamente um argumento e coloque entre aspas um texto com espaços.
  • O ID de um envio é o id de aktar history --json ou aktar upload --json. O aktar procura esse ID nos últimos 1.000 envios do histórico do Aktar; para texto simples ou um link, ele nem precisa do Aktar.
  • No terminal, o código é desenhado em preto sobre branco, seja qual for o tema. Quando a saída não é um terminal, ou NO_COLOR está definida, ele é desenhado sem cores.
  • --png salva o código QR como PNG em vez de mostrá-lo.
  • Para um envio com link curto, mostra o link curto.

Exemplos

Um código QR para qualquer link. A câmera do celular o abre.
aktar qr https://files.example.com/2026/10/demo.mp4
Um envio do histórico, salvo como PNG.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Verifica um token com o Aktar e o salva, para que os outros comandos consigam se conectar.

Uso

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

Opções

FlagValorDescrição
--token<token>O token, em vez do prompt.
--port<port>A porta do Aktar, salva junto com o token. Padrão 47913.

Bom saber

  • Em um terminal, ele pede o token e oculta o que você digita. Quando a entrada vem de um pipe, ele lê o token dali.
  • --token pula o prompt, mas outros programas podem ver o token enquanto o comando roda, e ele vai parar no histórico do seu shell, então o aktar avisa sobre isso. Passar por pipe ou usar AKTAR_TOKEN evita isso.
  • Um token recusado pelo Aktar não é salvo, e o código de saída é 3.

Exemplos

O token fica oculto enquanto você digita.
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
No Mac, com o token copiado do Aktar.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Sem prompt, para uma porta alterada. O aktar avisa que o token ficou visível.
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

Apaga o token e a porta salvos.

Uso

aktar logout

Opções

Sem opções.

Bom saber

  • AKTAR_TOKEN, se definida, continua funcionando depois do aktar logout.
  • Ele não desconecta outros clientes. Para isso, gere um novo token no Aktar.

Exemplos

Esquecer o token.
aktar logout
Logged out.
Depois disso, os comandos pedem que você faça login de novo (código de saída 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Mostra a qual Aktar você está conectado, em qual porta, o destino selecionado no Aktar e onde fica o arquivo de configuração.

Uso

aktar status [--json]

Opções

FlagValorDescrição
--jsonMostra JSON em vez de texto.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Uma forma rápida de verificar a conexão em um script: ele sai com o código 3 quando o Aktar não está acessível ou o token está errado.

Exemplos

Conectado, com o destino selecionado.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
O mesmo em 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

Lista seus destinos com provedor, bucket e ID. * marca o selecionado no Aktar.

Uso

aktar destinations [--json]

Opções

FlagValorDescrição
--jsonMostra JSON em vez de texto.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Use um nome ou um ID com -d. Os nomes são comparados sem diferenciar maiúsculas de minúsculas; um ID sempre funciona, mesmo depois de renomear.
  • --json traz id, name, provider, providerName, bucket, publicBaseURL e isDefault para cada um.

Exemplos

O destino selecionado é marcado com *.
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
O nome do destino selecionado, com jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Lista os envios recentes, do mais novo para o mais antigo: data, nome do arquivo e link. Palavras depois de history pesquisam o histórico.

Uso

aktar history [search] [options]

Opções

FlagValorDescrição
-n, --limit<n>Quantos envios listar. Padrão 20.
-d, --destination<name|id>Só os envios para este destino, por nome ou ID.
--jsonMostra JSON em vez de texto.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Ele lista 20 envios, a menos que você passe -n.
  • --json traz os mesmos campos que aktar upload --json, incluindo o id de cada envio para o aktar qr.

Exemplos

Os três últimos envios.
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
Pesquise faturas em um 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
O link da build mais recente, com 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

Executa um servidor Model Context Protocol (MCP), para que agentes de IA como Claude, Cursor, VS Code e Codex possam enviar arquivos pelo Aktar, encontrar envios anteriores e criar links. Você o adiciona ao agente uma vez; o agente o inicia quando precisar.

Uso

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

Opções

FlagValorDescrição
--root<folder>Só envia arquivos desta pasta. Repita para mais pastas. Padrão: a pasta em que o servidor roda, ou nenhuma quando ela é a sua pasta pessoal ou a raiz do disco.
--read-onlyOferece apenas as ferramentas que não alteram nada em um bucket: busca, listas, links temporários e miniaturas.
--allow-replaceOferece também replace_file, que sobrescreve um arquivo em um bucket.
--allow-deleteOferece também delete_upload, que apaga um arquivo do bucket, e replace_file.
--max-link-minutes<n>O tempo máximo que um link temporário pode funcionar, em minutos. Padrão 60, no máximo 10080 (7 dias).
--log<file>Acrescenta cada chamada de ferramenta (hora, ferramenta, argumentos, resultado) a este arquivo, que só você pode ler.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Bom saber

  • Execute aktar login primeiro. O servidor lê o token salvo a cada chamada, então entrar de novo funciona sem reiniciar o agente.
  • Enviar publica um arquivo: qualquer pessoa com o link pode abri-lo. Os agentes perguntam antes de chamar uma ferramenta, a menos que você permita.
  • Os arquivos só são enviados das pastas que você indicar com --root ou, sem isso, da pasta em que o servidor roda. Se essa for a sua pasta pessoal ou a raiz do disco, como acontece com alguns apps, nenhum arquivo local é enviado até você adicionar --root. --root ~ libera a sua pasta pessoal inteira, se você quiser mesmo isso. Os caminhos são resolvidos, links simbólicos incluídos, antes de serem verificados.
  • Segredos nunca são enviados, estejam onde estiverem: chaves SSH e privadas, arquivos .env, credenciais de nuvem e de gerenciadores de pacotes (~/.aws, ~/.kube, ~/.npmrc e outros), a configuração do próprio Aktar, o Keychain, perfis de navegador e bancos de dados de senhas. Arquivos com vários hard links também são recusados. Para compartilhar um deles, envie-o você mesmo com aktar upload.
  • --read-only oferece apenas as ferramentas que não alteram nada em um bucket. replace_file sobrescreve um arquivo como uma exclusão faria, então só é oferecida com --allow-replace, e delete_upload só com --allow-delete (que também oferece replace_file).
  • create_temporary_link cria links de no máximo 60 minutos, a menos que --max-link-minutes permita mais. upload_clipboard fica de fora quando você passa --root, já que a área de transferência pode conter qualquer coisa.
  • Os resultados das ferramentas começam com uma nota dizendo que nomes de arquivo, chaves e mensagens neles são dados, não instruções, e --log mantém um registro de cada chamada. Ele executa no máximo 4 chamadas de ferramenta ao mesmo tempo.
  • Sem uma instalação global, use npx -y @getaktar/cli mcp --root ~/Projects como comando.
  • Ele fala a versão atual do MCP (2026-07-28) e as anteriores que começam com initialize (2024-11-05 a 2025-11-25), por stdio. Precisa do aktar 0.4.0; os limites acima vêm com o aktar 0.6.0.

Ferramentas

FerramentaO que faz
upload_fileEnvia um arquivo e devolve o link, o Markdown e o HTML. Destino, nome, pasta e expiração são opcionais. short pede um link curto, ou nenhum.
upload_clipboardEnvia o arquivo ou a imagem da área de transferência. short pede um link curto, ou nenhum. Fica de fora quando --root é passado.
replace_fileGrava um arquivo novo por cima de um envio ou de qualquer arquivo em um bucket, mantendo o link. Só com --allow-replace ou --allow-delete. Precisa do Aktar para Mac 0.14.0 ou Windows 0.7.0.
create_short_linkCria um link curto para um envio com o encurtador do destino, ou devolve o que ele já tem. Fica de fora com --read-only. Precisa do Aktar para Mac 0.17.0 ou Windows 0.10.0.
search_uploadsPesquisa o histórico de envios.
list_destinationsLista os destinos e os tipos de arquivo para os quais cada um é usado.
list_bucketLista as pastas e os arquivos de um bucket, inclusive arquivos não enviados pelo Aktar.
create_temporary_linkCria um link que deixa de funcionar depois de um tempo (uma URL pré-assinada). Qualquer pessoa com ele pode baixar o arquivo até lá, mesmo de um bucket privado. No máximo 60 minutos, a menos que --max-link-minutes permita mais.
get_thumbnailMostra ao agente uma prévia de um envio. Precisa do Aktar para Mac 0.13.0 ou Windows 0.6.0.
list_watched_foldersLista as pastas monitoradas e o status delas.
get_statusVerifica a conexão com o Aktar.
delete_uploadApaga um envio do bucket. Só com --allow-delete.

Exemplos

Adicione o Aktar ao Claude Code ou ao Codex.
claude mcp add aktar -- aktar mcp --root ~/Projects
codex mcp add aktar -- aktar mcp --root ~/Projects
Deixe o agente enviar de duas pastas e substituir arquivos.
claude mcp add aktar -- aktar mcp --root ~/Projects --root ~/Desktop --allow-replace
Mantenha um registro do que o agente fez.
claude mcp add aktar -- aktar mcp --root ~/Projects --log ~/aktar-mcp.log

aktar skill

Imprime uma skill de agente (SKILL.md) que ensina os agentes a usar o comando aktar com --json: o que executar, como ler o resultado e enviar apenas o que você pediu para compartilhar. Para agentes que usam skills, mas não MCP.

Uso

aktar skill

Opções

Sem opções.

Bom saber

  • Salve-a onde seu agente procura skills, por exemplo ~/.claude/skills/aktar/ para o Claude Code.

Exemplos

Instale a skill para o Claude Code.
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.md

Opções para todos os comandos

FlagValorDescrição
-h, --helpMostra a lista de comandos e opções.
-v, --versionMostra a versão do aktar.
--port<port>A porta da API local do Aktar, só para este comando. Tem prioridade sobre AKTAR_PORT e a porta salva.

Saída

Formatos

-f escolhe o que é mostrado para cada envio. Sem ela, o aktar mostra a URL simples, seja qual for o formato que a barra de menus do Aktar copia. Markdown e HTML incorporam imagens e criam links para todo o resto, do mesmo jeito que o Aktar.

FormatoSaída para photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgO link (padrão).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Uma imagem em Markdown, ou um link em Markdown para outros arquivos.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Uma tag <img>, ou um link <a> para outros arquivos.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)O seu modelo dos ajustes do Aktar, com {url}, {filename} e as outras variáveis preenchidas.

stdout e stderr

A saída padrão recebe só os links, um por linha, na ordem dos arquivos (e os códigos QR, com --qr). Todo o resto vai para a saída de erro: progresso, erros e avisos como aktar: photo.jpg: already uploaded, reused the existing link. Assim, url=$(aktar upload file) e aktar upload *.png > links.txt sempre recebem links limpos.

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

JSON

--json mostra um array com uma entrada por arquivo enviado, depois que todos terminam. Envios com falha ficam de fora (eles são informados no stderr), então verifique também o código de saída.

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
idO ID do envio no histórico do Aktar. O aktar qr aceita esse ID.
filenameO nome pelo qual o Aktar conhece o arquivo: o próprio, ou o de --name.
objectKeyOnde o arquivo está no bucket.
urlO link.
shortUrlO link curto, ou null quando não há. formats já usam ele.
destinationIdO ID do destino.
destinationNameO nome do destino.
mimeTypeO tipo do arquivo, depois de qualquer conversão feita pelo Aktar.
sizeTamanho em bytes, como armazenado.
createdAtQuando foi enviado (ISO 8601, UTC).
expiresAtQuando o bucket o exclui, ou null se ele é mantido.
replacedAtQuando o arquivo foi substituído pela última vez (ISO 8601, UTC). Fica de fora até ser substituído, e em versões do Aktar anteriores ao Mac 0.14.0 e ao Windows 0.7.0.
formatsO link nos quatro formatos: url, markdown, html e custom.
reusedtrue quando nada foi enviado porque o mesmo arquivo já estava lá. Ausente em versões do Aktar anteriores ao Mac 0.10.0 e ao Windows 0.3.0.
shortLinkErrorPor que o Aktar não conseguiu criar o link curto; url é então o link original. Fica de fora quando deu tudo certo.

Códigos de saída

CódigoSignificado
0Tudo funcionou.
1Pelo menos um envio ou requisição falhou; os outros foram concluídos. Erros do próprio Aktar, como a exclusão automática não estar configurada, também terminam aqui.
2Argumentos inválidos, um arquivo que não existe ou um nome de destino que o Aktar não tem. Nada foi enviado.
3Sem login, o Aktar não está aberto, a API local dele está desligada, o token está errado ou o app na porta não conseguiu provar que é o Aktar (ou é antigo demais para isso).

Receitas

Copie, ajuste os nomes dos arquivos e pronto. Cada receita usa só o que está documentado acima.

Guardar o link em uma variável

Só o link chega à saída padrão, então a substituição de comando recebe exatamente a URL. || exit 1 interrompe o script se o envio falhar.

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

Enviar uma build e publicar o link

Compacte uma build, envie para um destino chamado Builds com o hash curto do commit e publique o link em qualquer webhook que aceite JSON (um canal de chat, um issue tracker, o seu próprio endpoint). set -e para antes de publicar se o envio falhar.

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

Um alvo de Makefile

make share envia o relatório com a data de hoje e guarda o link em .last-link. Em um Makefile, $$ passa um $ para o shell, e a linha de comando começa com um tab.

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

Uploader de imagens do Typora

No Typora, abra Settings > Image, escolha Custom Command como uploader de imagens e digite o caminho completo do aktar (o que which aktar mostra) seguido de upload. O Typora passa os caminhos das imagens e lê um link por linha.

/opt/homebrew/bin/aktar upload

Passo a passo, com o ajuste When Insert…: Envie imagens do Typora para o S3.

Enviar pelo Finder ou pelos Atalhos

No Mac, adicione uma ação Run Shell Script a um atalho, ou a uma Ação Rápida do Automator que recebe arquivos no Finder, e configure-a para passar a entrada as arguments. Os Atalhos e o Automator não carregam o PATH do seu shell, por isso a primeira linha. Selecione os arquivos, execute, e os links ficam na área de transferência.

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

Ela envia arquivos, não pastas. Vários arquivos geram vários links, um por linha.

Arquivos temporários

Para um log, uma gravação de tela ou qualquer coisa que não deve ficar por aí, deixe o bucket excluí-lo. O destino precisa antes das regras de exclusão automática do Aktar: configure-as uma vez em Excluir após, na barra de menus do Aktar ou nos ajustes do destino.

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

Os arquivos com prazo vão para tmp/1d/, tmp/7d/ e assim por diante no bucket, e o bucket os exclui mesmo com o Aktar fechado.

Abrir um link no celular

--qr mostra um código QR abaixo do link; aponte a câmera do celular para o terminal. Para mostrá-lo de novo depois, passe o ID de um envio para o aktar qr, aqui o envio mais recente que corresponde a "demo".

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

Windows PowerShell

O mesmo funciona no PowerShell. $LASTEXITCODE guarda o código de saída, e ConvertFrom-Json lê o --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 no Claude Desktop, Cursor ou VS Code

Apps que aceitam uma configuração JSON para servidores MCP (Claude Desktop, Cursor, Windsurf e outros) precisam desta entrada. O VS Code usa a mesma entrada em servers, em .vscode/mcp.json. Depois peça ao seu agente para enviar um arquivo, encontrar as capturas de tela da semana passada ou criar um link temporário.

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

Se o app não encontrar o aktar, use o caminho completo (which aktar) ou npx com ["-y", "@getaktar/cli", "mcp", "--root", "/Users/you/Projects"] como argumentos. Coloque depois de --root a pasta da qual o seu agente pode enviar arquivos (no Windows, algo como C:\\Users\\you\\Projects).

O que o Aktar faz por você

O CLI só repassa os arquivos; o Aktar faz o resto, com os ajustes de cada destino. Então tudo o que você configurou no app vale também para o aktar upload, sem opções extras, e o link que você recebe é o do arquivo como foi armazenado.

  • Modelos de caminho

    O caminho de objeto do destino dá nome ao arquivo, com {year}, {uuid}, {filename} e os demais. {md5} e {sha256} nomeiam os arquivos pelo conteúdo.

  • Processamento de imagens

    Se o destino converte imagens para WebP ou AVIF, comprime ou redimensiona, os envios pelo CLI recebem o mesmo tratamento, e o link aponta para o arquivo convertido.

  • Metadados das fotos

    Metadados da imagem, nos padrões de envio do destino, remove a localização das fotos, ou todos os metadados, antes que elas saiam do seu computador.

  • Mesmo arquivo, mesmo link

    Com Reutilizar links de arquivos duplicados ativado, o mesmo conteúdo no mesmo destino recebe o link existente em vez de um segundo envio. O aktar avisa no stderr.

  • Arquivos grandes

    Arquivos grandes são enviados em partes, sem o limite de 5 GB, tentados de novo depois de uma queda de conexão e retomados de onde pararam. O aktar transmite o arquivo ao Aktar em fluxo, então nunca o carrega na memória.

  • Links públicos ou temporários

    Se o link é público ou temporário (pré-assinado), que funciona também em um bucket privado, é escolha do destino, como no app.

Links de duplicados, processamento de imagens, {md5} e {sha256} e envios em partes chegaram com o Aktar para Mac 0.10.0 e para Windows 0.3.0: novidades da 0.10.0.

Solução de problemas

As mensagens de erro do aktar começam com aktar: e vão para o stderr. O código de saída diz que tipo de problema é.

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

Abra o Aktar e verifique se Permitir conexões locais está ativado em Ajustes > Integrações. Se você mudou a porta ali, passe-a com --port ou AKTAR_PORT, ou execute aktar login --port de novo. Código de saída 3.

Not connected to Aktar yet

Não há token salvo nem AKTAR_TOKEN. Execute aktar login com o token de Ajustes > Integrações do Aktar. Código de saída 3.

The token doesn't match Aktar's anymore

O token foi gerado de novo no Aktar, ou foi digitado errado. Execute aktar login de novo com o token atual. Se AKTAR_TOKEN estiver definida, ela tem prioridade sobre o token salvo, então atualize-a ou remova-a também. Código de saída 3.

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

Algo respondeu na porta do Aktar, mas não conseguiu mostrar que tem o seu token, então o token não foi enviado. Se o Aktar estiver aberto, o token dele provavelmente mudou: execute aktar login de novo. Se o Aktar não estiver aberto, abra-o. Código de saída 3.

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

O aktar 0.6.0 e posteriores verificam o app antes de enviar o token, o que precisa do Aktar para Mac 0.18.0 ou do Aktar para Windows 0.11.0 ou posterior. Atualize o Aktar (ele mesmo oferece as atualizações), e o comando volta a funcionar. Código de saída 3.

MCP: This server doesn't upload local files

O agente iniciou o aktar mcp na sua pasta pessoal ou na raiz do disco, e não há --root. Adicione --root com a pasta de onde os arquivos podem vir ao comando ou à configuração do servidor, por exemplo aktar mcp --root ~/Projects, e reinicie o agente.

Auto-delete isn't set up for this destination

--expires precisa das regras de exclusão automática do bucket. Configure-as uma vez em Excluir após, na barra de menus do Aktar ou nos ajustes do destino, ou envie sem --expires. Código de saída 1.

No destination named "…"

A mensagem lista os nomes que o Aktar tem. Confira a grafia, coloque entre aspas nomes com espaços (-d "Client work") ou use o ID de aktar destinations. Código de saída 2.

Um envio grande demora muito

Essa é a velocidade do provedor de armazenamento: o aktar não tem limite de tempo para envios e mostra o progresso no stderr em um terminal. Mantenha o Aktar aberto até terminar. Se a conexão cair ou o Aktar fechar (Aktar closed the connection before the request finished), envie o mesmo arquivo de novo: o Aktar para Mac 0.10.0 e para Windows 0.3.0 continuam da última parte.

O aktar não inicia: SyntaxError ou parseArgs

O seu Node.js é anterior ao 18. Verifique com node --version e atualize, ou instale o aktar pelo Homebrew, que traz o próprio Node.js.

O PowerShell diz que a execução de scripts está desabilitada

A política de execução do PowerShell bloqueia o script que o npm instala para o aktar. Execute aktar.cmd em vez dele, ou permita scripts locais uma vez com Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.