Official client release · v1.0.0

Standalone CLI Client Guide

Run ComputeFirst tools from your shell or scripts, reading inputs from local files. No key and no sign-up needed, like the rest of ComputeFirst.

Download cli.mjs (13,554 bytes) · SHA256 checksum · Release manifest

1. Overview and prerequisites

The CLI is one standalone ES module (cli.mjs) with no dependencies beyond Node.js built-in modules.

PropertyValue
Current version1.0.0
RuntimeNode.js >= 22.18.0
DependenciesNone: Node.js only
Downloadhttps://computefirst.net/clients/cli/1.0.0/cli.mjs
Checksum filehttps://computefirst.net/clients/cli/1.0.0/SHA256SUMS
SHA256ae25c0c178b81bbaa5f389683eab61369ec6d4b8a6747b0e5f36e2ef03422ce5
File size13,554 bytes
Release manifesthttps://computefirst.net/clients/cli/latest.json

2. Download and verify

Download the client to a file and check its SHA256 before running it. The checksum comes from the same website: it detects changed or incomplete bytes, but it is not an independent signature.

Windows (PowerShell)

# Download the client and its checksum file
Invoke-WebRequest -Uri "https://computefirst.net/clients/cli/1.0.0/cli.mjs" -OutFile "cli.mjs"
Invoke-WebRequest -Uri "https://computefirst.net/clients/cli/1.0.0/SHA256SUMS" -OutFile "SHA256SUMS"

# Verify the SHA256 checksum
$expected = (Get-Content SHA256SUMS | Select-String "cli.mjs").Line.Split(" ")[0]
$actual = (Get-FileHash -Algorithm SHA256 cli.mjs).Hash.ToLowerInvariant()
if ($actual -ne $expected) { throw "Integrity check failed: checksum mismatch!" }
Write-Host "Integrity verified: $actual"

Linux and macOS (curl)

# Download the client and its checksum file
curl -fsSL -O https://computefirst.net/clients/cli/1.0.0/cli.mjs
curl -fsSL -O https://computefirst.net/clients/cli/1.0.0/SHA256SUMS

# Verify the SHA256 checksum
if command -v sha256sum >/dev/null 2>&1; then
  sha256sum -c SHA256SUMS
else
  shasum -a 256 -c SHA256SUMS
fi

3. Quick start and help

node cli.mjs --help

Find a tool for a task

Search accepts exact tool IDs, operation phrases or short English task descriptions. Exact matches come first; other results use English text ranking. A candidate may cover only part of your task, so read its versioned contract before sending data to it.

node cli.mjs search "Please convert CSV into JSON" --base-url https://computefirst.net
node cli.mjs describe csv-to-json 1.0.0 --base-url https://computefirst.net

The CLI returns at most one candidate. For up to five, use GET /v1/tools/search?q=YOUR_ENCODED_QUERY&limit=5. Queries are limited to 256 UTF-8 bytes and 40 distinct terms, and an empty result is a valid answer. Once a tool fits, reuse its ID and version directly.

4. No key needed (an optional key)

Search, contracts and execution all work without a key, within the free daily limits for your network. The CLI sends a key only when the COMPUTEFIRST_API_TOKEN environment variable is set. An optional key gives your own daily allowance, saved tools and history: get one with an email (the MCP tool sign_in or POST /v1/accounts/email, details) or from a passkey profile.

If you use a key, keep it out of typed commands and shell history. Automated agents should use their host's secret configuration.

# PowerShell: enter the key at a masked prompt
$env:COMPUTEFIRST_API_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Agent key' -AsSecureString)).Password
# Bash: enter the key at a hidden prompt
read -r -s -p "Agent key: " COMPUTEFIRST_API_TOKEN
printf '\n'
export COMPUTEFIRST_API_TOKEN
# zsh: enter the key at a hidden prompt
read -r -s 'COMPUTEFIRST_API_TOKEN?Agent key: '
printf '\n'
export COMPUTEFIRST_API_TOKEN

5. Run tools with input files

The CLI defaults to http://127.0.0.1:8787 for local development. For the hosted service, always pass --base-url https://computefirst.net.

--input-file FIELD=PATH reads raw UTF-8 text into a named top-level input field, with no JSON escaping. --output FILE saves the complete result and prints a compact receipt.

Runnable example

Create these small sample files in a new folder. Their contents are sent to ComputeFirst when you run the command.

# PowerShell
Set-Content -Path "left.csv" -Value "id,name,role`n1,Ada,Lead`n2,Lin,Developer" -NoNewline
Set-Content -Path "right.csv" -Value "id,name,role`n1,Ada,Lead`n2,Lin,Senior Developer" -NoNewline
Set-Content -Path "parameters.json" -Value '{"keys":["id"]}'

node cli.mjs run csv-reconcile 1.0.0 --base-url https://computefirst.net `
  --input parameters.json `
  --input-file left=left.csv `
  --input-file right=right.csv `
  --output receipt.json
# Bash or zsh
printf 'id,name,role\n1,Ada,Lead\n2,Lin,Developer\n' > left.csv
printf 'id,name,role\n1,Ada,Lead\n2,Lin,Senior Developer\n' > right.csv
printf '{"keys":["id"]}\n' > parameters.json

node cli.mjs run csv-reconcile 1.0.0 --base-url https://computefirst.net \
  --input parameters.json \
  --input-file left=left.csv \
  --input-file right=right.csv \
  --output receipt.json

Output and receipt

The console prints a compact JSON receipt with output_file (the absolute path) and bytes (the saved size), and execution_ref from the service. With --savings, the receipt also shows the savings status. This example compares two rows on each side: one unchanged and one changed.

6. Limits and privacy