ente-cli (0.4.34)

Published 2026-09-01 13:42:00 +00:00 by ivo.zilkenat

Installation

registry=https://gitea.i.ivo-zilkenat.de/api/packages/ivo.zilkenat/npm/
npm install ente-cli@0.4.34
"ente-cli": "0.4.34"

About this package

CLI for ente — relationship manager and knowledge graph (Convex backend).

ente CLI

Command-line interface for ente — a relationship manager and knowledge graph (people, orgs, projects, topics and the notes/calls/tasks/conversations logged against them).

TypeScript, built on clipanion, bundled with esbuild into a single self-contained file, published to the Gitea npm registry. It talks to ente's external REST API (/api/external/*) with a static Bearer API key.

Install

npm i -g ente-cli --registry https://gitea.i.ivo-zilkenat.de/api/packages/ivo.zilkenat/npm
# or set the registry once:
npm config set @ivo:registry https://gitea.i.ivo-zilkenat.de/api/packages/ivo.zilkenat/npm

Setup

  1. Generate an API key in the web app: Settings > API Keys > Generate API Key.
  2. Authenticate:
ente auth login --url https://your-deployment.convex.site --key <api-key>

Credentials are stored at ~/.config/ente/config.toml (~/Library/Application Support/ente/config.toml on macOS), 0600. ENTE_API_URL / ENTE_API_KEY override the file.

Usage

ente search "Alice"
ente entity list --type person
ente entity rename "Lorey Georg" "Georg Lorey"
ente task list --due today
ente activity create --type note --title "Meeting notes" --entity "Alice" --space "Personal"
ente activity get <activityId> --json # includes the body, nested agenda, messages/replies, entities, and attachments
ente agenda create-point --meeting <meetingActivityId> --title "Decisions" --content="- Ship the smaller scope"
ente agenda link-task --point <agendaPointId> --task "#12"
ente activity message add <activityId> --content "Decision: ship the smaller scope first."
ente activity content read <activityId> --json
ente activity content edit <activityId> --expected-version 42 --operations-file edits.json --json
ente canvas boards <entityId>
ente canvas html create <boardId> --title "Prototype" --file ./prototype.html --operation-id prototype-v1
ente notification send --subject "Weekly brief" --text "Your brief is ready." --html-file ./brief.html --inline-image chart=./chart.png
ente tasks
ente guide              # concepts; `ente guide <topic>`: entities, tasks, activities, search, patterns, limits

Every command supports --json. Run ente --help or ente <group> --help.

Command groups

Group Commands
auth login, status, logout
entity list, create, get, update (--name, --tag, --description), rename, archive, restore, pin (--role optional), unpin, remove-from-space
activity list, create, search, get, update, delete, restore, message add, attachment upload
agenda create-point, link-task
task list, get, create, update, done, assign, unassign, set-assignees, clear-assignees
pins list
space members
recording list, show, inspect, rerun (admin only)
canvas boards, html list, html get, html create, html update, html delete
notification send (emails only your own Ente account address; optional HTML, image attachments, and CID inline images)
top-level search, ask, query, tasks, guide

Operational recipes (playbooks)

Copy-pasteable, task-oriented recipes live in playbooks/ — log a meeting, rename/merge an entity, work around cross-space linking, etc. Start there for "how do I do X".

Develop in-repo / build

cd cli
pnpm install --ignore-workspace     # standalone (cli/ is not a workspace member)
pnpm dev entity list                # run from source via tsx
pnpm typecheck                      # the build-from-truth gate (tsc --noEmit)
pnpm build                          # → dist/cli.mjs (+ dist/SKILL.md)

Publishing is automatic: a push to main touching cli/** (or the relevant backend surface) bumps the patch version and publishes to Gitea npm — see .github/workflows/publish-cli.yml.

Architecture

core/    brand-neutral: transport (REST/fetch), config, output, errors, update, command base.
ente/    branded: the /api/external client, types, resolve, deadline, formatters, commands/*.
cli.ts   clipanion bootstrap: registers every command group.

The dependency direction is one-way — ente/ imports core/, never the reverse. See CLAUDE.md for the layering rules and conventions.

Dependencies

Development Dependencies

ID Version
@types/node ^22.10.0
clipanion 4.0.0-rc.4
convex ^1.37.0
esbuild 0.27.0
smol-toml ^1.3.1
tsx ^4.21.0
typescript ^6.0.3
Details
npm
2026-09-01 13:42:00 +00:00
2
359 KiB
Assets (1)
Versions (78) View all
0.4.77 2026-10-24
0.4.76 2026-10-23
0.4.75 2026-10-23
0.4.74 2026-10-23
0.4.73 2026-10-22