Skip to content

Command Line

TIP

Looking for every flag at a glance? See the CLI Reference for a flat list of all commands, flags, and positionals.

The memry CLI ships with the desktop app. Enable it from Settings → Command Line to install the terminal command for your operating system. The generated command launches memrynote in headless CLI mode and exits without opening the desktop window.

Choose a Default vault in the same settings screen. After that, normal commands use that vault automatically:

bash
memry --json vault status

For multiple-vault workflows, --vault <path> is still available as a per-command override. You can also switch the CLI default from the terminal:

bash
memry vault list
memry vault current
memry vault use work
memry --vault ~/OtherVault notes list

Use --json when another script should consume the output. Without it, commands print a human-readable representation of the same result.

The desktop app installs a small memry launcher into a user-level PATH location. If your terminal was already open, reopen it before running the command.

If memry opens a generic Electron window or says Electron cannot find an app path, reinstall the command from Settings → Command Line. memrynote treats older generated launchers as stale so the settings switch can replace them with the current launcher. It only replaces launchers generated by memrynote; if another memry command already exists in that location, setup stops instead of overwriting it.

Vault

bash
memry vault init
memry vault status
memry vault config
memry vault update-config '{"excludePatterns":[".git","tmp"]}'

vault init creates the .memry folder, default note/journal/attachment folders, and the local SQLite databases if they do not already exist.

Notes and Folders

bash
memry notes create "Draft" --content "First line" --folder Projects --tag writing --properties '{"status":"draft"}'
memry notes list --folder Projects
memry notes get note_abc123
memry notes exists note_abc123
memry notes preview "Draft"
memry notes resolve "Draft"
memry notes links note_abc123
memry notes update note_abc123 --append "More text" --properties '{"status":"active"}'
memry notes rename note_abc123 "Final Draft"
memry notes move note_abc123 Archive
memry notes set-local-only note_abc123 true
memry notes local-only-count
memry notes delete note_abc123 --yes
memry notes snapshot note_abc123 --force
memry notes versions note_abc123
memry notes version snapshot_abc123
memry notes restore-version snapshot_abc123
memry notes delete-version snapshot_abc123 --yes
memry notes attach note_abc123 ~/Downloads/mockup.png
memry notes attachments note_abc123
memry notes delete-attachment note_abc123 file_abc123-mockup.png --yes
memry notes import-files ~/Downloads/spec.md ~/Downloads/diagram.pdf --folder Projects
memry notes export-html note_abc123 ~/Desktop/note.html
memry notes export-pdf note_abc123 ~/Desktop/note.pdf --page-size A4
memry notes export-markdown note_abc123 ~/Desktop/note.md

memry folders list
memry folders create Projects
memry folders rename Projects Archive/Projects
memry folders delete Archive/Projects --yes

Destructive commands require --yes. Note snapshots use the same version-history storage as the desktop app. Restoring a snapshot creates a backup snapshot of the current note first. Attachment commands write into the vault attachment folder. import-files copies supported markdown, PDF, image, audio, and video files into the notes folder; imported markdown is indexed immediately for follow-up CLI commands.

Properties and Folder Views

bash
memry properties get note_abc123
memry properties set note_abc123 '{"status":"active","priority":3}'
memry properties rename note_abc123 status state
memry properties definitions
memry properties define mood select --options '[{"value":"Focused","color":"emerald"}]' --default '"Focused"'
memry properties update-definition mood --options '[{"value":"Calm","color":"sky"}]'
memry properties delete-definition mood --yes

memry folder-view config Projects
memry folder-view set-config Projects '{"formulas":{"score":"priority * 2"}}'
memry folder-view views Projects
memry folder-view set-view Projects '{"name":"Table","type":"table","default":true,"columns":[{"id":"title"},{"id":"state"}]}'
memry folder-view delete-view Projects Table
memry folder-view list Projects
memry folder-view properties Projects
memry folder-view suggestions note_abc123
memry folder-view exists Projects

Per-note properties are stored in note frontmatter. Property definitions are stored in the local database, and select-style definitions are also mirrored to .memry/properties.md for desktop compatibility. Folder view configuration is stored in the same .folder.md files used by the desktop Folder View. Folder suggestions are deterministic local suggestions from existing vault folders; AI similarity suggestions still require the desktop runtime.

