Skip to main content

MemoryBot CLI — your personal knowledge graph from the command line

Project description

MemoryBot CLI

Your personal knowledge graph from the command line.

Install

pipx install memorybot

(or pip install memorybot inside a venv).

Quick start

mb login                              # opens browser, OAuth flow
mb memo search "..."                  # full-text + semantic search
mb memo get <SID>                     # fetch a memo by sid
mb run <SID>                          # execute a Python script memo
mb media upload <PATH> [--tag <SID>]  # upload a file (image, PDF, etc.)

--json on the read commands emits machine-readable output for piping into jq.

Uploading files

mb media upload ~/photo.jpg                       # auto-tagged under System > Uploads
mb media upload ~/scan.pdf --tag <leaf-tag-sid>   # attach to a specific tag
mb media upload ~/big.mp4 --json                  # machine-readable response

mb media upload runs a three-step dance: it asks the server for a presigned S3 URL, PUTs the bytes directly to S3 (the MemoryBot server never sees the file body), and finalizes by creating a Media memo. Re-uploading a file you've already uploaded short-circuits at the first step (no PUT, no wasted bandwidth) — the client SHA-256s the file once and the server matches it against existing memos.

Running script memos

mb run <sid> fetches the memo, extracts the first ```python fenced block, and runs the code via uv run --python $(which python3) <tmpfile> with MEMORYBOT_TOKEN and MEMORYBOT_URL set in the env. Stdout and stderr stream live; the script's exit code propagates.

mb run eaQ5a4Hgxl              # run with whatever token the CLI is using
mb run eaQ5a4Hgxl --no-log     # skip writing the run-audit memo

Inside the script, from memorybot.client import Client picks up the env vars set by the runner. Requires uv on PATH.

The CLI does not mint its own per-run token. The script subprocess inherits the same identity (MEMORYBOT_TOKEN) the CLI is using. To get a narrower scope, shorter TTL, or script_sid-bound audit attribution, mint a cli token via the mint_cli_token MCP tool (Claude Desktop / claude.ai) first and set its output as MEMORYBOT_TOKEN before invoking mb run.

Audit trail

After the script exits, mb run posts a memo titled Run of <script-title> — rc=<N> with rc, duration, started_at, and a captured stdout excerpt, plus an instance_of ref pointing to the script. Pass --no-log to skip the memo. If your token was minted with script_sid=<sid>, every API call the script makes is also attributed in server logs.

Configuration

  • MEMORYBOT_URL — server URL (default https://www.memorybot.com).
  • --base-url — per-command override.

Credentials are stored at ~/.config/memorybot/config.json (mode 0600).

Auth

mb login runs the OAuth 2.0 authorization-code flow with PKCE: it registers a client via Dynamic Client Registration (RFC 7591), opens your browser to the authorize endpoint, and captures the callback on a one-shot loopback server. Tokens auto-refresh on 401.

mb logout clears stored credentials.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memorybot-0.9.1.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memorybot-0.9.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file memorybot-0.9.1.tar.gz.

File metadata

  • Download URL: memorybot-0.9.1.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for memorybot-0.9.1.tar.gz
Algorithm Hash digest
SHA256 06f200b4e0a7ea1709fc287cabea0eaaf79b44a7257521eb559f869b327629e4
MD5 109588830c528a3eaafefb1e2d208dbf
BLAKE2b-256 34e6d8ccd7ef5e3a64d3fa568447a5f9e22f01836fec2c6ccc5b31afa6c55c45

See more details on using hashes here.

Provenance

The following attestation bundles were made for memorybot-0.9.1.tar.gz:

Publisher: publish.yml on nolanlove/memorybot-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file memorybot-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: memorybot-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for memorybot-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e4d984ff4c138687a29be4f1d86b401e8181f76df1e535c6d59496f828e440a
MD5 fef93a88d2476115ec44fba8518b1e6b
BLAKE2b-256 8fd66f5217f0baf26ce036d61aeaf7653df6e7bcbc985355d679005ef34d4612

See more details on using hashes here.

Provenance

The following attestation bundles were made for memorybot-0.9.1-py3-none-any.whl:

Publisher: publish.yml on nolanlove/memorybot-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page