Skip to main content

Tools Reference

EchOS is an agent, not a command-line app. You don’t call tools directly — you just talk to it, and it decides which tools to use. This page tells you what’s possible so you know what to ask for. Tools are split into two groups:
  • Core tools — always available, built into the agent
  • Plugin tools — enabled by config, extend the agent with new capabilities

Core tools

Notes

Create a note

Tool: create_note Save anything as a note — thoughts, research, meeting notes, journal entries, ideas. Notes are stored as Markdown files with YAML frontmatter, indexed for full-text and semantic search.
Supports types: note (default) and journal. You can also provide tags and a category.

Read a note

Tool: get_note Retrieve the full content of a specific note by its ID.

List notes

Tool: list_notes Browse your notes — optionally filtered by type, read status, or date range.

Update a note

Tool: update_note Change the title, content, tags, or category of an existing note.

Delete a note

Tool: delete_note Move a note to the trash. By default, notes are soft-deleted — moved to trash and recoverable for 30 days. Use permanent=true to skip trash and remove immediately.
Trashed notes are automatically purged after 30 days by a background job. Use restore_note or list_trash to manage them.

View version history

Tool: note_history List past versions of a note with timestamps and a summary of what changed. History is created automatically each time a note is updated.
Returns up to 10 revisions by default (max 50). Each entry shows the revision ID, timestamp, title at that point, and a diff summary (content, tags, category, or title changes).

Restore a previous version

Tool: restore_version Revert a note to a past version. The current state is saved as a new revision first, so nothing is lost.
After restore, all indexes (SQLite, LanceDB) are updated with the recovered content.

List trash

Tool: list_trash Show all notes currently in the trash, with deletion date and days until permanent purge.

Restore a note from trash

Tool: restore_note Recover a soft-deleted note from the trash back to its original location.

Search your knowledge

Tool: search_knowledge Find notes by meaning, not just exact words. Uses hybrid search (keyword + semantic vector search) by default, so it finds conceptually related content even when the exact phrasing differs.
Search modes: hybrid (default), keyword, or semantic.
Tool: link_notes Create a bidirectional connection between two notes. Useful for building a knowledge graph.

Explore the knowledge graph

Tool: explore_graph Visualize and analyze the web of connections between your notes. Three modes:
  • around — describe all notes connected to a specific note or topic within N hops (default 2). Useful for discovering what you know about a subject and how ideas are related.
  • export — export the full graph in a machine-readable format: Mermaid diagram, DOT (Graphviz), or JSON (D3/vis.js node-link format).
  • stats — topology overview: total nodes/edges, connected cluster count, most-linked hub notes, and orphan notes (no connections yet).

Find similar notes

Tool: find_similar Given a note ID, finds the most semantically similar notes by comparing embedding vectors. Unlike search_knowledge (which takes a text query), this tool takes an existing note as the reference point and returns nearest neighbors ranked by similarity percentage.
  • Returns similarity as a percentage (0–100%)
  • Highlights shared tags and categories between the reference note and each result
  • Supports type filtering via excludeType to omit certain content types (e.g. reminders)
  • Excludes the reference note itself from results

Categorize a note

Tool: categorize_note Ask the agent to automatically categorize an existing note using AI — assigns a category and tags, and in full mode also generates a summary, key points, and a one-line gist. After categorization, the tool automatically runs suggest_links and includes the top 3 link suggestions in the response.
Modes: lightweight (category + tags only) and full (category + tags + summary + gist + key points).
Tool: suggest_links Find semantically similar notes that could be linked to a given note. Uses vector similarity to surface related content you may want to connect. Suggestions include a similarity score and a brief reason (shared tags, shared category, or semantic similarity). Use link_notes to accept any.
Parameters: noteId (required), limit (default 5, max 20). Excludes notes already linked and notes from the same source URL (split content).

Synthesize notes

