npm.io
0.9.0 • Published 5d agoCLI

neemee-cli

Licence
MIT
Version
0.9.0
Deps
1
Size
75 kB
Vulns
0
Weekly
846

neemee-cli

Command-line client for the Neemee notes API.

Install

npm install -g neemee-cli

Requires Node.js 18+.

Setup

Generate an API key at neemee.app/settings → API Keys (select read and/or write scopes). The CLI looks for a key in this order:

  1. NEEMEE_API_KEY environment variable (recommended for shells/scripts/CI)
  2. ~/.config/neemee/config.json (set via neemee config set-key)

Option 1 — environment variable (add to ~/.zshrc or ~/.bashrc):

export NEEMEE_API_KEY="your-api-key-here"
# Optional: override base URL (default: https://neemee.app)
# export NEEMEE_BASE_URL="http://localhost:3100"

Option 2 — config file:

neemee config set-key <your-api-key>

Then verify:

neemee config whoami

Commands

Notes
neemee notes list [--search <q>] [--notebook <id>] [--limit 20] [--page 1]
neemee notes get <id>
neemee notes create --content "My note content" [--title "Title"] [--url <url>] [--notebook <id>]
neemee notes update <id> --content "Updated content" [--title "..."] [--url <...>] [--notebook <id|none>]
neemee notes delete <id>

Note: notes update requires --content — the REST API treats content as mandatory on PUT even for a title-only edit.

Notebooks
neemee notebooks list [--search <q>] [--limit 20] [--page 1]
neemee notebooks get <id>
neemee notebooks create --name "My notebook" [--description "..."]
neemee notebooks update <id> [--name "..."] [--description "..."]
neemee notebooks delete <id>
Project management

Manage projects, tasks, people, and organizations — and link notes/notebooks to any of them. Read operations need a read scope; create/update/delete need write.

Projects

neemee projects list [--search <q>] [--status ACTIVE|ON_HOLD|COMPLETED|ARCHIVED] [--parent <id>] [--limit 20] [--page 1]
neemee projects get <id>
neemee projects create --name "Q3 Launch" [--description "..."] [--status ON_HOLD] [--parent <projectId>]
neemee projects update <id> [--name "..."] [--description "..."] [--status COMPLETED] [--parent <id>]
neemee projects delete <id>      # subprojects and tasks are detached, not deleted

Tasks

neemee tasks list [--search <q>] [--status TODO|IN_PROGRESS|BLOCKED|DONE|CANCELLED|ARCHIVED] [--project <id>] [--assignee <id>]
neemee tasks get <id>
neemee tasks create --title "Draft spec" [--description "..."] [--status IN_PROGRESS] [--due 2026-07-01] [--project <id>] [--assignee <personId>]
neemee tasks update <id> [--title "..."] [--status DONE] [--due <date>] [--project <id>] [--assignee <id>]
neemee tasks delete <id>

People

neemee people list [--search <q>] [--organization <id>]
neemee people get <id>
neemee people create --name "Ada Lovelace" [--email ada@example.com] [--phone "..."] [--role "Advisor"] [--org <orgId>] [--org "<orgId2>:CTO"]
neemee people update <id> [--name "..."] [--email <...>] [--role "..."] [--org <orgId>:Title] [--clear-orgs]
neemee people delete <id>

--org <orgId[:title]> is repeatable and sets organization affiliations (with an optional per-org title). On update, passing --org replaces all affiliations; use --clear-orgs to remove them all.

Organizations (alias: orgs)

neemee orgs list [--search <q>]
neemee orgs get <id>
neemee orgs create --name "Acme Co" [--description "..."] [--website https://acme.example]
neemee orgs update <id> [--name "..."] [--description "..."] [--website <url>]
neemee orgs delete <id>

Links — attach a note or notebook to a project, task, person, or organization:

neemee links create --target-type PROJECT|TASK|PERSON|ORGANIZATION --target-id <id> (--note <noteId> | --notebook <notebookId>)
neemee links list (--target-type <type> --target-id <id> | --note <noteId> | --notebook <notebookId>)
neemee links delete <linkId>

For update commands, only the flags you pass are changed; pass an empty string (e.g. --website "") to clear an optional field.

Shortcut for notes list --search:

neemee search "<query>"

Searches across content, note title, URL, source domain, notebook name, and frontmatter values. To search notebooks instead, use neemee notebooks list --search "<query>".

Frontmatter format guide
neemee frontmatter-guide [--type basic|research|task|article]

Prints a reference guide with examples for the YAML frontmatter format Neemee uses on notes.

Configuration
neemee config set-key <key>    # Store your API key
neemee config set-url <url>    # Override base URL (default: https://neemee.app)
neemee config show             # Show current config (key masked)
neemee config whoami           # Verify key and show user info

Config is stored at ~/.config/neemee/config.json.

Scopes

API keys have one or more scopes that control access:

Scope Access
read GET endpoints only
write POST, PUT, DELETE + all read operations
admin All operations (future use)

Development

npm install
npm run build
node dist/index.js --help

For local development against a Neemee instance running on a non-default port:

neemee config set-url http://localhost:3100

API Reference

Full REST API documentation: neemee-frontend/docs/api/REST_API.md

License

MIT

Keywords