Notes and files

Import files, write notes about people and messages, and find them again with tags.

This guide explains how WireCat works with notes and files: your agent can search folders of text files and documents, use Obsidian notes, and keep your own notes linked to people or messages. Use it when you want to find information in your files or save context for later.

After following the guide, you will be able to:

  • import folders and search your files with source references;
  • create, edit and export notes about a person or message;
  • organise notes, messages and contacts with tags.

WireCat uses Memo for these tasks. Memo is a tool that runs on your computer to import and search files and keep notes linked to their subjects. Your agent can run its commands for you.

Email has a separate guide: connect and use email. It uses the same Memo installation.

Before you start

Use a local AI agent on the computer where your files are stored. You can start with a folder of notes alone. Email and messenger history are optional; to include messages, connect Telegram or MAX and download the history you need. Memo reads that local history; it does not download it itself.

Install Memo

The easiest way: ask your agent. Copy this request into Claude Code, Codex, Cursor, Gemini CLI or Hermes, as you would when installing Telegram or MAX:

Prompt
Help me install Memo on this computer with npm install -g @leemour/cli-memo.
Check Node.js and npm first and help me set them up if needed.
Read memo --help and https://wirecat.dev/en/docs/memo to learn how to use it.
Check that memo --help works in your terminal, then help me connect a folder I choose.

The agent installs the CLI and checks that the memo command works. Memo itself has no messenger login step; you choose folders and configure mail separately. The browser shows these instructions; installation happens on your computer.

Add your notes

Choose a folder

A folder is a directory on your computer containing files. Memo reads the selected folder and its subfolders, so it can work with ordinary project folders, a folder of notes or an Obsidian vault. You can register more than one folder.

An Obsidian vault is simply a folder of notes that Obsidian opens as one workspace. Its notes are Markdown files; Memo reads those files directly, without requiring Obsidian to be open. You do not need to use Obsidian to use Memo.

Files Memo can read

FilesCommon extensionsWhat to expect
Text and Markdown notes.txt, .md, .markdownReadable text, including Obsidian notes.
Tables and spreadsheets.csv, .tsv, .xlsx, .odsText and cell values, with source locations where available.
Documents, slides and ebooks.odt, .pptx, .epubExtracted readable text, rather than the original layout.
PDF and Word documents.pdf, .docxRequire optional readers: unpdf for PDF and mammoth for DOCX.

A scanned PDF contains page images; it needs text recognition before its contents can be imported. Older .doc and .xls files are not supported; convert them to a supported format. Import reports unreadable files or missing readers rather than silently treating them as searched.

Import the folder you choose

Replace /path/to/notes with the full path to an existing folder on your computer. For ordinary folders, select the Markdown format:

memo folders add /path/to/notes --format markdown
memo notes import --no-embed

For an Obsidian vault, replace /path/to/vault with its folder path and select Obsidian's format:

memo folders add /path/to/vault --format obsidian
memo notes import --no-embed

The format tells Memo how to understand links and tags in your notes. Markdown uses links such as [label](other-note.md); Obsidian also understands [[Note]] links. Obsidian is the default if you omit --format.

Registration prints a folder ID. Import copies readable content into the local store without changing the source files. Hidden folders such as .obsidian are skipped. --no-embed keeps this first import to word search, so you do not need a search model to get started. Repeat memo notes import --no-embed after editing or adding files.

Find something in your files

Tell your agent which topic you want to find:

Prompt
Use Memo to find notes and files about the budget in the folders I imported.
Show the matching text and source file for each useful result. Tell me if any files were not read.

For a manual search:

memo notes search 'budget' --json

The results identify the matching file, a source reference and the first matching line. Open the file to check the detail. If no result appears, try a word you know is in one of your files and inspect the import report; a file that was not imported cannot appear in the search.

Create your own notes

There are two ways a note reaches Memo. Imported notes come from your files; edit the original file and import it again. Your own notes are written in Memo's local store and can be about a person, message, project, task or another note. Creating one does not send anything to a contact or change the message it refers to.

Ask your agent to add a note about the person or message you choose:

Prompt
Save a note in Memo that Rin Example prefers morning meetings and link it to that person.
Show me the saved note and its source reference so I can check it.

