Downloads that agents can actually see. Structured events, concurrent, resumable. Works wherever you already are.

$ npm install -g n-get

Agent discovery

Agent card

Publish a standard A2A 1.0 agent card and compatible orchestrators discover and invoke n-get automatically.

# output the card
nget --agent-card

# serve it where orchestrators look
nget --agent-card > /var/www/.well-known/agent.json

Generated live from --capabilities — never drifts from what n-get actually supports.

Primary interface

MCP server

MCP tools for direct agent control. No subprocess spawning, no output parsing.

{
  "mcpServers": {
    "n-get": { "command": "nget-mcp" }
  }
}
ToolWhat it does
download_file Download a single file
batch_download Download multiple URLs concurrently
cancel_session Kill a specific session; others continue
get_session Full current state of one session
get_jobs All active sessions across all processes
set_profile Apply a config profile: fast / secure / bulk / careful
get_history Download history with status and time filters
get_capabilities Full capabilities document
get_instructions AGENTS.md — the complete agent guide
fetch_http HTTP API call (GET/POST/PUT/DELETE/PATCH) without leaving the MCP loop
get_agent_card Agent card — serve at /.well-known/agent.json

Observation

NDJSON events & webhooks

Every download and API call emits a structured JSON line to stdout. Forward all events to any HTTP receiver with --webhook.

$ nget https://example.com/model.bin --agent-id my-agent --webhook https://receiver/events

{"event":"session_start",    "sessionId":"s_abc", "agent":"my-agent"}
{"event":"download_start",   "url":"https://example.com/model.bin"}
{"event":"progress",         "bytes":524288, "total":1048576, "speed":"512KB/s"}
{"event":"checksum_complete", "algorithm":"sha256", "digest":"a3f9..."}
{"event":"download_complete", "path":"./model.bin", "size":1048576}
{"event":"session_end",      "sessionId":"s_abc", "success":1, "errors":0}
EventKey fields
session_start sessionId, agent, pid, startTime
download_queued url
download_start url
progress bytes, total, speed
checksum_start url, algorithm
checksum_complete url, algorithm, digest
download_complete url, path, size
download_error url, error, code
session_end sessionId, success, errors
fetch_start url, method
fetch_complete url, status, latencyMs, contentType
fetch_error url, error, latencyMs
# filter events in a pipeline
nget https://example.com/data.zip | jq 'select(.event == "download_complete")'

# webhook flags
nget --webhook https://receiver/events \
     --webhook-header 'Authorization: Bearer token' \
     --webhook-events download_complete,download_error \
     https://example.com/model.bin

CLI

Quick ref

The CLI runs the same engine as the MCP server. nget --help for all flags. nget instructions for the full agent guide.

# download
nget https://example.com/model.bin -d ./data --agent-id my-agent

# HTTP API call — structured JSON response, same event stream as downloads
nget fetch https://api.example.com/data.json
nget fetch --method POST \
     --header 'Authorization: Bearer $TOKEN' \
     --header 'Content-Type: application/json' \
     --data '{"key":"val"}' https://api.example.com/endpoint

# SFTP
nget sftp://user@host/path/file.tar.gz --ssh-key ~/.ssh/id_ed25519

# signed webhooks — receiver verifies X-NGet-Signature: sha256=<hex>
nget --webhook https://receiver/events --webhook-secret mysecret https://example.com/model.bin

# agent card
nget --agent-card

# self-discovery
nget --capabilities
nget --openapi-spec
nget instructions