
Aktar
io.github.getaktarv0.4.0更新于 Oct 5, 2026
Upload files to your own S3, Cloudflare R2 or B2 bucket through the Aktar app and get links.
概览
让助手通过 Aktar 桌面应用把文件上传到你自己的 S3、Cloudflare R2 或 Backblaze B2 存储桶,并返回可分享的链接。
- 功能
- 以本地 MCP 服务器(aktar mcp)方式运行,通过 Aktar 应用上传文件并返回链接、Markdown 和 HTML。工具包括 upload_file、upload_clipboard、replace_file、search_uploads、list_destinations、list_bucket、create_temporary_link、get_thumbnail、list_watched_folders、get_status,以及仅在启用时提供的 delete_upload。目标位置、存储密钥、路径模板和链接设置都来自 Aktar 应用,因此无需额外配置。
- 适用场景
- 适合让助手把截图、报告、构建产物等文件发布到你自己的存储并返回链接,或需要查询历史上传、浏览存储桶、生成临时链接的场景。适用于文件本就通过 Aktar 桌面应用处理的流程。
- 运行要求
- 需要 Node.js 18 或更高版本,以及 Aktar 桌面应用(Mac 0.4.0 或更高版本,或 Windows 版),并开启本地连接。先用 aktar login 连接,粘贴 Aktar 设置 > 集成中显示的令牌;令牌保存在 CLI 配置文件中,也可通过 AKTAR_TOKEN 环境变量提供(若端口有改动则用 AKTAR_PORT)。仅支持桌面端。
安装
在 SourceWeft 中
- 打开 控制台中的 Aktar,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Aktar CLI
Upload files to your own S3, Cloudflare R2 or Backblaze B2 bucket from the terminal, and get the link.
[npm version] [CI] [MIT license]
[aktar upload in a terminal: links, Markdown and JSON output]
The aktar command talks to the Aktar app on your Mac or Windows PC, so it uses the destinations, keys, path templates and link settings you already set up there. Your storage keys never leave the app.
Install
Or run it without installing: npx @getaktar/cli upload file.png.
Requires Node.js 18 or later and Aktar for Mac 0.4.0 or later, or Aktar for Windows.
Connect to Aktar
- In Aktar, open Settings > Integrations and turn on Allow local connections.
- Copy the token shown there.
- Run:
and paste the token when asked. It's checked against Aktar and saved to ~/.config/aktar/cli.json (%APPDATA%\aktar\cli.json on Windows), readable only by you. You can also pipe it in (pbpaste | aktar login) or set AKTAR_TOKEN (and AKTAR_PORT if you changed the port) instead.
Usage
Without -d, files go to the destination selected in Aktar's menu bar. Uploads show up in Aktar's history like any other.
--format chooses what's printed: url (default), markdown, html, or custom (your template from Aktar). --expires takes 1, 7, 14 or 30 days and needs Aktar's auto-delete rules on that destination; without it, files are kept.
--name uploads a single file under another name: it's what {filename} and {ext} in the destination's path template become, and what Aktar's history shows. If the name has no extension, the file's own is added (--name cover uploads IMG_4021.jpg as cover.jpg); if it has one, it's used as given. With --folder, it's the name inside the folder.
If the same file (same contents, destination and expiry) is already in the bucket, Aktar doesn't upload it again and gives you the existing link. aktar prints the link as usual and notes it on stderr (aktar: photo.jpg: already uploaded, reused the existing link), so scripts reading stdout still get one link per file. This needs Aktar for Mac 0.10.0 or Windows 0.3.0.
QR codes
aktar upload --qr prints a QR code under each link, so you can open it on your phone. The QR code is always of the link itself, whatever --format prints. It's drawn black on white in the terminal, whatever its theme; when the output isn't a terminal, or NO_COLOR is set, it's drawn without colors (light modules as blocks), which phone cameras read on a light or dark background. --qr can't be combined with --json.
aktar qr <text> shows the QR code of any link or text; quote text with spaces. Given an upload ID from aktar history --json, it shows that upload's link and its QR code. --png <file> saves the QR code as a PNG instead:
What Aktar does for you
The app does the work per destination, so the CLI needs nothing extra for it:
- Converting images to WebP or AVIF, if the destination is set to
{md5}and{sha256}in path templates, to name files by their contents- Big files: past 5 GB, Aktar uploads in parts and resumes after a dropped connection.
aktarstreams the file to the app, so its size doesn't matter
The link aktar prints is the one for the file as stored, after any conversion.
JSON output
aktar upload --json prints an array with one entry per uploaded file:
reused is true when nothing was uploaded because the file was already there; older versions of Aktar leave it out.
Exit codes
AI agents (MCP and skill)
MCP server
aktar mcp runs a Model Context Protocol server, so Claude, Cursor, VS Code, Codex and other agents can upload through Aktar, find past uploads and make links. Connect Aktar first (aktar login), then add it to your agent:
For Claude Desktop, Cursor, VS Code and others that take a JSON config:
Without a global install, use "command": "npx", "args": ["-y", "@getaktar/cli", "mcp"].
Uploading publishes a file, so keep an eye on what your agent sends. Your agent asks before calling a tool unless you allow it, and these options narrow what the server can do:
--root <folder>: only upload files from this folder (repeat for more). Paths are resolved, symlinks included, before they're checked.--read-only: only the tools that change nothing (search, list, links, thumbnails).--allow-delete: also offerdelete_upload, which is left out by default.
The server speaks both the current per-request protocol (2026-07-28) and the earlier initialize versions (2024-11-05 to 2025-11-25).
Agent skill
Agents that use skills but not MCP can use the CLI directly. aktar skill prints a SKILL.md that teaches them how:
Typora
In Typora, open Settings > Image > Image Upload, choose Custom Command and enter:
Typora passes the image paths and reads one link per line. Click Test Uploader to check it.
Links
- Website: https://getaktar.com/cli/
- Aktar for Mac and Windows: https://getaktar.com
- Homebrew:
brew install getaktar/tap/aktar-cli
License
MIT
来源:README.md,提交 9ac1494
工具
0版本历史
1- v0.4.0最新Oct 5, 2026
