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,--qreaktar qrprecisam 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 replaceprecisa 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-shorteaktar shortprecisam 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/cliCom Homebrew (macOS)
brew install getaktar/tap/aktar-cliOu execute uma vez sem instalar nada:
npx @getaktar/cli upload file.pngVeja qual versão você tem:
aktar --version
0.6.0Conectar ao Aktar
- 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. - Copie o token que aparece logo abaixo.
- Execute
aktar logine cole o token no promptToken:. 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.jsonOnde 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.
{
"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ável | O que faz |
|---|---|
AKTAR_TOKEN | O token de Ajustes > Integrações do Aktar. Usado no lugar do token salvo. |
AKTAR_PORT | A porta da API local do Aktar, se você a mudou. --port tem prioridade sobre ela. |
NO_COLOR | Desenha os códigos QR com caracteres simples em vez de cores do terminal. |
XDG_CONFIG_HOME | Onde 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 uploadaktar upload --clipboardaktar replaceaktar shortaktar qraktar loginaktar logoutaktar statusaktar destinationsaktar historyaktar mcpaktar skill
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
| Flag | Valor | Descriçã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. |
--short | Criar um link curto com o encurtador do destino, mesmo que as regras dele pulariam este envio. | |
--no-short | Não criar link curto desta vez. | |
--qr | Também mostra um código QR de cada link. | |
--json | Mostra 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
aktarsai 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. --namefunciona 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 coverenviaIMG_4021.jpgcomocover.jpg. Com--folder, é o nome dentro da pasta.--expiresaceita 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.--qrnão pode ser combinada com--json, e--pngsó funciona comaktar 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
--formate--qrusam ele.--shortcria um mesmo que as regras do destino pulariam este envio,--no-shortnão cria nenhum. Se o Aktar não conseguir criá-lo, o link original é impresso e o stderr diz por quê.
Exemplos
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
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
| Flag | Valor | Descrição |
|---|---|---|
--clipboard | Envia 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. |
--short | Criar um link curto com o encurtador do destino, mesmo que as regras dele pulariam este envio. | |
--no-short | Não criar link curto desta vez. | |
--qr | Também mostra um código QR de cada link. | |
--json | Mostra 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. --namee--foldersó funcionam com arquivos.-d,-f,--expires,--qre--jsonfuncionam como com arquivos.- Com
--json, ele continua mostrando um array, com uma entrada.
Exemplos
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
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
| Flag | Valor | Descriçã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). |
--qr | Também mostra um código QR de cada link. | |
--json | Mostra 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,--namee--clipboardnã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
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
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
| Flag | Valor | Descrição |
|---|---|---|
--json | Imprimir os detalhes do link curto em JSON: provedor, status e cliques. | |
--qr | Imprimir 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. Oaktarprocura 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.
--jsonimprime os detalhes do link curto: provedor, status, e cliques e último clique quando o encurtador conta.--qradiciona 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
aktar short 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1
https://s.example.com/Qm3xZaktar 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
| Flag | Valor | Descriçã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
iddeaktar history --jsonouaktar upload --json. Oaktarprocura 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_COLORestá definida, ele é desenhado sem cores. --pngsalva o código QR como PNG em vez de mostrá-lo.- Para um envio com link curto, mostra o link curto.
Exemplos
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
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
| Flag | Valor | Descriçã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.
--tokenpula 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 oaktaravisa sobre isso. Passar por pipe ou usarAKTAR_TOKENevita isso.- Um token recusado pelo Aktar não é salvo, e o código de saída é 3.
Exemplos
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 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.jsonaktar logout
Apaga o token e a porta salvos.
Uso
aktar logoutOpções
Sem opções.
Bom saber
AKTAR_TOKEN, se definida, continua funcionando depois doaktar logout.- Ele não desconecta outros clientes. Para isso, gere um novo token no Aktar.
Exemplos
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
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
| Flag | Valor | Descrição |
|---|---|---|
--json | Mostra 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
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
Lista seus destinos com provedor, bucket e ID. * marca o selecionado no Aktar.
Uso
aktar destinations [--json]Opções
| Flag | Valor | Descrição |
|---|---|---|
--json | Mostra 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. --jsontrazid,name,provider,providerName,bucket,publicBaseURLeisDefaultpara cada um.
Exemplos
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
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
| Flag | Valor | Descrição |
|---|---|---|
-n, --limit | <n> | Quantos envios listar. Padrão 20. |
-d, --destination | <name|id> | Só os envios para este destino, por nome ou ID. |
--json | Mostra 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. --jsontraz os mesmos campos queaktar upload --json, incluindo oidde cada envio para oaktar qr.
Exemplos
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
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
| Flag | Valor | Descriçã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-only | Oferece apenas as ferramentas que não alteram nada em um bucket: busca, listas, links temporários e miniaturas. | |
--allow-replace | Oferece também replace_file, que sobrescreve um arquivo em um bucket. | |
--allow-delete | Oferece 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 loginprimeiro. 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
--rootou, 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,~/.npmrce 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 comaktar upload. --read-onlyoferece apenas as ferramentas que não alteram nada em um bucket.replace_filesobrescreve um arquivo como uma exclusão faria, então só é oferecida com--allow-replace, edelete_uploadsó com--allow-delete(que também oferecereplace_file).create_temporary_linkcria links de no máximo 60 minutos, a menos que--max-link-minutespermita mais.upload_clipboardfica 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
--logmanté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 ~/Projectscomo 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
| Ferramenta | O que faz |
|---|---|
upload_file | Envia 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_clipboard | Envia o arquivo ou a imagem da área de transferência. short pede um link curto, ou nenhum. Fica de fora quando --root é passado. |
replace_file | Grava 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_link | Cria 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_uploads | Pesquisa o histórico de envios. |
list_destinations | Lista os destinos e os tipos de arquivo para os quais cada um é usado. |
list_bucket | Lista as pastas e os arquivos de um bucket, inclusive arquivos não enviados pelo Aktar. |
create_temporary_link | Cria 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_thumbnail | Mostra ao agente uma prévia de um envio. Precisa do Aktar para Mac 0.13.0 ou Windows 0.6.0. |
list_watched_folders | Lista as pastas monitoradas e o status delas. |
get_status | Verifica a conexão com o Aktar. |
delete_upload | Apaga um envio do bucket. Só com --allow-delete. |
Exemplos
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 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 skillOpções
Sem opções.
Bom saber
- Salve-a onde seu agente procura skills, por exemplo
~/.claude/skills/aktar/para o Claude Code.
Exemplos
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.mdOpções para todos os comandos
| Flag | Valor | Descrição |
|---|---|---|
-h, --help | Mostra a lista de comandos e opções. | |
-v, --version | Mostra 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.
| Formato | Saída para photo.jpg |
|---|---|
-f url | https://files.example.com/2026/10/7f3c2a91.jpgO link (padrão). |
-f markdown | 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 | 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.jpgJSON
--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": "",
"html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
"custom": ""
},
"reused": false
}
]| Campo | Significado |
|---|---|
id | O ID do envio no histórico do Aktar. O aktar qr aceita esse ID. |
filename | O nome pelo qual o Aktar conhece o arquivo: o próprio, ou o de --name. |
objectKey | Onde o arquivo está no bucket. |
url | O link. |
shortUrl | O link curto, ou null quando não há. formats já usam ele. |
destinationId | O ID do destino. |
destinationName | O nome do destino. |
mimeType | O tipo do arquivo, depois de qualquer conversão feita pelo Aktar. |
size | Tamanho em bytes, como armazenado. |
createdAt | Quando foi enviado (ISO 8601, UTC). |
expiresAt | Quando o bucket o exclui, ou null se ele é mantido. |
replacedAt | Quando 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. |
formats | O link nos quatro formatos: url, markdown, html e custom. |
reused | true 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. |
shortLinkError | Por 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ódigo | Significado |
|---|---|
0 | Tudo funcionou. |
1 | Pelo 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. |
2 | Argumentos inválidos, um arquivo que não existe ou um nome de destino que o Aktar não tem. Nada foi enviado. |
3 | Sem 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.pdfEnviar 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.
share: dist/report.pdf
aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-linkUploader 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 uploadPasso 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 --qrOs 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.
$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 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.
{
"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
aktaravisa 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
aktartransmite 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.