Local model · every item traced to the transcript
From meeting to plan,
with the receipts.
Paste a transcript. Planar pulls out the decisions, requirements, tasks, risks and open questions, then drafts a plan, and shows you the exact line behind each one.
Transcript
L130Mehul warned that an additional database lookup for every event could significantly increase PostgreSQL load.
L160No production database schema changes will be deployed until the benchmark is completed.
L223Consumer groups must have explicit access permissions.
L268RabbitMQ will continue handling existing notification workloads during the initial migration.
L286Nikhil: Create the initial Kafka infrastructure and document topic-level access policies.
L288Rhea: Benchmark PostgreSQL indexing strategies and read-replica performance.
Meeting record
RiskAdditional database lookups could significantly increase PostgreSQL load.
RequirementDatabase schema changes must not be deployed until benchmark results are available.
RequirementConsumer groups must have explicit access permissions.
DecisionRabbitMQ keeps notification workloads during the initial migration.
Task · NikhilCreate Kafka infrastructure and access policies.
Task · RheaBenchmark PostgreSQL indexing and read-replica performance.
Plan
3Benchmark PostgreSQL indexing and read-replica performanceRhea
2Create Kafka infrastructure and access policiesNikhil
Explore real runs
The actual Planar interface, replaying runs recorded on a 16 GB laptop with qwen3:8b. Pick a meeting, open any item to see the lines behind it, and try the plan map. Nothing here was edited.
A browser can't run an 8B model, so this replays recorded output. Open the demo on its own page ↗
How it works
A small model does one narrow job at a time. The backend checks everything it says against the transcript before keeping it.
-
Read the meeting
Speakers and timestamps are detected and every line is numbered. Long meetings are split into overlapping chunks instead of being cut off.
numbered lines · speakers · chunks -
Extract, one job at a time
Separate passes for choices, decisions, requirements, tasks, and risks with open questions. The model cites line numbers instead of quoting, and a second look asks only for what it missed.
JSON schema · cached transcript prefix -
Check every claim
Cited lines must support the item. "Should" stays "should", numbers and dates must exist in the meeting, and a choice the meeting left open can't be reported as decided.
grounding · faithfulness checks -
Link and plan
Links come from shared evidence, not the model's say-so. Plan steps cite the decisions, requirements and tasks they deliver, and the plan map draws why → what → how → who.
traceability · plan map · Markdown export
Measured, not eyeballed
Each sample meeting has a hand-written answer key listing what was really decided, required, assigned, worried about and left open, with the lines that say so. Output is matched by line, not by wording.
The model misses things more often than it invents them, so recall is where the work goes. Every change is scored across all keyed meetings before it is kept; ideas that read well but scored worse were measured and removed.
| Meeting in the demo | Right | Found | Precision | Recall |
|---|---|---|---|---|
| Loading… | ||||
Run it on your laptop
Python 3.12, Node 22 and Ollama. 16 GB of RAM is enough for the 8B model; a meeting takes about 4–10 minutes.
- Intel graphics:
OLLAMA_IGPU_ENABLE=1roughly halves run time. - Runs keep going in the background if you close the tab.
- Score a run against the answer keys with
scripts/score.py.
# model (~5 GB) and code ollama pull qwen3:8b git clone https://github.com/SarthakChandrayan/Planar cd Planar # backend cd backend python -m venv .venv .venv\Scripts\pip install -r requirements-dev.txt cd .. # frontend cd frontend npm install cd .. # use the 8B model, then start echo OLLAMA_MODEL=qwen3:8b > .env ollama serve # in its own terminal .\start.ps1 # opens localhost:5173