Journal

bash
memry journal get 2026-05-13
memry journal write 2026-05-13 "Today..."
memry journal append 2026-05-13 "Follow-up line"
memry journal month 2026 5
memry journal heatmap 2026
memry journal stats 2026
memry journal context 2026-05-13
memry journal tags
memry journal streak
memry journal delete 2026-05-13 --yes

Journal entries are stored in the vault's configured journal folder and use the same note metadata store as the desktop app. Journal context returns local due tasks plus overdue count; event context still requires the desktop calendar runtime. Journal tags are counted from journal-entry tags.

Tasks and Projects

bash
memry tasks create "Follow up" --priority 2 --due 2026-05-20 --tag work --link-note note_abc123
memry tasks create "Daily review" --repeat '{"frequency":"daily","interval":1,"endType":"never","createdAt":"2026-05-13T00:00:00.000Z"}' --repeat-from due
memry tasks list --completed
memry tasks list --project project_abc123 --status status_abc123 --tag work --search follow --sort-by dueDate
memry tasks get task_abc123
memry tasks update task_abc123 --title "Follow up with design" --source-note note_abc123
memry tasks move task_abc123 --project project_abc123 --status status_abc123 --position 0
memry tasks get-subtasks task_abc123
memry tasks get-linked-tasks note_abc123
memry tasks today
memry tasks upcoming --days 14
memry tasks overdue
memry tasks stats
memry tasks tags
memry tasks convert-to-subtask task_abc123 parent_task_abc123
memry tasks convert-to-task task_abc123
memry tasks done task_abc123
memry tasks reopen task_abc123
memry tasks archive task_abc123
memry tasks unarchive task_abc123
memry tasks duplicate task_abc123
memry tasks bulk-done task_abc123 task_def456
memry tasks bulk-archive task_abc123 task_def456
memry tasks bulk-move task_abc123 task_def456 --project project_abc123
memry tasks bulk-delete task_abc123 task_def456 --yes
memry tasks reorder task_abc123 task_def456 --position 0 --position 1
memry tasks delete task_abc123 --yes

memry projects list
memry projects get project_abc123
memry projects create "Launch" --color "#0ea5e9" --icon rocket
memry projects update project_abc123 --name "Launch Plan"
memry projects archive project_abc123
memry projects unarchive project_abc123
memry projects delete project_abc123 --yes
memry projects reorder project_abc123 project_def456 --position 0 --position 1
memry projects statuses project_abc123
memry projects status-create project_abc123 Review --color "#0ea5e9"
memry projects status-update status_abc123 --name Reviewed --done true
memry projects status-delete status_abc123 --yes
memry projects status-reorder status_abc123 status_def456 --position 0 --position 1

Tasks default to the Inbox project unless --project <id> is provided. Use repeated --tag and --link-note flags to set multiple tags or linked notes; pass null to --repeat, --repeat-from, --source-note, --status, or --parent to clear those fields.

bash
memry inbox capture "Remember this" --title "Quick capture" --tag cli
memry inbox capture-link https://example.com/articles/memry-cli --tag reading
memry inbox capture-file ~/Downloads/brief.pdf --mime application/pdf --tag pdf
memry inbox get inbox_abc123
memry inbox list
memry inbox list --include-snoozed
memry inbox tags
memry inbox stats
memry inbox patterns
memry inbox archived --limit 20
memry inbox filing-history --limit 10
memry inbox stale-threshold
memry inbox set-stale-threshold 14
memry inbox update inbox_abc123 --title "Updated"
memry inbox add-tag inbox_abc123 follow-up
memry inbox remove-tag inbox_abc123 follow-up
memry inbox mark-viewed inbox_abc123
memry inbox convert-note inbox_abc123
memry inbox convert-task inbox_abc123
memry inbox link-note inbox_abc123 note_abc123 --tag linked
memry inbox snooze inbox_abc123 --until 2026-05-20T09:00:00.000Z --reason "Later"
memry inbox snoozed
memry inbox unsnooze inbox_abc123
memry inbox bulk-tag inbox_a inbox_b --tag batch
memry inbox bulk-snooze inbox_a inbox_b --until 2026-05-22T09:00:00.000Z
memry inbox bulk-archive inbox_a inbox_b
memry inbox archive inbox_abc123
memry inbox unarchive inbox_abc123
memry inbox delete inbox_abc123 --yes

