Skip to main content

Lightweight memo CLI tool with SQLite + FTS5

Project description

a-memo

A lightweight memo CLI tool for AI agents with SQLite + FTS5, supporting tags, links, review, and share image generation.

PyPI version GitHub

Install

uv tool install a-memo

PNG share images need the optional Playwright dependency:

uv tool install "a-memo[png]"
uv tool run playwright install chromium

If a-memo is already installed without the PNG extra:

uv tool install --force "a-memo[png]"

pip also works:

pip install a-memo
pip install "a-memo[png]"

Usage

memo add "content" #tag           # add memo
memo list                            # list all memos
memo search "keyword"                # full-text search
memo review --push                    # spaced repetition review
memo image 1                         # generate share image (PNG)
memo link 1 2                        # link two memos
memo backup                          # backup SQLite database
memo export --out memos.json         # export JSON
memo import memos.json               # import JSON
memo flomo-import export.html        # import from flomo

Data

Data stored at ~/.memo/:

  • memo.db - SQLite database
  • images/ - share images
  • history/ - review history
  • backups/ - manual backups

The database uses SQLite PRAGMA user_version migrations. New versions upgrade the schema automatically when memo opens the database.

Backup And Portability

Create a SQLite backup:

memo backup
memo backup --out ~/Desktop/memo.db

Export portable JSON:

memo export --out memos.json

Import JSON into the current database:

memo import memos.json

Replace the current database content with an export. A backup is created first:

memo import memos.json --replace

Reset deletes the data directory and creates a database backup first:

memo reset --force

Options

memo --help              # show all commands
memo --version           # show version
memo list #tag            # filter by tag
memo list --limit 20      # limit results

Share Images

SVG is always available:

memo image 1 --format svg

PNG requires the png extra and a Chromium-compatible browser:

uv tool install "a-memo[png]"
uv tool run playwright install chromium
memo image 1 --format png

If Chrome or Chromium is already installed on the system, memo image can use it directly.

Development

uv sync --extra dev
uv run --extra dev pytest
uv tool run ruff check .
uv tool run ruff format --check .
uv tool run ty check

PNG development needs the optional dependency:

uv sync --extra dev --extra png
uv run playwright install chromium
uv run memo image 1 --format png

Before committing, run the same checks as the git hook:

.githooks/pre-commit

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

a_memo-1.2.0.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

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

a_memo-1.2.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file a_memo-1.2.0.tar.gz.

File metadata

  • Download URL: a_memo-1.2.0.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for a_memo-1.2.0.tar.gz
Algorithm Hash digest
SHA256 ab25b2c83854e3ecc01a6c434feea9a48f21eba47ee885bfd19f3e2e52928ed3
MD5 3c3ffa4f8ed4f895bd95450098964795
BLAKE2b-256 3c5ee86b255e1bb48214f64f90fc798b492c9058ae35926721b6a0a1b5594ca4

See more details on using hashes here.

File details

Details for the file a_memo-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: a_memo-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for a_memo-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16834a484d09399210baa214494faed4ab27032cd77f48840368ec50640f7b3f
MD5 aeeb4b7421f72acdadfe0818a8460daf
BLAKE2b-256 576c303343ff5e1586285021c876af6f0031e0d034e719d7cbb6b0971d52ec6a

See more details on using hashes here.

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