Tool: synthesize_notes Combine multiple notes into a new synthesis note. Select source notes by IDs, a search query, or tags. Supports four output formats.
Parameters: title (required), noteIds / query / tags (at least one), format (summary | brief | comparison | timeline, default summary), maxNotes (default 10, max 20). The synthesis note is auto-tagged with synthesis plus all source tags, and bidirectionally linked to every source note.

Mark content status

Tool: mark_content Track whether you’ve read, consumed, or archived a note or saved article.
Statuses: saved (unread, default), read (consumed), archived (hidden from search).

Note Templates

Use templates

Tool: use_template Manage and use note templates to quickly create structured notes. Templates are stored as markdown files with frontmatter in <knowledgeDir>/templates/. Five built-in templates are scaffolded automatically on first use: Meeting Notes, Book Review, Project Brief, Weekly Review, and Decision Log.
Actions:
  • list — Show all available templates with descriptions
  • use — Create a real note from a template, filling in {{placeholder}} variables
  • create — Save a new custom template with placeholder variables
Parameters: action (required), templateName (for use), variables (for use — fills placeholders), title, description, content, category, tags (for create).

Todos & Reminders

EchOS distinguishes two kinds of time-management items stored in the same underlying table: EchOS auto-detects todos: if your message contains first-person intent (“I need to…”, “I should…”, “remember to…”) it will silently capture a todo before responding.

Add a reminder or todo

Tool: add_reminder Use kind="todo" for action items; use kind="reminder" (or omit) for time-based reminders. If the scheduler is enabled, reminders will send a notification when due.

List todos

Tool: list_todos Show your todo list. Returns only todos — never mixes in reminders or notes.

List reminders

Tool: list_reminders See your time-based pending (or completed) reminders.

Complete a reminder or todo

Tool: complete_reminder Mark any reminder or todo as done by id.

Memory

Remember something about you

Tool: remember_about_me Store a fact, preference, or detail about yourself in long-term memory. EchOS will use this in future conversations without you having to repeat it.
Kinds: fact, person, project, expertise, preference.

Recall what EchOS knows about you

Tool: recall_knowledge Ask EchOS to surface everything it remembers about a topic or about you.

Conversation

Save conversation

Tool: save_conversation Save a summary of the current conversation as a note — useful after a productive discussion you want to preserve. EchOS composes the summary itself from the visible conversation context.
EchOS will also proactively offer to save after personally significant exchanges — for example, after you recount a meaningful experience, share an emotional reflection, or make a significant life decision. It will ask first and only save once you confirm. It will not offer for short exchanges, factual queries, URL saves, or content already saved in the same session. Saved conversations are stored as type: conversation, status read, and are fully searchable via search_knowledge.

Export

Export notes or content

Tool: export_notes Export stored notes — or any piece of content, including agent responses and analysis results — as a downloadable file. Delivered directly in Telegram (as a document attachment), the CLI (stdout or --output), or the Web interface (as a download link).
Formats: You can also export arbitrary content — agent responses, analysis results, or anything from the current conversation — by just asking for it.

Reading Queue

Track your reading backlog and understand your reading habits. Works across all saveable content types — articles, YouTube videos, and tweets.

What’s in my reading queue?

Tool: reading_queue Lists your unread saved items (status: saved), sorted by relevance to your recent reading interests. Items whose tags and category match what you’ve been reading recently float to the top; recency acts as a tiebreaker. Filter by content type and set a limit.
Optional filters:
  • typearticle, youtube, or tweet
  • limit — number of items to return (default: 10)
Each result shows the title, type, tags, save date, source URL, and a one-line gist (if the content was auto-categorized).

Reading stats

Tool: reading_stats Shows an overview of your reading progress across all saveable content.
Returns:
  • Overall: total saved / read / archived counts and read-rate percentage
  • Last 7 days: new saves and items read in the past week
  • By type: breakdown for articles, YouTube videos, and tweets
Tip: After discussing or finishing a saved item, tell EchOS — it will call mark_content to update its status to read automatically.

Knowledge stats

