aispace

sh.aispace由 aispace.sh 發布v0.4.1更新於 Oct 24, 2026

Secure, expiring artifact storage and handoff for AI agents.

已驗證STDIO僅桌面檔案與儲存安全與監控

概覽

AI 產生的概覽

讓助理透過 aispace 服務上傳、分享與管理會過期的檔案,並可選擇本機加密與密封式交接。

可以做什麼
透過本機 stdio 提供十個具型別的 MCP 工具,介接 aispace 檔案投放服務。助理可以上傳檔案或標準輸入內容,建立可各自設定有效期限的公開連結並限制下載次數,也能列出、下載、驗證與刪除檔案,以及撤銷連結。另外支援用戶端 age 加密、密封式多檔案傳輸,以及對同一帳號下其他金鑰的驗證式交接。
適用情境
當助理需要交接過大、結構化或臨時性的產出檔案,或需要一個短期有效的分享連結時適用。也適合需要私密、加密或僅限帳號內檔案交換而非公開連結的情境。
執行需求
以本機程序方式執行,透過 npm 套件 @aispace-sh/cli(或其他安裝管道)經 stdio 通訊。需要在 aispace 儀表板建立的作用域機器人金鑰,放在 AISPACE_KEY 中。選用的 AISPACE_URL 可覆寫服務位址,AISPACE_ALLOWED_ROOTS 可限制本機檔案存取範圍。需要連線至 aispace 服務的網路;公開連結需要 Pro 帳號。
安裝前請注意
必須提供 AISPACE_KEY 憑證,應保存在密鑰儲存或注入的環境變數中,切勿寫入提交的專案檔案或命令列參數。上傳、建立連結、撤銷與刪除會變更遠端狀態;README 建議對建立連結、撤銷連結與刪除檔案工具啟用提示確認。公開連結會讓任何持有該 URL 的人存取檔案,且檔案會傳送至獨立營運的託管服務。加密身分與傳輸權杖屬於機密,避免把完整片段連結或權杖當作行程參數傳遞。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 aispace,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[aispace logo]

aispace

Secure temporary file sharing for AI agents and humans.
A scriptable CLI with expiring links, predictable JSON, and optional local age encryption.

Website · Documentation

[Release] [Go CI] [Go 1.26+] [MIT license]

[Example terminal session uploading a report and receiving an expiring aispace link]

aispace.sh is a bot-friendly file drop for outputs that are too large, structured, or temporary for chat. The open-source client is deliberately easy to automate: one binary, stable exit codes, streaming uploads, and share URLs printed on a predictable final line.

  • Built for agents: stable JSON on supported commands, documented errors, stdin support, and explicit noninteractive flags for automation. Secret-bearing handoff commands remain interactive.
  • Short-lived by design: file expiration, separately expiring links, revocation, and optional per-link download caps.
  • Private when needed: sealed asynchronous transfers encrypt filenames, file metadata, and content locally; their master key never reaches aispace. The existing age X25519 flow remains available for recipient-key workflows.

Sealed transfers, agent identities, device pairing, and adaptive durable-first intent are experimental surfaces. Ordinary uploads and durable R2 storage continue to work alongside them.

The hosted service is operated separately. This repository contains the client, agent skill, and integration examples—not the server, billing system, deployment configuration, or customer data.

Try it in 60 seconds

Install the latest release:

sh
curl -fsSL https://aispace.sh/install.sh | sh

Authenticate with a key created in the aispace dashboard, then store a file:

sh
aispace login --key ask_...aispace upload report.pdf --json

On a Pro account, add a separately expiring public handoff:

sh
aispace upload report.pdf --link --link-expires 1h --max-downloads 1

The URL is printed last on its own line, making it easy for an agent or shell script to capture. Add --json for a stable machine-readable response. An abridged response looks like:

json
{"file":{"id":"...","name":"report.pdf"},"link":{"url":"https://aispace.sh/d/...","expires_at":1757003600}}

Other installation channels:

sh
npm install -g @aispace-sh/clibrew install aispace-sh/tap/aispacego install github.com/aispace-sh/aispace-client@latest

Pin the shell installer with AISPACE_VERSION=v1.2.3. Release binaries support macOS, Linux, and Windows on amd64 and arm64. The shell installer supports macOS and Linux; use npm on Windows.

[Grok Bot]

Using Grok Bot?

Give Grok Bot a fast, bot-friendly way to share files with aispace.

Add the aispace bot to Grok Bot →


Give aispace to an agent

The repository includes a reusable Codex-compatible skill. Clone the repository and link the skill into your personal Codex skills directory:

sh
git clone https://github.com/aispace-sh/aispace-client.gitmkdir -p ~/.codex/skillsln -s "$PWD/aispace-client/skills/aispace" ~/.codex/skills/aispace

Restart Codex, then ask it to use aispace when it needs to hand you a report, archive, image, or other generated artifact. The skill defaults to account-private storage unless you request a public link, prefers short expirations, and treats encryption identities as credentials.

Model Context Protocol (MCP)

The native CLI also exposes ten typed MCP tools over local stdio. Create a separately scoped bot key in the dashboard, export it in the environment that launches Codex, and add:

toml
[mcp_servers.aispace]command = "aispace"args = ["mcp", "serve"]env_vars = ["AISPACE_KEY", "AISPACE_URL", "AISPACE_ALLOWED_ROOTS"]startup_timeout_sec = 10tool_timeout_sec = 120default_tools_approval_mode = "writes"
[mcp_servers.aispace.tools.aispace_create_link]approval_mode = "prompt"
[mcp_servers.aispace.tools.aispace_revoke_link]approval_mode = "prompt"
[mcp_servers.aispace.tools.aispace_delete_file]approval_mode = "prompt"

Run codex mcp list to verify the connection. The ChatGPT desktop app, Codex CLI, and Codex IDE extension on the same host share this configuration. Keep the key in a secret store or injected environment; never put its expanded value in a committed project file or command argument. See docs/CLI.md for Claude Code and generic-host examples.

For custom agent runtimes, docs/LLM_USAGE.md includes a system-prompt snippet, OpenAI/Anthropic-compatible tool schemas, and a reference Python handler. See examples for runnable shell, CI, and encrypted-handoff recipes.

Common workflows

sh
# Upload text from stdin and return an expiring public link (Pro).echo "hello" | aispace upload - --name note.txt --link --link-expires 1h
# Keep a file available only to this key.aispace upload secret.txt --private
# Share ciphertext; keep the generated age identity locally.aispace upload secret.pdf --encrypt --identity-out secret.agekey --link
# Authenticated handoff to another key on the same account—no public URL.aispace upload notes.md --shared --json
# Sealed multi-file handoff. The URL fragment holds the local decryption secret.aispace transfer create report.pdf charts.png --sealed --link --expires 1d --max-downloads 1
# Move that sealed transfer to a nearby browser/device with an expiring code.aispace handoff offer "$TRANSFER_ID"# On the receiving CLI: aispace handoff receive J7KM-PQRT
# Pin an agent and deliver without exposing a bearer decryption link.aispace recipient add "$RECIPIENT_INVITATION"aispace recipient verify research-agent --fingerprint "$RECIPIENT_FINGERPRINT"aispace transfer create report.pdf --sealed --to research-agent --from my-agent --expires 7daispace inbox receive "$DELIVERY_ID" --yes
# Paste the link interactively, inspect its private manifest, then decrypt and verify.aispace transfer receive
# Receive, manage, and revoke.aispace ls --jsonaispace download <file_id> --output ./fileaispace download <file_id> --output ./file --verify   # check the recorded SHA-256aispace link <file_id> --expires 30m --max-downloads 1aispace revoke <link_id>aispace rm <file_id>

Follow docs/SECURE_HANDOFFS.md for sealed bundles, trusted agent inboxes, device pairing, adaptive R2 fallback, and recovery. The complete command reference is in docs/CLI.md; the HTTP contract is in docs/API.md.

upload accepts --name, --expires, --content-type, --sha256, --link, --link-expires, --max-downloads, --private, --shared, --encrypt, --recipient, and --identity-out. Uploads stream from disk. Encrypted uploads use age X25519 locally and store ciphertext as <name>.age; the secret identity is never sent to the API.

transfer create uses aispace-sealed-v1: AES-256-GCM authenticated chunks and an encrypted manifest support multiple files, ranged retry, and a verified receipt. transfer receive accepts the secret from its prompt, --token-file, or AISPACE_TRANSFER_TOKEN; avoid putting a full fragment link or token in a process argument on shared systems.