memry search "launch"
memry search stats
memry search tags
memry search reasons
memry search add-reason note_abc123 note "Launch note" "launch"
memry search clear-reasons
memry search rebuild-index

Search returns matching notes, journal entries, tasks, inbox items, reminders, templates, and calendar events. Search utility commands expose the same search metadata surfaces the desktop app uses for indexed counts, recent search reasons, and all known tags. Inbox list output hides archived and snoozed items by default, matching the desktop inbox. Use --archived to include archived items and --include-snoozed to include snoozed items. Capture, tag, archive, snooze, convert, and link commands update the same local inbox, note, and task tables/files as the desktop app. inbox patterns returns the desktop inbox-health capture heatmap, type distribution, top domains, and top tags from local data. File capture copies supported image, PDF, audio, and video files into attachments/inbox/<item-id>/. Link metadata scraping, thumbnail/OCR generation, transcription, metadata retry, link preview, filing suggestions, and calendar/source sync effects stay in the desktop runtime.

Graph

bash
memry graph data
memry graph local note_abc123 --depth 2

Graph commands return note, journal, task, project, and wikilink nodes/edges as JSON. Unresolved wikilinks are returned as ghost nodes.

Tags

bash
memry tags list
memry tags notes work
memry tags color work --color "#123456"
memry tags rename work projects
memry tags remove-from-note note_abc123 projects
memry tags merge old-tag projects
memry tags delete projects --yes

Tag commands update the same note frontmatter, task tags, inbox tags, and tag definition colors used by the desktop app. tags notes resolves local note matches; desktop-only tag pin/unpin state is not changed by the CLI.

Reminders

bash
memry reminders create note note_abc123 --at 2026-05-20T09:00:00.000Z --title "Review"
memry reminders update reminder_abc123 --at 2026-05-21T09:00:00.000Z --title "Review again"
memry reminders list --status pending --from 2026-05-20T00:00:00.000Z
memry reminders for-target note note_abc123
memry reminders due
memry reminders upcoming --days 14
memry reminders snooze reminder_abc123 --until 2026-05-21T09:00:00.000Z
memry reminders dismiss reminder_abc123
memry reminders count-pending
memry reminders bulk-dismiss reminder_a reminder_b
memry reminders delete reminder_abc123 --yes

Reminder targets can be note, journal, or highlight. Highlight reminders also accept --highlight-text, --highlight-start, and --highlight-end. Reminder update, target lookup, count, snooze, dismiss, and bulk-dismiss commands write to the same local reminders table used by the desktop scheduler; desktop notifications, triggered reminder inbox creation, and calendar sync side effects still require the Electron runtime.

Settings

bash
memry settings list
memry settings groups
memry settings group general
memry settings set-group general '{"theme":"dark","language":"tr"}'
memry settings set-group journal '{"defaultTemplate":"Daily Review","showSchedule":false}'
memry settings set-group tabs '{"restoreSessionOnStart":false,"tabCloseButton":"active"}'
memry settings set-group noteEditor '{"toolbarMode":"sticky"}'
memry settings group voiceTranscription
memry settings set-group voiceTranscription '{"provider":"openai"}'
memry settings ai
memry settings set-ai false
memry settings get editor.spellcheck
memry settings set editor.spellcheck true
memry settings delete editor.spellcheck --yes

Settings values are stored in the vault data database and parsed as JSON-compatible CLI values where possible. settings group reads the same settings groups used by the desktop app and merges stored values with app defaults. Supported groups are general, editor, tasks, keyboard, sync, backup, graph, calendar, calendar.google, voiceTranscription, journal, tabs, and noteEditor. AI settings currently mirror the desktop app's local embedding toggle stored at ai.enabled; model load, reindexing, voice model status/download, voice recording readiness, and OpenAI voice API key storage remain desktop-runtime or keychain operations.

Locale

bash
memry locale list
memry locale get
memry locale set tr

Locale commands use the same supported language list as the desktop app. locale set validates the locale, updates general.language, and mirrors it into .memry/config.json preferences so the Electron app can pick it up on boot. Runtime language switching for open Electron windows still belongs to the desktop app.

Sync Diagnostics