Tool: knowledge_stats Shows a comprehensive overview of your entire knowledge base — not just reading queue items, but every note type.
Returns:
  • Total notes with distinct tag and link counts
  • By type: breakdown for note, article, youtube, tweet, journal, image, conversation
  • By status: saved / read / archived / no-status counts
  • Weekly growth: last 8 weeks with sparkline (oldest → newest) and note-per-week counts
  • Activity streaks: current and longest consecutive-week streaks
  • Top 20 tags and top 10 categories by frequency
  • Storage: knowledge files, SQLite database, and vector database sizes
Tip: Use reading_stats for reading-queue progress; use knowledge_stats for a full picture of your collection.

Voice & personality

Set agent voice

Tool: set_agent_voice Change how EchOS talks to you — tone, warmth, verbosity, formality, personality. Takes effect immediately and persists across sessions.
See Writing & Voice for the full guide.

Plugin tools

Plugins extend EchOS with additional capabilities. Enable them via config.

Article plugin

Save a web article

Tool: save_article Fetch any URL, extract the article content (using Mozilla Readability), and save it as a note. Strips ads, navigation, and boilerplate — keeps the actual content.
Optional: autoCategorize (runs AI categorization on save), processingMode (lightweight or full).

Twitter plugin

Save a tweet or thread

Tool: save_tweet Fetch any Twitter/X URL and save the tweet or thread as a note. Uses the free FxTwitter API — no Twitter API key needed. Threads are automatically unrolled into clean article format.
Supported URL formats: twitter.com, x.com, mobile.twitter.com, fxtwitter.com, vxtwitter.com. Saved content includes: tweet text, author, date, engagement stats (likes, retweets, replies, views), media URLs, and quote tweets. Threads (chains of same-author replies) are merged into clean article format. Optional: autoCategorize (default: true — runs AI categorization automatically), processingMode (lightweight or full), tags, category (default: tweets).

YouTube plugin

Save a YouTube video

Tool: save_youtube Extract the transcript from a YouTube video and save it as a note. Great for preserving content from talks, tutorials, and interviews.
Optional: autoCategorize, processingMode.

Image plugin

Save an image

Tool: save_image Save an image to your knowledge base — via URL or by sending the image directly. Extracts metadata (dimensions, format, EXIF data) and optionally runs AI analysis.
On Telegram, you can just send an image and ask EchOS to save it.

Content-creation plugin

Write content in your voice

Tool: create_content Generate long-form content that sounds like you — blog posts, articles, threads, emails, essays, and tutorials. Uses your style profile (built from voice examples you curate) and pulls relevant notes from your knowledge base as context.
Content types: blog_post, article, thread, email, essay, tutorial You can also specify: length, audience, and extra instructions. See Writing & Voice for the full guide.

Analyze your writing style

Tool: analyze_my_style Build a detailed profile of your writing voice from pieces you’ve curated as examples. Run this after you’ve tagged at least 5 notes as voice examples.

View your style profile

Tool: get_style_profile Display your current writing style profile — tone descriptors, vocabulary characteristics, sentence patterns, formality level, and sample paragraphs.

Mark a voice example

Tool: mark_as_voice_example Tag a note as a voice example so it gets included in style analysis. Best with polished, representative writing of 500+ words.

Resurface plugin

Resurface forgotten notes

Tool: get_resurfaced Bring back notes you’ve forgotten about using spaced repetition and on-this-day discovery. Returns 2–3 notes (configurable) with labels showing why each was selected. Updates each note’s last-surfaced timestamp so it won’t repeat within 7 days.
Modes:
  • mix (default) — blend of forgotten notes and on-this-day
  • forgotten — oldest un-surfaced notes first (spaced repetition)
  • on_this_day — notes created on this calendar date in a prior year
  • random — purely random sampling of un-recently-surfaced notes
See the Resurface Plugin for setting up a daily broadcast schedule.

Digest plugin

The digest plugin runs as a scheduled background job (not a direct tool). It generates a summary of recent notes — including a Reading Queue section with your top 3 unread items — and broadcasts it to your configured notification channel (Telegram). Configure it via the scheduler:

Quick reference