Obsidian Text Transformer
Plain notes in, structured Obsidian Markdown out, on a model that runs on your own machine
- Role
- Sole developer: I did the design, implementation, testing and documentation
- Status
- Open source · MIT · 129 stars on GitHub
- Stack
- Python · Ollama · Local LLMs · Markdown
00 · Summary
A Python command-line tool that walks a folder of .txt and .md notes, sends each one to a local language model through Ollama with prompts you define, and writes structured Markdown for Obsidian in a matching folder layout.
01 · The problem
Years of quick notes end up as unstructured text files. Reformatting them by hand is slow, and pasting private notes into a hosted AI service is not something everyone is comfortable with.
02 · The idea
Run the model locally. Ollama serves an open model on your own machine, the tool supplies each note with a prompt you control, and the result is saved as a new Markdown file. No API keys, no account, and the original notes are left untouched.
03 · How it works
- 01
Scan
Walk the folder and keep .txt and .md files within the size limits.
- 02
Confirm
Show which files are eligible, and wait for a go-ahead.
- 03
Transform
Each note and your prompt go to the local model through the Ollama API.
- 04
Save
Markdown in the same folder structure, with a processing log and timings.
04 · The hard part
Making a small local model behave like a tool
Local models differ in what they support. The tool keeps the temperature at zero for repeatable output, lets you raise the context window for long notes, and retries without that option when a model rejects it. Prompts live in a JSON file, so changing the output style needs no code.
05 · What I built
- Folder scan with size limits and an eligibility table before anything runs
- Prompt templates in a JSON file: system, user and example messages
- Ollama chat client with streaming output, timeouts and an extended-context fallback
- Markdown output that mirrors the source folders, with process and error logs
- A setup guide and a video demo
06 · Results
- 129 stars and 10 forks on GitHub (checked 8 October 2026).
- MIT licensed. Works with models Ollama serves locally, such as Gemma 3 or Llama 3.1.
Known limits
A small command-line tool, not an Obsidian plugin. Output quality depends on the model and the prompt, and each run clears the output folder, which the README warns about.
07 · Why it matters
The same pattern suits many businesses: run the model where the data already lives, give it one narrow job and a prompt you control, and keep the originals untouched.