bash
memry sync status
memry sync queue-size
memry sync history --limit 20
memry sync devices
memry sync storage
memry sync quarantine
memry sync check-device
memry sync pause
memry sync resume
memry sync settings
memry sync update-setting sync.autoSync false

These commands inspect or update local sync metadata in the vault. Storage is local vault byte usage with limit: 0; remote quota requires authenticated desktop sync. Device-status checks return the local diagnostic shape, but server revocation checks, account setup, device linking, provider OAuth, and live push/pull still require the desktop runtime.

Agent Diagnostics

bash
memry agent backends
memry agent models --backend codex_cli
memry agent local-settings
memry agent set-local-settings --preset lm_studio --model qwen
memry agent set-local-settings --preset custom --base-url http://localhost:9999/v1

Agent commands cover local diagnostics and settings that can run without Electron. agent backends probes local claude and codex binaries with --version, agent models returns the desktop Agent Chat model presets, and agent local-settings reads or updates local OpenAI-compatible provider settings in the vault. Chat turns, conversation storage, tool approvals, MCP server lifecycle, provider connection tests, and live local-model discovery still require the desktop Agent runtime.

Templates

bash
memry templates list
memry templates create "Meeting Notes" --content "## Agenda" --tag meeting
memry templates get template_abc123
memry templates update template_abc123 --name "Weekly Meeting" --content "## Notes"
memry templates duplicate template_abc123 "Meeting Copy"
memry templates delete template_abc123 --yes

Templates are stored as markdown files in .memry/templates, matching the desktop template storage model.

Bookmarks

bash
memry bookmarks list
memry bookmarks list --type note
memry bookmarks list-by-type note
memry bookmarks get bookmark_abc123
memry bookmarks get-by-item note note_abc123
memry bookmarks add note note_abc123
memry bookmarks toggle note note_abc123
memry bookmarks has note note_abc123
memry bookmarks remove note note_abc123
memry bookmarks delete bookmark_abc123 --yes
memry bookmarks reorder bookmark_2 bookmark_1
memry bookmarks bulk-create '[{"itemType":"note","itemId":"note_abc123"}]'
memry bookmarks bulk-delete bookmark_abc123 bookmark_def456

Bookmarks use the same polymorphic item type and item id records as the desktop sidebar. Bulk create/delete commands operate on the local bookmark table; desktop bookmark list item title resolution still happens in the Electron renderer/main process.

Saved Filters

bash
memry saved-filters list
memry saved-filters create "Urgent" --config '{"priorities":[4]}'
memry saved-filters get filter_abc123
memry saved-filters update filter_abc123 --name "Urgent Work"
memry saved-filters reorder filter_b filter_a --position 0 --position 1
memry saved-filters delete filter_abc123 --yes

Filter config is parsed as JSON, so shell quoting matters for objects and arrays. Reorder writes the same saved-filter positions used by the desktop task sidebar.

Calendar Events

bash
memry calendar events create "Customer call" --start 2026-05-20T09:00:00.000Z --end 2026-05-20T09:30:00.000Z
memry calendar events list
memry calendar events list --start 2026-05-20T00:00:00.000Z --end 2026-05-21T00:00:00.000Z
memry calendar events get calendar_abc123
memry calendar events update calendar_abc123 --location "Desk"
memry calendar events delete calendar_abc123 --yes
memry calendar range --start 2026-05-20T00:00:00.000Z --end 2026-05-21T00:00:00.000Z
memry calendar sources --provider google
memry calendar provider-status --provider google
memry calendar google-settings
memry calendar set-default-google-calendar work-calendar --mark-onboarding false
memry calendar external list --source calendar_source_abc123
memry calendar external get external_event_abc123
memry calendar external promote external_event_abc123
memry calendar bindings list --provider google
memry calendar bindings get binding_abc123

Local calendar event commands write to the same calendar_events table used by the desktop calendar. calendar range returns the desktop calendar projection shape for local events, due tasks, reminders, snoozed inbox items, and selected external events. Calendar source, Google settings, external-event, and binding commands inspect or update local provider metadata created by desktop sync. calendar external promote converts a synced external event mirror into a local editable event and archives the mirror, matching the desktop promotion behavior. Provider connection, OAuth, remote calendar listing, refresh flows, retry sync, and push/pull execution stay in the desktop runtime.

Released under the GNU GPL v3.0.