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 use this CLI well: which search to use, citing note IDs, safe edits, tags. 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.7.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.7.0
File Size Uploaded
aeris-0.7.0.tar.gz 8.3 kB Details

Built distribution (wheel)

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

Total release size: 18.1 kB

Release files / aeris-0.7.0.tar.gz

Download URL aeris-0.7.0.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5acf42f26b05507ca95310f9e061c2eafa125315f414ac37615cd10a9390712d
BLAKE2b-256 checksum
How to use checksums
3fe3a9d02b4a9826b4ec45e6be93e6ce9060bdfb670448b4122687f0d87e1ff0
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 10, 2026.

Transparency log

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

Download URL aeris-0.7.0-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4f349cba41571514f375f9bf7425e7b273e537dc320f04b0a51467bf46dda969
BLAKE2b-256 checksum
How to use checksums
b43f07f36b7cde230c071408a9a937bb1c661cf28f13c5fc31faeac60b9777ce
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 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.0

2 release files

This release

0.7.0 This release

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