| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
diskd is a small Rust command-line client for diskd platform and Drive APIs. It gives humans, shell scripts, and coding agents a Unix-style interface for listing, reading, searching, uploading, syncing, querying Drive files, managing projects, and reading or updating project sessions through the public apis-service gateway.
The CLI is published as the public diskd-ai/diskd-cli GitHub repository. Release tags build platform archives and SHA-256 checksum files for Linux, macOS, and Windows.
Install the latest release:
curl -fsSL https://raw.githubusercontent.com/diskd-ai/diskd-cli/main/install.sh | shPin a release:
curl -fsSL https://raw.githubusercontent.com/diskd-ai/diskd-cli/main/install.sh | DISKD_VERSION=v0.2.0 shInstall into a custom directory:
curl -fsSL https://raw.githubusercontent.com/diskd-ai/diskd-cli/main/install.sh | DISKD_INSTALL_DIR="$HOME/bin" shThe installer detects your platform, downloads the matching archive from GitHub Releases, verifies the .sha256 file, and installs diskd.
Update an installed binary:
diskd updateNormal human-facing commands check GitHub Releases on startup. When a newer release is available, diskd prints a yellow stderr notice with the update command. Checks are skipped for --json, --quiet, and MCP stdio serving.
Authenticate through the browser:
diskd loginThis opens https://app.iosya.com/oauth-apps, creates diskd CLI credentials from your logged-in browser session, and stores the returned bearer token.
Use the development app host:
diskd login --devAuthenticate with an already-issued bearer token:
diskd login --token "$APIS_ACCESS_TOKEN"Or keep a token only in the environment:
export APIS_ACCESS_TOKEN="..."
export APIS_BASE_URL="https://apis.iosya.com"Check identity metadata decoded from the token:
diskd --json whoamiList projects and select one as the current context:
diskd --json project list
diskd set-context 01PROJECTID
diskd get-contextWork with files under that project:
diskd mkdir docs
diskd upload ./report.pdf --dest docs --force
diskd ls docs
diskd download docs/report.pdf ./report.pdf
diskd grep "payment terms" docs --limit 10 --offset 0
diskd vsearch "contract renewal clauses" docs/report.pdf --limit 5 --offset 0Read project sessions through the Drive Session API:
diskd --json session list
diskd --json session read 01SESSIONID --limit 20
diskd --json session messages 01SESSIONID --limit 20 --before 01MESSAGEIDThe saved project context supplies session scope. You can override it for one command with diskd --project <project-id> --json session .... Public session arguments use project, session, and message IDs; Drive storage paths and inodes remain internal to the API adapter.
Project lifecycle commands follow the platform SDK fields:
diskd --json project list
diskd --json project get <project-id>
diskd --json project create <name> [--description <text>] [--icon <value>] [--icon-color <value>]
diskd --json project update <project-id> [--name <name>] [--description <text>] [--icon <value>] [--icon-color <value>]
diskd --json project delete <project-id> --yesSession mutations consume SDK-compatible JSON documents or message arrays:
diskd --json session save ./session-document.json [--attribute <value>...]
diskd --json session append <session-id> ./messages.json
diskd --json session remove <session-id> <message-id>...
diskd --json session rollback <session-id> <after-message-id>
diskd --json session delete <session-id> --yesProject and session deletion are permanent and require --yes. Local download replacement requires --force.
Global flags must be placed before the subcommand:
diskd --json ls docsdiskd ls [path] [--recursive] [--long] # <DIR>/<FILE>, size, index status, name + display metadata
diskd tree [path] -L 2 -s # Drive tree with depth-limited traversal
diskd glob "**/*.pdf" [--path docs]
diskd grep "exact text" [path...] --limit 10 --offset 0
diskd vsearch "semantic query" [path...] --limit 10 --offset 0
diskd cat path/to/file > local-file
diskd --json download path/to/file ./local-file [--version 3] [--force]
diskd read path/to/file --limit 3 --offset 0
diskd stat path/to/file
diskd biquery "what is the total amount?" sheet.csv
diskd --json database query generic-db "SELECT id, text FROM messages LIMIT 20" --db-type telegram
diskd --json telegram-db query team-chat "SELECT id, text FROM messages LIMIT 20"
diskd --json project list
diskd --json project get 01PROJECTID
diskd --json project create "Project name" --description "Project description"
diskd --json project update 01PROJECTID --name "Renamed project"
diskd --json project delete 01PROJECTID --yes
diskd --project 01PROJECTID --json session list
diskd --project 01PROJECTID --json session read 01SESSIONID --limit 20
diskd --project 01PROJECTID --json session messages 01SESSIONID --limit 20
diskd upload ./file.txt --dest docs --force
diskd sync ./local-folder --dest docs --once
diskd update
diskd mcp serveSee docs/commands.md for the full command reference.
By default, diskd uses $HOME/.diskd/:
$HOME/.diskd/
config.yaml
credentials
You can override the state directory with DISKD_HOME.
Important environment variables:
export APIS_BASE_URL="https://apis.iosya.com"
export APIS_ACCESS_TOKEN="..."
export DISKD_HOME="$HOME/.diskd"
export DISKD_NO_UPDATE_CHECK=1Resolution order is:
CLI flags -> environment -> config files -> built-in defaults
Run the embedded MCP stdio server:
diskd mcp serveWhen launched directly in a terminal, this prints an LLM-agent MCP configuration snippet. When launched by an MCP client over stdio, it starts the server protocol without human text on stdout.
The server exposes these tool names:
tools__ls
tools__read
tools__glob
tools__grep
tools__vsearch
tools__bi_query
See docs/mcp.md for client configuration examples.
cargo test --workspace
cargo clippy --workspace -- -D warningsRelease builds are produced by .github/workflows/release.yml when a v* tag is pushed or when the workflow is run manually.
| Back | FazBrowse Home | New Git URL |