Skip to main content

aeris

The command-line client for aeris, a personal notes app used by humans (a web UI) and AI agents (this CLI). It talks to an aeris server over HTTP; it never touches the database.

Install

uv tool install aeris

Configure

Point the CLI at your server with a URL and a token's secret, either as environment variables (handy in agent sandboxes):

export AERIS_URL=https://your-aeris.vercel.app
export AERIS_TOKEN=your-secret

or in ~/.aeris.yaml (another file can be named with AERIS_CONFIG_PATH):

url: https://your-aeris.vercel.app
token: your-secret

Environment variables win over the file.

Use

aeris list [--limit 30] [--last "2 days"] [--tag T] [--order created|updated]
aeris show ID [ID...]
aeris search WORDS... [--tag T] [--limit 30]     # phrase search, ignoring case and accents
aeris ask WORDS... [--tag T] [--limit 10]        # closest notes in meaning, with scores
aeris tags
aeris add [-m TEXT]                              # else piped stdin, else your editor
aeris edit ID                                    # in your editor
aeris edit ID --stdin [--expected-updated-at T]  # from stdin, for scripts and agents
aeris delete ID
aeris export [PATH | -] [--force]                # every note as JSON Lines: a backup

ask ranks notes by semantic similarity (cosine, higher is closer). Scores are relative: a good match often scores only 0.3–0.5, so compare results with each other rather than with a fixed bar.

Tags come from lines like Tags: #project/aeris, #ideas in a note. The editor is $VISUAL, else $EDITOR, else vi; it only opens in an interactive terminal.

For agents and scripts

  • Add --json to any command (except export) to get the server's JSON.
  • Exit codes: 0 success, 1 error, 2 usage error.
  • With --json, errors are JSON on stdout: {"error": ..., "status": ...}. An edit conflict (409) also carries current, the note's latest version.
  • To change a note safely, read its updated_at with show --json, then edit --stdin --expected-updated-at that value: the edit fails instead of overwriting someone else's change.

Agent skill

skill/SKILL.md teaches an agent to read your notes with this CLI: which search to use, fetching notes, citing note IDs. It's read-only: agents don't add, edit or delete notes. Give them a read-only token (name:ro:secret on the server), e.g. in ~/.aeris.yaml, and keep your read-write one in another file that you name with AERIS_CONFIG_PATH. For Claude Code, put the skill folder in your skills directory, e.g. from a clone of the repo:

ln -s "$PWD/cli/skill" ~/.claude/skills/aeris

For other agents, paste its contents into AGENTS.md (without the frontmatter).

Upgrading from 0.4

0.5 talks to the aeris server instead of the database:

  • ~/.aeris.yaml needs url and token instead of database_url.
  • display is now show; list shows the newest notes first.
  • web and reset-db are gone: the web UI is part of the server.

Metadata

Release files for aeris 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aeris 0.8.0
File Size Uploaded
aeris-0.8.0.tar.gz 8.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aeris 0.8.0
File Interpreter ABI Platform
aeris-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.8 kB

Release files / aeris-0.8.0.tar.gz

Download URL aeris-0.8.0.tar.gz
Size 8.7 kB
Tags Source
SHA-256 checksum
How to use checksums
51651870901e889eaef396a8e674100921e97433c5b1faa2d8f0a035890467f1
BLAKE2b-256 checksum
How to use checksums
c5d8cbe162698536618e8442fb33f2f6e5ee91dc0553324bfb7e292ee737dcf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / aeris-0.8.0-py3-none-any.whl

Download URL aeris-0.8.0-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
859ac9c7a867862bb0cd09ab8e2f937f8caaa358c6caeb7d64756b31c0196723
BLAKE2b-256 checksum
How to use checksums
0143c81003d9ed0d832843f014ea7b490cae4aa2ce9f80493e92b1ce2f3a9f2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page