AI・機械学習
AIエージェントと人間向けの安全な一時ファイル共有
Secure temporary file sharing for AI agents and humans (github.com)
要約
aispaceは、AIエージェントと人間が安全かつ一時的にファイルを共有するためのコマンドラインインターフェース(CLI)ツールです。有効期限付きのリンク、予測可能なJSON出力、オプションのローカル暗号化機能を備えています。このツールは、チャットには大きすぎる、構造化されている、または一時的な出力を共有するために設計されており、自動化を容易にするためのスクリプト可能な機能を提供します。
全文翻訳
aispace AIエージェントと人間向けの安全な一時ファイル共有。
有効期限付きリンク、予測可能なJSON、オプションのローカル暗号化を備えたスクリプト可能なCLI。
ウェブサイト · ドキュメント
aispace.shは、チャットには大きすぎる、構造化されている、または一時的な出力を共有するための、ボットフレンドリーなファイルドロップです。
オープンソースクライアントは、意図的に自動化しやすいように設計されています。単一のバイナリ、安定した終了コード、ストリーミングアップロード、および予測可能な最終行に表示される共有URL。
エージェント向けに構築:正確なJSON出力、文書化されたエラー、標準入力サポート、自動化されたフローでのインタラクティブなプロンプトなし。
意図的に短命:ファイル有効期限、個別に有効期限切れになるリンク、取り消し、およびオプションのリンクごとのダウンロードキャップ。
必要に応じてプライベート:認証済みアカウントのハンドオフとローカルage X25519暗号化。復号化IDはaispaceに到達しません。
ホストされているサービスは別途運用されます。
このリポジトリには、クライアント、エージェントスキル、および統合例が含まれています。サーバー、課金システム、デプロイメント構成、または顧客データは含まれていません。
60秒で試す
最新リリースをインストール:
curl -fsSL https://aispace.sh/install.sh | sh
aispaceダッシュボードで作成したキーで認証し、ファイルを保存します:
aispace login --key ask_...
aispace upload report.pdf --json
Proアカウントでは、個別に有効期限切れになる公開ハンドオフを追加します:
aispace upload report.pdf --link --link-expires 1h --max-downloads 1
URLは最後の行に単独で表示されるため、エージェントやシェルスクリプトがキャプチャしやすくなっています。
安定した機械可読応答のために --json を追加します。
短縮された応答は次のようになります:
{"file":{"id":"...","name":"report.pdf"},"link":{"url":"https://aispace.sh/d/...","expires_at":1757003600}}
その他のインストールチャネル:
npm install -g @aispace-sh/cli
brew install aispace-sh/tap/aispace
go install github.com/aispace-sh/aispace-client@latest
シェルインストーラーをAISPACE_VERSION=v1.2.3でピン留めします。
リリースバイナリは、macOS、Linux、およびWindows(amd64およびarm64)をサポートしています。
シェルインストーラーはmacOSとLinuxをサポートしています。Windowsではnpmを使用してください。
Grok Botを使用していますか?
Grok Botに、aispaceを使用してファイルを高速かつボットフレンドリーに共有する方法を提供します。
aispaceボットをGrok Botに追加 →
エージェントにaispaceを渡す
リポジトリには、再利用可能なCodex互換スキルが含まれています。
リポジトリをクローンし、スキルを個人のCodexスキルディレクトリにリンクします:
git clone https://github.com/aispace-sh/aispace-client.git
mkdir -p ~/.codex/skills
ln -s "$PWD/aispace-client/skills/aispace" ~/.codex/skills/aispace
Codexを再起動し、レポート、アーカイブ、画像、またはその他の生成された成果物が必要なときにaispaceを使用するように依頼します。
スキルは、公開リンクを要求しない限り、デフォルトでアカウントプライベートストレージを使用し、短い有効期限を優先し、暗号化IDを資格情報として扱います。
カスタムエージェントランタイムの場合、docs/LLM_USAGE.mdには、システムプロンプトスニペット、OpenAI/Anthropic互換ツールスキーマ、および参照Pythonハンドラーが含まれています。
実行可能なシェル、CI、および暗号化ハンドオフレシピの例を参照してください。
一般的なワークフロー
標準入力からテキストをアップロードし、有効期限付きの公開リンクを返します(Pro)。
echo "hello" | aispace upload - --name note.txt --link --link-expires 1h
このキーのみが利用できるようにファイルを保持します。
aispace upload secret.txt --private
暗号化されたテキストを共有します。生成されたage IDはローカルに保持します。
aispace upload secret.pdf --encrypt --identity-out secret.agekey --link
同じアカウントの別のキーへの認証済みハンドオフ。公開URLはありません。
aispace upload notes.md --shared --json
受信、管理、取り消し。
aispace ls --json
aispace download <file_id> --output ./file
aispace download <file_id> --output ./file --verify # 記録されたSHA-256を確認
aispace link <file_id> --expires 30m --max-downloads 1
aispace revoke <link_id>
aispace rm <file_id>
完全なコマンドリファレンスはdocs/CLI.mdにあり、HTTP契約はdocs/API.mdにあります。
uploadは --name, --expires, --content-type, --sha256, --link, --link-expires, --max-downloads, --private, --shared, --encrypt, --recipient, --identity-out を受け入れます。
アップロードはディスクからストリーミングされます。
暗号化されたアップロードは、ローカルでage X25519を使用し、暗号化されたテキストを <name>.age として保存します。秘密のIDはAPIに送信されません。
--json を使用すると、エラーも構造化されたまま stderr に書き込まれます。
upload --link --json は {"file": File, "link": ShareLink} を返します。暗号化されたアップロードは "encryption" オブジェクトを追加します。
設定の優先順位:フラグ > 環境変数 > 設定ファイル > デフォルト。
設定項目 | フラグ | 環境変数 | ファイル | デフォルト
---|---|---|---|---
APIキー | --key | AISPACE_KEY | key | —
サーバーURL | --url | AISPACE_URL | url | https://aispace.sh
AISPACE_AGE_IDENTITY は、--identity-file が省略された場合に復号化IDを提供します。コマンドライン値としては意図的に受け付けられません。
設定ファイル:$XDG_CONFIG_HOME/aispace/config.json(デフォルトは~/.config/aispace/config.json)、モード0600で書き込まれます。
ファイルが他のユーザーに読み取り可能である場合、警告が表示されます。
AISPACE_CONFIG はパスをオーバーライドします。
期間(--expires, --link-expires)は、Go構文に 'd' サフィックスを追加したものを受け入れます:30m, 24h, 7d, 1d12h、または秒数のみ。
省略すると、サーバーのデフォルト(ファイルは7日間、リンクは1時間)が使用されます。
ファイル権限とリンク
ファイル可視性により、認証済みキーアクセスが制御されます。
公開リンクは別の機能です。作成するにはProアカウントが必要で、そのファイルはURLを持つ誰でも利用可能になります。
ファイルモード | アクセスできるユーザー | ファイルの有効期限 | 公開リンクの有効期限 | ダウンロードキャップ | アクセス漏洩時の露出
---|---|---|---|---|---
プライベート | アップロードしたキーのみ | デフォルト7日間。無料では最大7日間、Proでは最大30日間 | なし | なし | アカウント月間制限
アカウント共有 | アカウントのすべてのアクティブなキー | ファイル削除または有効期限切れまで | デフォルト7日間。無料では最大7日間、Proでは最大30日間 | なし | アカウント月間制限
公開リンク付き | アップロードしたキーとURLを持つすべての人 | ファイル削除または有効期限切れまで | Proが必要なため最大30日間 | デフォルト1時間。最大30日間、ファイル有効期限を超えない | リンク有効期限、取り消し、キャップ到達、ファイル削除、またはファイル有効期限まで
クライアント暗号化 | キーとURLを持つすべての人 | (リンクが作成された場合、Proのみの制限と同じ) | (リンクが作成された場合、Proのみの制限と同じ) | オプションのリンクごとのキャップ | 暗号化されたテキストとage IDの両方が必要
同じ制限が選択されたファイルモードに適用されます。
公開リンクが作成された場合、URLアクセスはリンクとともに終了します。アカウントキーは、ファイル削除または有効期限切れまでアクセスを保持します。
プレーンテキストの公開には、暗号化されたテキストとage IDの両方が必要です。
利用可能な期間構文には、30秒、15分、1時間、36時間、7日間が含まれます。
ファイルの有効期限が切れると、ファイルは利用できなくなります。
リンクは、有効期限切れ、取り消し、またはダウンロードキャップに達したために早く終了する場合があります。
ファイルを削除すると、認証済みキーアクセスとすべての関連公開リンクが直ちに終了します。
終了コード
コード | 意味
---|---
0 | 成功
1 | 一般エラー(ネットワーク、以下にリストされていない4xx/5xx)
2 | 使用法エラー
3 | 認証(401、または設定されたキーなし)
4 | クォータ / サイズ(402, 413)
5 | レート制限(429)—冪等GETはRetry-After(最大30秒)で、一度だけリトライします。
エラーは stderr に error: <message> (<code>) として出力されます。--json を使用すると、stderr に JSON オブジェクト {"error":{"code","message","status","details","exit_code"}} として出力されます。
開発
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)
テストスイートはローカルHTTPフィクスチャを使用し、aispaceキーは必要ありません。
コントリビューションは歓迎します。CONTRIBUTING.mdから始め、ROADMAP.mdを確認し、CHANGELOG.mdをレビューしてください。
集中的なバグレポートと機能提案には、リポジトリの構造化されたイシューフォームを使用できます。
リリースは手動のGitHub Actionsワークフローを通じてカットされます。
GoReleaserは、チェックサム付きのmacOS、Linux、Windowsバイナリをビルドし、Homebrewタップを更新し、@aispace-sh/cliをnpmに公開します。
パブリッシャー構成とリリースチェックリストについては、RELEASE.mdを参照してください。
セキュリティ
脆弱性はGitHub Security Advisoriesを通じてプライベートに報告してください。