AI Agents in Thymer
AI Agents & CLI for Thymer
thymercli is a small open-source companion app that provides an MCP server for connecting AI agents to Thymer, along with a command-line interface. It runs locally on your machine and connects to Thymer in your browser or the upcoming desktop app, so you can just use it in combination with the existing end-to-end encrypted sync and real-time collaboration of Thymer.
The Model Context Protocol (MCP) is an open standard that lets AI agents interact with apps and services. Connect your favorite agent - like Claude Code, Cursor, Gemini CLI, and others - and give it direct access to your workspace: querying and updating notes, building databases, modifying views, searching across everything, building plugins, changing themes, and navigating the app, all through natural conversation.
It's a CLI and interactive shell. Use thymercli from the command line to search, view pages, manage collections, add journal entries, and more. Or launch it and use the built-in REPL to run commands interactively while the MCP server runs in the background.
And it's optional. MCP is opt-in and disabled by default. If you don't use AI agents, nothing changes. Whether you prefer writing off the grid in a wood cabin or fully embrace our agentic future, you can turn it on or off at any time.
Download Thymer CLI
thymercli is a single binary with no dependencies. Download it for your platform below, or build it from source if you prefer.
What can you ask?
Once connected, your agent should be able to use the MCP tools to interact with pretty much everything in your workspace. Here are some examples of what you might ask:
- "Summarize the tasks I completed last week"
- "My Journal contains a photo of an invoice, what does the text say?"
- "Add a Total column to my CRM that computes Rate × Hours"
- "Create a plugin to add a clock to the statusbar"
- "How many uncompleted tasks are on the page I currently have open?"
- "Drag the top-priority kanban cards to the top of each column."
- "Change to a random theme."
- "Change the banner on next Monday's journal page"
- "Navigate to my note about the latest client project"
- "I want to create a Movies collection. Add a gallery view with movie posters, cover images style. Grab the top 10 movies from IMDB top 250, and create a record for each movie in the new Movies collection. Find the corresponding movie poster and set it as a banner for each movie record."
Your agent figures out which MCP tools to call, combines them as needed, and gets it done.
Malleable Software
AI agents don't just read and write data, they can customize the app itself. Through MCP, agents can create and modify plugins, change themes, set custom CSS, and adjust collection configurations. This way you describe what you want in natural language, and your agent reshapes the app to match.
Want a formula property? A custom view? A statusbar widget? A new color scheme? Just ask. The MCP connection provides agents with a way to write plugin code and see your changes live with hot-reload.
Available MCP Tools
thymercli exposes over 60 MCP tools across every part of Thymer. Your agent discovers these automatically.
General
- get_version — Version info and connected orgs
- list_connected_organizations — Connected organizations
- fetch_markdown_files — Sync & get file path
Workspace & Users
- list_workspaces — Discover workspaces
- get_workspace_info — Workspace details
- list_users — List workspace members
- get_current_user — Current user info
- get_preferences — User preferences
Collections
- list_collections — All collections and views
- get_collection — Collection details
- get_collection_schema — Property definitions
- get_collection_config_json — Raw config
- update_collection_config_json — Update config
- list_collection_views — Views in a collection
- get_collection_view — View configuration
- create_collection — Create collection
- add_property_to_collection — Add a property
- add_view_to_collection — Add a view
Custom Order
- get_custom_order_in_collection_view — Get record order
- set_custom_order_in_collection_view — Move a record
- batch_set_custom_order_in_collection_view — Reorder multiple
Records
- list_records — Records in a collection
- get_record — Record content (markdown or structured)
- get_record_properties — Property values
- query_records — Search & filter records
- create_record — Create a record
- update_record — Update title
- update_record_property — Set a property value
- move_record_to_collection — Move to another collection
- trash_record / untrash_record — Trash & restore
Line Items & Content
- get_line_items — Content blocks in a record
- create_line_item — Add text, task, heading, etc.
- update_line_item — Edit content
- move_line_item — Reposition
- trash_line_item — Delete
- get_task_status / set_task_status — Task states
- insert_markdown — Insert rich markdown content
Journal
- get_journal_page — Get/create journal page
- add_to_journal — Add journal entry
- navigate_to_journal — Open journal page
Search & Links
- search — Full-text search
- get_backlinks — Items linking to a record
Navigation & Panels
- get_open_panels — Currently open panels
- navigate_to_record — Open a record
- navigate_to_collection — Open a collection view
- create_panel / close_panel — Split views
Themes & Appearance
- list_themes / get_theme / set_theme
- set_appearance — Light, dark, or auto
- get_custom_css / set_custom_css
Files & Banners
- upload_file / download_file
- set_record_banner / set_collection_banner
- list_default_banners — Built-in banners
- set_file_property — File/image properties
Plugins
- list_plugins — All plugins in a workspace
- get_plugin_code / update_plugin_code
- get_plugin_json_config / update_plugin_json_config
- update_plugin_css — Update plugin CSS
- preview_plugin — Hot-reload preview
- get_plugin_sdk_documentation — SDK docs
Plugins
- list_plugins — All plugins
- get_plugin_code — Code, CSS & config
- get_plugin_json_config / update_plugin_json_config
- update_plugin_code — Update plugin code
- preview_plugin — Hot-reload preview
- get_plugin_sdk_documentation — SDK docs
Multiple Thymer organizations can connect simultaneously (e.g., personal.thymer.com and work.thymer.com). When multiple organizations are connected, tools accept an organization parameter to target the right one.
Note that when working with multiple workspaces, the workspace you want to work with must be open in your Thymer app (the agent can switch these for you).
Local Markdown Access
thymercli includes a built-in markdown mirror tool that syncs your entire workspace as markdown files to a local directory. This gives agents quick read-only filesystem access to your content, perfect for indexing, grepping, searching, and reading pages directly using command line tools.
Enable it by starting thymercli with --markdown-mirror:
Each workspace gets its own subdirectory. Files include collection properties as YAML frontmatter and agents can easily map files back to records. The sync is incremental: after the initial export, only changed files are transferred.
Agents can call the fetch_markdown_files tool to trigger an immediate sync and discover the file path. This is one-way sync: changes on disk are not synced back to Thymer. Direct edits to markdown files don't carry enough information about intent and structure to reliably sync into outlines and (multiplayer) workspaces. To modify workspace data, agents use the MCP tools instead.
The markdown mirror is still experimental. Not every feature has a good mapping to markdown amd some content like file attachments are not yet included in the export.
Permissions
MCP access is opt-in and granular. In Thymer, open the MCP Settings dialog (from the statusbar or the Command Palette) to configure access per workspace:
- Off (default) — The agent has no access to this workspace. No data is sent.
- Read Only — The agent can read data but cannot create, update, or delete anything.
- Read & Write — Full access to read and modify workspace data.
New workspaces default to Off and you must explicitly grant access before any agent can use them. The list_workspaces tool shows the current access level for each workspace, so agents know what's available to them.
thymercli also works with multiple open tabs of the same Thymer organization. Data operations are handled by a single tab, while UI operations (like navigation or theme changes) are applied across all tabs.
Privacy & Security
thymercli runs entirely on your machine. Your workspace data never passes through Thymer's servers for MCP. Data flows directly between Thymer in your browser, the local CLI, and your AI agent. Thymer's existing end-to-end encryption and sync features are completely unaffected.
thymercli only listens on 127.0.0.1 (localhost), so it is not reachable from other machines on your network, the same trust model as any app reading files on your disk.
Setup Instructions
1. Start thymercli
Download the binary (above) or build from source, then run it:
This starts the MCP server and opens an interactive shell. It starts an MCP server on port 13100 and uses an internal WebSocket on port 13101 to communicate with the Thymer app by default. Use -port to change it. Add -v for verbose logging.
2. Connect Thymer
In Thymer, open the MCP Settings dialog (click the MCP icon in the statusbar, or use the Command Palette with Ctrl/Cmd+P and search for "MCP"). Click Connect, then set the access level for each workspace you want the agent to use.
3. Configure your AI agent
Tell your AI agent where to find the MCP server. The setup depends on which agent you use:
Claude Code
Add via the CLI:
Or add manually to your MCP configuration (~/.claude/settings.json or project .mcp.json):
Gemini CLI
Or add to your settings.json:
Cursor
Open Cursor Settings, go to the MCP section, and add a new server with this configuration:
Or add a .cursor/mcp.json file in your project root with the same configuration.
VS Code (GitHub Copilot)
Press Ctrl/Cmd+Shift+P and search for MCP: Add Server. Select HTTP as the type and enter http://127.0.0.1:13100 as the URL. Or add to your .vscode/mcp.json:
Codex CLI
Or add to ~/.codex/config.toml:
Other agents
Any agent that supports MCP with HTTP transport can connect, including OpenClaw, OpenCode, Claude Desktop, and more. Point it to http://127.0.0.1:13100 as the MCP server URL. Consult your agent's documentation for the specific configuration format.
CLI Reference
thymercli includes a full command-line interface. Run without arguments to start the MCP server and interactive REPL, or use subcommands directly.
Available Commands
Commands that accept content (like plugin update, page markdown, journal add) support piping from stdin:
Global Flags
- --port, -p — Server port (default: 13100)
- --workspace, -w — Workspace GUID or name
- --collection, -c — Collection GUID or name
- --json — Output as JSON. For commands like page show and journal, this switches from rendered markdown to full structured data including line item GUIDs, types, tree structure, meta properties, and file attachment info — details that can't be represented in markdown
- --verbose, -v — Verbose logging
- --no-color — Disable terminal colors
MCP Server Flags
- --markdown-mirror <path> — Mirror workspace content as markdown files to this directory
- --markdown-mirror-interval — Seconds between mirror updates (default: 30)
- --no-repl — Run MCP server without interactive REPL (headless mode)
Alpha Version
thymercli and MCP support are currently in alpha. Things may change, and there might be some rough edges. If you run into bugs or have ideas for improvements, we'd love to hear from you through any of our support channels.