Stefan Preu
or just say “proy”, rhymes with joy. based in austria.
Agentic systems architectCreator of PM CLI
i build tools and systems that help humans and AI agents work with durable context.
my main project is PM CLI: open-source project management that keeps goals, decisions and evidence in the repository, where people and agents can both find them.
what i do
the whole problem, from the first conversation to the handover.
before agents
client projects, end to end.
talking to the people involved, building the full stack, running the infrastructure and handing it over.
now
context for agents.
i design and maintain PM CLI and agent-friendly CLIs for real services, and i run all of my own work on PM CLI.
next
agentic systems, end to end.
custom harnesses, memory, workflows that need to be deterministic, and getting teams ready to work with agents.
flagship · open source · MIT
project management is a context problem.
every agent session starts with an empty head. a task title alone doesn’t say why the work exists, what was already decided, what was ruled out, or how anyone will know it’s done.
- package
- @unbrained/pm-cli
- version
- 2026.10.26 ·
- source
- github.com/unbraind/pm-cli
- website
- pm-cli.unbrained.dev
session 1
writes it down
- goalCSV export for monthly reports
- decisionStream CSV rows instead of building files in memory
- taskStreaming CSV endpointin progress
- taskDownload button on the reports pageblocked
plus a progress note and a linked file. then the session ends, and its memory with it.
the repository
keeps it as files
epics/rpt-l1pf.toon decisions/rpt-gfhy.toon tasks/rpt-5epo.toon tasks/rpt-yzm4.toon
plain text in .agents/pm, next to the code, each with an append-only history.
session 2
starts cold and asks
pm context --for orient- goalCSV export for monthly reports
- decisionStream CSV rows instead of building files in memory
- taskStreaming CSV endpointin progress
- taskDownload button on the reports pageblocked
plus session 1’s last three actions, in 988 of 3,000 estimated tokens.
show the recorded transcript
# session 2: a fresh agent, nothing carried overpm context --for orient --limit 5summary: … in_progress: 1 blocked: 1 …hierarchy[1]: - id: rpt-l1pf title: CSV export for monthly reports … children[3]{id,title,type,status,children_total,children_closed}: rpt-5epo,Streaming CSV endpoint,Task,in_progress,0,0 rpt-gfhy,Stream CSV rows instead of building files in memory,Decision,open,0,0 rpt-yzm4,Download button on the reports page,Task,blocked,0,0activity[3]{id,op,ts,author}: rpt-5epo,release,"2026-10-18T19:03:01.720Z",session-1 rpt-5epo,files_add,"2026-10-18T19:02:56.447Z",session-1 rpt-5epo,comment_add,"2026-10-18T19:02:51.788Z",session-1blockers[1]{id,title,blocked_by,blocked_by_title,blocked_by_status}: rpt-yzm4,Download button on the reports page,rpt-5epo,Streaming CSV endpoint,in_progress … token_budget: 3000 … estimated_tokens: 988 within_budget: true
selected work
practical interfaces to real services.
small command-line tools that let agents and people operate real services through predictable commands.
Home Assistant CLI
Agent-optimized CLI tool for interacting with the Home Assistant API
Jellyfin CLI
Agent-optimized CLI tool for interacting with the Jellyfin API
SearXNG CLI
Agent-optimized CLI tool for interacting with the SearXNG API
Monica CLI
Agent-optimized CLI tool for interacting with the Monica CRM
around PM CLI
extensions, importers and companions, published separately so you only install what you use.
GitHub + npm, checked
approach
how i work
five rules i hold my work to, my own tools included.
see them in PM CLI’s decisionsroom to explore, walls around the effects
agents get as much freedom as practical to investigate. the boundaries sit at the system level: sandboxes, access, execution, and anything with consequences.
primitives over features
you should be able to build what you need from the parts, without waiting for me to ship a dedicated feature or adopting a workflow you didn’t ask for.
keep the reasoning, not just the result
decisions, rejected alternatives and non-goals are part of the work. code gets replaced; the why should survive it.
usable without me
your data, your tools, your call. anything i build should be easy to adapt, replace or walk away from, my own tools included.
say what’s proven
acceptance criteria describe the outcome; evidence shows it happened. where i’m still exploring, i say so.