I build local-first AI developer tooling β agent orchestration, RAG, and the guardrails that keep autonomous agents honest.
In parallel, I'm working through the ML underneath it all from first principles: math on paper, models from scratch, no skipped steps.
π Ukraine
Asterim β an AI-native workspace for autonomous coding agents
A local-first control plane that brings multi-agent orchestration directly into your development environment β with humans firmly in the loop.
- Coordinate specialized coding agents (Claude Code, Antigravity, β¦) on complex engineering tasks through adapters and an internal event bus
- Local-first by design: code and data stay on your machine; external resources connect through a dedicated cloud relay
- Human approvals gate autonomous actions β nothing executes without your say-so
- Real-time dashboard to monitor agents, read logs, and intervene at any moment
TypeScript Β· React Β· Fastify Β· pnpm + Turborepo monorepo Β· Docker Β· GitHub Actions
ORACLE β a local-first personal AI agent that never gets unsupervised root π private while it grows
Not "a chatbot with shell access" β a small orchestrator that understands intent, routes work to the cheapest competent executor, and reports back, while every side effect passes through a policy layer that can refuse.
you ββΆ ORACLE ββΆ intent ββΆ route ββ¬ββΆ local tools (fast, free, guarded)
βββΆ project knowledge (hybrid RAG)
βββΆ delegated agents (deep code reasoning)
- A deliberately small local router model (0.8B via Ollama) β 93% intent accuracy on the eval set; heavy reasoning is delegated to agents that are good at it
- Three processes, three trust levels: the model emits tool requests, a policy engine decides, an isolated low-privilege tool host executes
- Hybrid RAG over code and docs: syntax-aware chunking with tree-sitter (18 grammars), ONNX embeddings on CPU,
sqlite-vecsearch, watch-based incremental indexing, PDF extraction - Event-sourced runtime β any session can be replayed, audited, and tested deterministically
- 370 Python + 77 TypeScript tests,
mypy --strict, and a security suite that acts as a merge gate - Built against real constraints: designed to run next to a 4 GB VRAM GPU
Python 3.12 Β· FastAPI Β· Tauri Β· SQLite Β· Ollama Β· ONNX Runtime Β· tree-sitter
asterim-pipeline β CI/CD for coding agents
A zero-runtime-dependency Node.js pipeline runner that coordinates three agents β orchestrator β coder β tester β using repository files as the communication protocol.
- A state machine with human gates: phase completions, failures, and "done" claims without an actual commit all stop the loop for review
- Distributed mode: the PC orchestrates while a laptop executes over LAN β heartbeats, at-least-once delivery, idempotent dispatch, git as the sync layer
- Live dashboard streaming structured agent output (tool calls, turns, cost) in real time
- Safety first: never force-pushes, never runs destructive git commands, never executes anything found in repository markdown
Node.js Β· zero dependencies Β· state machine Β· file-based protocol
I keep a structured AI/ML curriculum (an Obsidian vault + Jupyter notebooks) and move through it stage by stage β while the projects above let me build ahead of it.
- Right now: foundations done properly β linear algebra, NumPy, statistics β worked through in notebooks, not skimmed
- Daily practice through building: transformers & LLMs β attention, tokenization, embeddings, RAG & vector search, AI agents, prompt engineering, LLM evaluation, fine-tuning & RLHF
- Next up: PyTorch, from-scratch checkpoints (linear & logistic regression β a neural network β self-attention β a small GPT β a RAG app), then MLOps
Languages & runtimes
Building with
AI / ML
Design-first β architecture docs and ADRs lead the code Β· humans stay in the loop Β· untrusted content is data, never instructions Β· tests and security suites are merge gates, not suggestions
π« Reach me: v.onashchuk@gmail.com

