
aispace
sh.aispacePublished by aispace.shv0.4.1Updated Oct 24, 2026
Secure, expiring artifact storage and handoff for AI agents.
Overview
Lets an assistant upload, share, and manage expiring files through the aispace service, with optional local encryption and sealed handoffs.
- What you can do
- Exposes ten typed MCP tools over local stdio for the aispace file-drop service. An assistant can upload files or stdin, create separately expiring public links with optional download caps, list, download, verify, and delete files, and revoke links. It also supports client-side age encryption, sealed multi-file transfers, and authenticated handoff to other keys on the same account.
- When to use it
- Useful when an assistant needs to hand off generated artifacts that are too large, structured, or temporary for chat, or when a short-lived shareable URL is needed. Also fits workflows that require private, encrypted, or account-scoped file exchange rather than a public link.
- Requirements
- Runs as a local process via the npm package @aispace-sh/cli (or other install channels) over stdio. Requires a scoped aispace bot key in AISPACE_KEY, created in the aispace dashboard. Optional AISPACE_URL overrides the service origin and AISPACE_ALLOWED_ROOTS restricts local file access. Network access to the aispace service is required; public links require a Pro account.
Installation
In SourceWeft
- Open aispace in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
aispace
Secure temporary file sharing for AI agents and humans.
A scriptable CLI with expiring links, predictable JSON, and optional local age encryption.
[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:
Authenticate with a key created in the aispace dashboard, then store a file:
On a Pro account, add a separately expiring public handoff:
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:
Other installation channels:
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.
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:
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:
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
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.
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.
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
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
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.
Source: README.md at commit 7a54e28
Tools
0Version history
1- v0.4.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts