Loader
Reads every file in input/ plus the selected publication template into shared pipeline state.
Nine AI agents turn a rough brief into an .mdx article with charts, diagrams, frontmatter, and an audit trail. The model runs locally through Ollama.

Pressroom takes source material and turns it into an MDX article. Nine agents split the work across loading, interviewing, outlining, visuals, drafting, review, cleanup, metadata, and publishing.
Drop briefs, reports, or JSON data into input/ and the pipeline writes an .mdx file to output/. Charts are rendered, diagrams are drawn, frontmatter is filled in, and the voice pass runs before publication. Every model runs locally through Ollama, so the whole thing works offline with no cloud API keys.
The workflow runs in order. It pauses after the interview agent asks its questions, then collects your answers or accepts the suggested defaults. The reviewer can send a draft back to the writer until it approves the piece or reaches the iteration cap.
Reads every file in input/ plus the selected publication template into shared pipeline state.
Reads the brief and asks a few clarifying questions, without rerunning when a paused pipeline resumes.
Uses the answers to build a section plan and reserve places for charts, diagrams, or UI blocks.
Fills chart templates from extracted data, then asks the model for Mermaid diagrams and UI components when the article needs them.
Writes the MDX draft from the outline and revises it whenever the reviewer sends the piece back.
Runs mechanical checks and editorial criteria, then returns specific issues to the writer.
Removes recognizable AI patterns and adjusts the rhythm while keeping the article structure intact.
Writes the frontmatter title, description, and tags from the publication template.
Replaces visual placeholders, merges imports, and writes the final .mdx file.
The reviewer runs mechanical checks and editorial criteria on every draft. When it finds issues, it hands them back to the writer, which revises and returns for another pass.
That loop is bounded. Once the piece is approved, or the --max-iterations cap is reached, the pipeline advances to the humanizer regardless of approval status. A stubborn draft cannot stall the run forever.
Publication templates
A publication template sets the editorial goal, section structure, chart recipes, and per-agent tuning. The repo ships with a default template for general posts and a finance-analysis template for beginner-friendly stock write-ups.
Visual templates
Declarative YAML recipes for price lines, category bars, grouped bars, and verdict callouts are filled from extracted data. The model never has to write an ECharts option object or balance a brace.
CLI flags
Choose the template, cap the review loop with --max-iterations, review defaults with --ask, or resume a paused run with --thread-id. Sensible defaults stay quiet.
Each run gets an incrementing numeric id. It prefixes the output filename and names a per-run directory under output/audit/, so any published article maps directly to the run that produced it.
To trace a defect, open the audit directory and read the step files in order. The outline, writer, reviewer, and humanizer outputs are saved separately, and the full writer-to-reviewer history lives in a single state snapshot.
Is Oracle Stock Undervalued? was produced by two projects working in sequence. Equilyze did the analysis. Pressroom did the writing. No section was authored by hand.
Step one ยท Equilyze
Equilyze evaluated Oracle and wrote report.md alongside valuation_data.json, analysis.json, and news_data.json. Those files held the numbers, the structured recommendation, and the researched news behind the story.
Step two ยท Pressroom
That report and its artifacts were dropped straight into Pressroom's input/. The nine agents outlined, drafted, fact-checked against the JSON, rendered the charts, and published the finished .mdx file.
The outcome
Deterministic visuals keep charts tied to their data. A bounded review loop keeps the run moving, and local models keep every draft on the machine. If an artifact is missing, Pressroom records the problem and keeps going instead of breaking the run.