Tools Guide

May 28, 2026 ยท View on GitHub

Elroy provides a set of tools that can be launched from the command palette. These tools are organized into the following categories:

Memory Management

Tool/CommandDescription
/create_memoryCreates a new memory for the assistant.
/print_memoryRetrieve and return a memory by its exact name.
/add_memory_to_current_contextAdds memory with the given name to the current conversation context.
/drop_memory_from_current_contextDrops the memory with the given name from current context. Does NOT delete the memory.
/update_outdated_or_incorrect_memoryUpdates an existing memory with new information.
/examine_memoriesSearch through memories for the answer to a question.

Document Management

Tool/CommandDescription
/get_source_content_for_memoryRetrieves content of the source for a memory, by source type and name.
/get_source_documentsGets the list of ingested source documents.
/get_source_doc_metadataGets metadata about a source document including extraction time and available chunks.
/get_document_excerptGets text of document excerpt by address and chunk index (0-indexed). Use get_source_doc_metadata to get available chunk indices.
/search_documentsSearch through document excerpts using semantic similarity.

User Preferences

Tool/CommandDescription
/get_user_full_nameReturns the user's full name.
/set_user_full_nameSets the user's full name.
/get_user_preferred_nameReturns the user's preferred name.
/set_user_preferred_nameSet the user's preferred name. Should predominantly be used relatively early in first conversations, and relatively rarely afterward.

Utility Tools

Tool/CommandDescription
/contemplateContemplate the current context and return a response.
/tail_elroy_logsReturns the last lines of the Elroy logs.
/run_shell_commandRun a shell command and return the output.
/make_coding_editMakes an edit to code using a delegated coding LLM. Requires complete context in the instruction.

Adding Custom Tools

Custom tools can be added by specifying directories or Python files via the --custom-tools-path parameter. Tools should be annotated with either:

  • The @tool decorator from Elroy
  • The langchain @tool decorator

Both decorators are supported and will work identically.

Contrib Tools And Plugins

Elroy also creates and loads an assistant-editable contrib directory at ~/.elroy/contrib by default. Set contrib_tools_path or ELROY_CONTRIB_TOOLS_PATH to override the load path.

Every .py file in that directory, except files whose names start with _, is scanned for:

  • @tool functions, which become assistant tools after restart.
  • A module-level ELROY_PLUGIN = ElroyPlugin(...), which can add a custom sidebar tab in the TUI.

Use /create_contrib_repo to scaffold a standalone contrib repo, or ask the assistant to use edit_contrib_with_codex for the default home contrib repo. The contrib directory is a git repo initialized and managed by Elroy's agent tooling. Use inspect_elroy_with_codex when Codex should inspect the running Elroy code or logs without editing files.