For manual use, replace the person and text with yours:

memo notes add 'Prefers morning meetings' --about telegram:'Rin Example' --json
memo notes list --about telegram:'Rin Example' --json

For a note about a message, copy the full source reference from a search or context result. The numbers below are illustrative; replace the whole msg:telegram/1/77/42 reference with yours:

memo notes add 'Check the revised budget' --about 'msg:telegram/1/77/42' --json

One note can have several subjects: repeat --about for each one. Use max:<name or id> or email:<address> for another identity. A stored object can also be named by its person:, entity:, task: or note: reference. The subject must exist in the store; a matching name alone does not establish that two accounts belong to one person.

Read, edit and remove a note

Creation returns a note ID. Replace NOTE_ID with it; the returned revision is the current revision of the note. Read that value before editing and replace 1 below with it:

memo notes show note:NOTE_ID --json
memo notes edit NOTE_ID --revision 1 --text 'Prefers early morning meetings'

The revision check prevents your edit from overwriting a newer one. If it changed, reread the note before editing. If you no longer need a note you created, you can remove it:

memo notes remove NOTE_ID

Export your notes to files

Export writes the notes you created in Memo to a folder you choose:

memo notes export --to /path/to/exported-notes --format markdown

Use --format obsidian for Obsidian files. Exported files carry memo-id and memo-hash metadata so importing that folder does not create duplicate notes. If you edited an exported file yourself, export leaves it alone and reports the conflict.

Tag your sources

A tag is a short label you choose, such as work or follow-up. It helps you find related sources without rewriting them. Ask your agent to tag the exact notes, messages or contacts you choose, then show the labels it saved.

Use IDs and source references returned by your own searches. NOTE_ID, PERSON_UID and FOLDER_ID below are placeholders; the numeric message/contact/account IDs are illustrative.

What to labelCommand
A notememo tags add work --note note:NOTE_ID
A stored messagememo tags add follow-up --message 'msg:telegram/1/77/42'
A contact identity selected through an accountmemo tags add work --contact 101 --provider telegram --account 1
A linked personmemo tags add work --person PERSON_UID
Notes in a subfoldermemo tags add project --folder FOLDER_ID --path Projects

A contact identifies someone in a provider; the account selects the local view used to find them. A person combines the identities you linked explicitly. Obtain the person's identifier (UID) from messages.person.uid in memo context ... --json; see linking identities. A full message reference includes the provider, account, chat and message, so the same numeric ID in another account does not select the same source.

Tags contain 1–32 letters a–z, digits or hyphens; case is ignored. Labels live in the local store and do not change source files, mailbox flags or Gmail labels. File tags are also imported: Obsidian understands inline #tags and the tags: field; the Markdown format uses tags:. In ordinary Markdown, a #word in text is not automatically a tag.

Find and remove labels

memo notes search 'budget' --tag work --json
memo search 'tag:follow-up' --all --json
memo tags list --tag work --json
memo tags remove work --note note:NOTE_ID

The first query searches tagged notes; the second searches stored sources across accounts. Check the source type/account in the result. Removing a label leaves the source intact. Adding an existing label or removing an absent one does not create a second change.

Ask for the context you need

An imported file can be about a person as well as containing their name. Associate it explicitly:

memo note telegram:"Rin Example" /path/to/notes/people/Rin.md
memo notes about telegram:"Rin Example" --json
memo context telegram:"Rin Example" --json

The file must already be imported. Ordinary text mentions do not create a person link. notes about shows related notes; context also gathers stored messages and mail for linked identities. See linking accounts and Email.

Add email

For mail accounts, imports and linking an address to a person, continue with Email.

Check the result

A saved note should have an ID, text and links to the subjects you selected. A tag listing should identify the intended note, message, contact or person. For imported files, open the original to check the text. If a source was not imported or a person link is unresolved, ask the agent to explain the gap rather than treat the result as complete.

If something is missing

If a note or tag is missing, check its exact ID and account. For file notes, inspect the import report and rerun the import after edits. If an edit conflicts, read the current revision before trying again.

Continue with Email to import mail and link addresses to your contacts, or Know your people to connect identities across messengers. For exact Memo options, use memo --help or a subcommand's --help.