Deduplicating lines, extracting every URL, hashing a string, comparing two JSON files — a model can do all of these and will occasionally get one wrong, whereas here they are function calls that return the same answer every time. The find-and-replace flow is the one to adopt as a habit: validate, preview the diff, then execute with the backup written into Notes, so a bad regex is recoverable rather than discovered later. Notes doubles as a place to park work before an edit, which is the reason it exists.
A local text workbench exposed as tools. Transformations, extraction, encoding and analysis run on your machine rather than being reasoned out token by token, and a local notes database gives an agent somewhere durable to put its work.
- A notes store that survives sessions: notes created and searched with FTS5 wildcards, encryption available on input and output, and separate input and output fields on each note
- Regex find and replace as a four-step operation — validate the pattern, preview the diff, execute with an automatic backup into Notes, and recall the previous version if it went wrong
- Text transformation: case conversion, line work including dedup, numbering, reversing and shuffling, whitespace normalisation including tabs and line endings, sorting and wrapping
- Data conversion: JSON and XML prettified, minified, validated or converted; CSV columns extracted, reordered, deleted or transposed; base64, hashing and number-base conversion; and value generation
- Analysis: character, word, line and sentence counts with reading time, word frequency, two lists compared for what is in either or both, and HTML reduced to visible text, links or images
- Specialist extraction of emails, URLs, IPs, phone numbers and dates by regex, escaping and unescaping for JSON, HTML, URL and XML, Markdown stripping and table formatting, and URL parsing
- Semantic diff for structured data — JSON, YAML, ENV, TOML — comparing two versions or performing a three-way merge against a base, ignoring formatting and reporting real changes
- Web search across several engines from one call, including one that needs no key at all, with results written to a file when they are long
- Any URL fetched and converted to clean Markdown, with the main content area extracted
- Text generation through whichever AI provider you have configured, from a list that includes local LM Studio alongside the hosted ones
- A diagnostic call reporting MCP configuration, database paths, which API keys are present, and per-tool latency at p50, p95 and p99, plus a launcher for the desktop GUI
Python 3.8 or newer. Install with pip install pomera-ai-commander or npm install -g pomera-ai-commander, then point the client at the pomera-ai-commander command; the project suggests a 3600-second client timeout so long operations are not cut off. The GUI additionally needs Tkinter, which is a separate package on macOS and Debian. Nothing is required for the text, data and analysis tools. Search keys are optional and per engine — free tiers vary from a keyless engine to 100 a day, 2000 a month, or a fixed total — and generation needs a key for whichever provider you pick. Keys are held encrypted in the local database rather than in a JSON config. Before updating in portable mode, check first: an npm or pip update there deletes user data, which is what the update-safety tool exists to warn about.
One command — uvx pomera-ai-commander