transfer create --json omits bearer links and tokens unless --include-secret is explicit, and secret-inclusive JSON must be redirected rather than written to a terminal. handoff encode likewise accepts the protected prompt, --token-file, or AISPACE_TRANSFER_TOKEN.

With --json, errors also remain structured and are written to stderr. upload --link --json returns {"file": File, "link": ShareLink}; encrypted uploads add an "encryption" object.

Configuration

Precedence: flag > environment > config file > default.

SettingFlagEnvFile keyDefault
API key--keyAISPACE_KEYkey—
Server--urlAISPACE_URLurlhttps://aispace.sh

AISPACE_AGE_IDENTITY supplies a decryption identity when decrypt --identity-file is omitted. It is deliberately not accepted as a command-line value.

Config file: $XDG_CONFIG_HOME/aispace/config.json (default ~/.config/aispace/config.json), written with mode 0600. A warning is printed if the file is readable by others. AISPACE_CONFIG overrides the path.

Durations (--expires, --link-expires) accept Go syntax plus a d suffix: 30m, 24h, 7d, 1d12h, or a bare number of seconds. Omitting them uses the server defaults (7 days for files, 1 hour for Pro public links).

File permissions and links

File visibility controls authenticated key access. A public link is a separate capability: creating one requires a Pro account and makes that one file available to anyone holding the URL.

File modeWho can access it?File lifetimePublic-link lifetimeDownload capExposure if access leaks
privateUploading key only7 days by default; maximum 7 days on Free or 30 days on ProNoneAccount monthly limitPrivate files belonging to that key, until deletion or expiry
accountEvery active key on the account7 days by default; maximum 7 days on Free or 30 days on ProNoneAccount monthly limitAccount-shared files, until deletion or expiry
private + public linkUploading key and anyone with the URLMaximum 30 days because links require Pro1 hour by default; maximum 30 days and never beyond file expiryOptional per-link capOnly the linked file, until link expiry, revocation, exhaustion, file deletion, or file expiry
account + public linkAccount keys and anyone with the URLMaximum 30 days because links require Pro1 hour by default; maximum 30 days and never beyond file expiryOptional per-link capURL access ends with the link; account keys retain access until file deletion or expiry
Client-encrypted fileVisibility controls ciphertext access; only age identity holders can decrypt itSame limits as the selected file modeSame Pro-only limits when a link is createdOptional per-link capPlaintext exposure requires both the ciphertext and the age identity

Available duration syntax includes 30s, 15m, 1h, 36h, and 7d.

A file becomes unavailable when its file lifetime ends. A link can end sooner because it expired, was revoked, or reached its download cap. Deleting the file immediately ends authenticated key access and every associated public link.

Exit codes

CodeMeaning
0success
1generic error (network, 4xx/5xx not listed below)
2usage error
3authentication (401, or no key configured)
4quota / size (402, 413)
5rate limited (429) — idempotent GETs sleep Retry-After (max 30s) and retry once

Errors go to stderr as error: <message> (<code>); with --json they are a JSON object {"error":{"code","message","status","details","exit_code"}} on stderr instead.

Development

sh
go test -race ./... && go vet ./... && test -z "$(gofmt -l .)"go build -ldflags "-X main.version=0.0.0-dev" -o aispace .(cd npm && npm test && npm pack --dry-run)

The test suite uses local HTTP fixtures and does not require an aispace key. Contributions are welcome—start with CONTRIBUTING.md, check the ROADMAP.md, and review the CHANGELOG.md. Focused bug reports and feature proposals can use the repository's structured issue forms.

Releases are cut through the manual GitHub Actions workflow. GoReleaser builds checksummed macOS, Linux, and Windows binaries, updates the Homebrew tap, publishes @aispace-sh/cli to npm, verifies the installed MCP server on all three platforms, and finally publishes sh.aispace/mcp to the official Registry. See RELEASE.md for publisher configuration, resumable MCP-only publication, and the release checklist.

Security

Please report vulnerabilities privately through GitHub Security Advisories. Do not open a public issue containing a credential, private link, or customer data. See docs/SECURITY.md.

來源:README.md,提交 7a54e28

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分