ente-cli (0.4.3)
Installation
registry=https://gitea.i.ivo-zilkenat.de/api/packages/ivo.zilkenat/npm/npm install ente-cli@0.4.3"ente-cli": "0.4.3"About this package
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
- Generate an API key in the web app: Settings > API Keys > Generate API Key.
- 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 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, --header-description), rename, archive, restore, pin, unpin, remove-from-space |
activity |
list, create, search, get, update, delete, restore, attachment upload |
task |
list, get, create, update, done, assign, unassign, set-assignees, clear-assignees |
pins |
list |
space |
members |
| 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
Dependencies
| ID | Version |
|---|---|
| convex | ^1.37.0 |
| smol-toml | ^1.3.1 |
Development Dependencies
| ID | Version |
|---|---|
| @types/node | ^22.10.0 |
| clipanion | 4.0.0-rc.4 |
| esbuild | 0.27.0 |
| tsx | ^4.21.0 |
| typescript | ^6.0.3 |