AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Osler

mcp-albertofettucini-osler · by albertofettucini

A native Mac canvas for AI agent workflows. Four node types, MCP tools, and local models via Ollama — no account, no cloud, no telemetry.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add mcp-albertofettucini-osler

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-albertofettucini-osler)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
6d ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Osler? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Osler

Design AI agent workflows on a canvas, on your Mac. Drop nodes, wire them into a flow, hit Run — the graph executes and every node's output streams in live.

No Docker, no web stack, no account, no subscription, no telemetry. Everything runs on your machine and everything stays there. With Ollama it runs without an API key at all.

Four node types

That's the point. The whole vocabulary is:

  • Input — the starting text.
  • Agent — a system prompt and a model. Takes the incoming text, calls the

LLM, streams text out. Can call MCP tools.

  • Condition — routes to a yes or no branch, either by keyword or by

asking a model a yes/no question.

  • Output — shows the final text.

Branches that don't depend on each other run concurrently, several inputs can fan into one node (they're joined in edge order), and the branch a condition didn't take is marked skipped rather than silently dropped.

Why so few nodes?

Because the vocabulary is small, not the ceiling. An Agent reaches anything through MCP tools, {{Node name}} reaches any value upstream, and iteration is coming as a node that loops inside itself rather than a cycle on the canvas.

Hosted builders solve a different problem — they're infrastructure for companies shipping products, with evals, tracing and one-click deployment, and they run that vendor's models. Osler is a Mac app for one person's work. It can run Claude, GPT and a local model in the same flow, offline if you want, with no account to make.

Reaching sideways

Text flows along the wires, but a node can also reach a value that isn't wired into it. Write {{Node name}} in an Agent's system prompt (or a Condition's question) and it's replaced at run time with that node's output:

Compare the two.
Original: {{Text}}
Translation: {{Translate}}

References may only point upstream — at a node that's guaranteed to have finished first. Anything else is flagged before the flow runs, so a value can never race its reader. The inspector lists what's in reach.

Tools, via MCP

An Agent can call tools from MCP servers — files, web, APIs, anything with a server. Add one in Settings → MCP as a local command:

npx -y @modelcontextprotocol/server-filesystem ~/Documents

Hit Test to launch it and see its tools, then enable the server on any Agent node. The agent decides when to call what; each call shows up in the node's output as it happens.

Today Osler speaks to stdio servers only, and a tool-enabled agent answers turn by turn instead of streaming live. Tool calls run without an approval step — an Approval node is next on the [roadmap](ROADMAP.md).

Models

Bring your own key, or bring your own machine:

| Provider | Needs a key | Notes | | --- | --- | --- | | Anthropic | yes | Messages API, streaming | | OpenAI | yes | Chat Completions, streaming | | Ollama | no | Local models, fully offline |

Keys live in the macOS Keychain — never on disk in plain text, never sent anywhere except the provider you're calling. Ollama needs nothing but a running server at localhost:11434.

Getting started

Download the latest release — macOS 14 or newer. Open the .dmg, drag Osler to Applications, then right-click it and choose Open the first time.

That first-launch warning isn't a problem with the app — it just isn't signed with a paid Apple developer account. Right-click → Open tells macOS you meant it, once. (No "Open" in the menu? System Settings → Privacy & Security → Open Anyway.) After that Osler updates itself, and every update is signature-verified, so a tampered download is refused.

Or build it

Requirements: Swift 5.9+ (Xcode 15+).

git clone https://github.com/albertofettucini/Osler.git
cd Osler
swift run Osler

And to produce the app bundle itself:

./scripts/package-app.sh --desktop     # builds Osler.app and copies it to ~/Desktop

Other targets:

swift test                          # engine tests
swift run osler-cli --demo linear   # headless run (uses Ollama when no key is set)
swift run osler-cli --demo tools    # MCP tool loop against a mock server
swift run osler-cli --demo cycle    # cycle detection, no model needed

Around the canvas

Eight starter templates ship with the app — Summarize, Sentiment Router, Translate & Polish, Writer & Critic, Parallel Brainstorm, Research with Tools, Email Drafter, Meeting Notes → Actions. Open one, press Run, take it apart.

Wiring is two-way: drag from either port onto another node to connect, click a wire (or a port dot) to cut it. Double-click empty canvas to add a node where you clicked, or drag one in from the library. Shift-click and shift-drag select several nodes; ⌘Z undoes anything. ⌘K opens a command palette. Save any flow as a template and it joins the library.

Flows are plain JSON files (.oslerflow) — readable, diffable, and yours. A flow saved by a newer version keeps its unknown nodes intact when an older build opens it.

Appearance follows the system, or you can pin light/dark and pick a background wash and card tint in Settings.

Architecture

OslerEngine is a headless Swift library with no UI dependency:

  • FlowGraph / Node / Edge — the Codable graph model.
  • GraphValidator — structural checks and topological ordering, with real

cycle errors instead of hangs.

  • FlowEngine — readiness-based scheduling (independent branches run in

parallel), per-node state as an async event stream, cancellation throughout.

  • LLMProvider — a two-method protocol: stream text, or take one tool-calling

turn. Adding a provider is a single type.

  • MCPClient / MCPToolbox — stdio JSON-RPC, tool discovery, call routing.

Osler is the SwiftUI app — canvas, inspector, run controller — bound to the engine's event stream. osler-cli runs flows headlessly.

64 tests cover the engine, including a real subprocess round-trip against a scripted MCP server.

License

MIT — see [LICENSE](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.