Frink — Local AI Workflow Automation for Your Desktop
Turn one sentence into an approval-gated automation that runs coding agents on your own machine.
- Source repo
- benord-labs/frink
- Stars
- ★ 50
- Last updated
- 2d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 50/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer who wants the 9am test routine automated: run tests, have an agent fix failures, then hold the PR for approval.
- Not a fit if
- Windows users: only macOS 13+ and Linux builds are shipped
- Teams unwilling to sign in to Claude Code or Codex locally
- Teams needing headless server-side orchestration
- Source review
- 50/100 · Major gaps
What does this agent do, and when should you use it?
Frink is an open-source Electron desktop app for macOS 13+ and Linux that orchestrates Claude Code, Codex, OpenCode and GitHub Copilot into repeatable Flows. You describe a routine in plain language; Frink renders it as an ordered, editable step list and runs it when a trigger fires. Triggers cover Linear, Jira, Shortcut and ClickUp tickets, Sentry errors, PostHog events, any webhook, plus schedules. Every run lands in the Work Queue, where approval steps and agent questions pause execution until you answer. Chats, Flows, tasks and permissions live in SQLite on your machine, you sign in with your own AI account, and official builds only send anonymous usage counts and crash reports.
The app watches for events from Linear, Jira, Shortcut, ClickUp, Sentry, PostHog, arbitrary webhooks or a time of day; when a condition matches, the Flow takes the corresponding branch and runs the steps you reviewed. Execution is delegated to whichever coding agent you have signed in locally — Claude Code, Codex, OpenCode or GitHub Copilot — and up to four panes can work side by side, each keeping its own model and its own diff, optionally on separate git worktrees so they never touch the same files. Changes surface as diffs you can edit in the built-in editor and save, or you can run commands in the terminal or roll the chat back to an earlier checkpoint. Results appear in the Work Queue as running, ready for review or queued, with a badge when a Flow stops for approval or an agent asks a question; you read the output, then approve it or reply to send it back. Through MCP you can attach Linear, Shortcut, ClickUp, GitHub, Notion, Slack, Sentry and PostHog as chat tools and Flow steps.
- A developer who wants the 9am test routine automated: run tests, have an agent fix failures, then hold the PR for approval.
- A support or platform team triaging incoming Linear, Jira, Shortcut or ClickUp tickets by letting an agent pick up context and produce a diff.
- An on-call engineer wiring Sentry or PostHog events into an agent-assisted fix-and-approve loop.
- A developer splitting one project across four panes on separate git worktrees so four agents work simultaneously without file conflicts.
- A team that wants agents to file changes but insists every command and edit pass a per-project permission gate and a human approval.
- An internal platform team exposing its own system events as a webhook so Frink can trigger a custom review workflow.
How do you install or deploy this agent?
Official builds are downloadable for macOS and Linux; building from source is also supported.
macOS: download from frink.dev/download, or take the Apple Silicon or Intel dmg directly.
Linux direct builds:
# x64 AppImage or .deb
chmod +x Frink-0.3.0.AppImage && ./Frink-0.3.0.AppImage
sudo apt install ./frink_0.3.0_amd64.deb
# arm64 AppImage or .deb
chmod +x Frink-0.3.0-arm64.AppImage && ./Frink-0.3.0-arm64.AppImage
sudo apt install ./frink_0.3.0_arm64.debThe AppImage does not need libfuse2, but if it will not start, install fuse3 or launch it this way:
Frink-0.3.0.AppImage --appimage-extract-and-runOn Linux, Frink only saves API keys and MCP credentials when it can encrypt them with a desktop keyring (GNOME Keyring or KWallet); install one and relaunch Frink before adding accounts. Building from source is described in CONTRIBUTING.md.
How do you use this agent?
- Install and launch Frink, then connect your existing Claude Code or Codex sign-in (OpenCode or GitHub Copilot also work on macOS). Frink never stores the token.
- In the chat, describe the routine in one sentence, for example:
Every weekday at 9am, run the tests. If any fail, have an agent fix them, then wait for my approval before it opens a PR.- Frink builds it as a Flow and lists every step; read and change the steps before running.
- Add the trigger and condition branches you need (Linear / Jira / Shortcut / ClickUp, Sentry, PostHog, webhook, or schedule).
- Watch runs in the Work Queue; when a Flow stops for approval or an agent asks a question, read the output and approve it or reply to send it back.
- Inspect the diffs the agent produced — edit and save files in the built-in editor, run a command in the terminal, or roll the chat back to an earlier checkpoint.
What are this agent's strengths and limitations?
- Wide trigger surface: Linear, Jira, Shortcut, ClickUp, Sentry, PostHog, any webhook and schedules are all documented entry points.
- True parallelism: up to four panes with separate models and diffs, and per-pane git worktrees so concurrent agents do not collide.
- Human-in-the-loop by design: per-project permission gates, approval steps, and blocking of ~/.ssh, ~/.aws and .env.
- Local-first: chats, Flows, tasks and permissions live in SQLite on your machine, using your own AI sign-in with no Frink account.
- No Windows build; only macOS 13+ and Linux are shipped.
- You must have your own Claude Code, Codex, OpenCode or GitHub Copilot sign-in and pay for the model usage yourself.
- On Linux, API keys and MCP credentials are not saved unless GNOME Keyring or KWallet is present.
- The README itself notes the permission layer has uncovered cases, and official builds send anonymous usage counts and crash reports.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Frink — Local AI Workflow Automation for Your Desktop This agent | 50 · Major gaps | Desktop appFree + model costs | ★ 50 | 2d ago | TypeScript | Codex · Claude Code |
| AGNT Agent OS | 52 · Major gaps | Desktop appFree + model costs | ★ 554 | today | JavaScript | Codex · Claude Code · OpenAI API · Claude API |
| Aiden | 65 · Some gaps | CLIFree + model costs | ★ 858 | 1mo ago | TypeScript | ChatGPT · OpenAI API · Claude API |
| EpicStaff Agent Workflow Platform | 57 · Major gaps | Self-hosted service | ★ 359 | 10d ago | Python | — |
How does FollowAgents rate this agent?
Why each dimension lost points
README claims a per-project permission gate, blocking of ~/.ssh, ~/.aws and .env, credentials saved only when a desktop keyring can encrypt them, and per-provider webhook signature verification on the machine; SECURITY.md explicitly states execution is unsandboxed and custom nodes/command steps run as ordinary shell processes. That is a deliberate trade-off, so least_privilege is only 1. Approval steps, the Work Queue, Flow stop confirmation and delete/stop dialogs support user_confirmation at 2. The telemetry doc plus local SQLite storage give data_flow_transparency 2. Sensitive data handling has keyring gating and .env blocking but SECURITY.md admits incomplete coverage, so 2. The dependency list is large with many caret ranges and a patched dependency, with no audit or lock evidence, so dependency_security is 1. External effects (opening PRs, webhooks, APNs pushes, auto-update) exist but lack a consolidated side-effect inventory, so 1. Rollback is supported by diffs, the built-in editor and chat checkpoint rollback, so 2. Source attribution is limited to the MIT copyright line and a third-party license file, with an unverified publisher, so 1.
README, package.json and CI workflows are broadly consistent, but README states macOS and Linux support while package.json and build-desktop.yml clearly include Windows targets, an inconsistency between docs and build matrix, so self_consistency is 1. Dependency availability requires node>=22.12, bun, a desktop keyring and a user-supplied Claude/Codex login, with many caret ranges and no lock or offline guidance, so 1. Failure messages are well evidenced in the mobile tests (offline banner, undelivered steer notice, Flow stop confirmation, already-answered question notice), so failure_messages is 2.
README targets individual developers and teams across tickets, errors, webhooks and schedules, so audience_and_scenarios is 2. Capability boundaries are stated: unsandboxed execution, a permissions page listing uncovered paths, fuse3 requirement on Linux, and no credential saving without a keyring, so 2. Trigger precision lists Linear/Jira/Shortcut/ClickUp/Sentry/PostHog/Vercel plus webhooks and schedules, but lacks detail on deduplication, replay, idempotency and condition-branch precision, so only 1. Environment fit covers macOS 13+, Linux x64/arm64 with AppImage and deb, so 2.
README is well structured with feature blocks and links to user-docs, so information_architecture is 2. Install notes include downloads, AppImage/deb commands, fuse3 and keyring prerequisites, so 2. Naming stability is weak: version 0.3.0 with migrations 0000-0113 indicates frequent schema churn, so 1. Examples exist as GIFs and a one-sentence example but there is no FAQ, so examples_and_faq is 1. known_limitations covers uncovered permission paths, unsandboxed execution and the keyring requirement, so 2. LICENSE is a complete MIT text, so license is 3. Versioning/changelog only points to an external frink.dev/changelog with no in-repo CHANGELOG, so 1. Maintenance responsibility is only a copyright holder and an issue link with an unverified publisher, so 1.
Output usability is supported by diffs, the built-in editor, terminal, Work Queue and mobile approvals, so 2. Marginal value comes from integrating Claude Code/Codex with triggers, approvals and a queue in a local-first tool, an increment over raw CLIs, so 2. Cost benefit is weaker: users must bring their own subscription/API key, need a desktop keyring, and face heavy dependencies and native builds, with no quantified benefit evidence, so only 1.
claim_traceability is 1: README feature claims mostly point to user-docs and GIFs, with no in-repo implementation references or test mapping. cross_source_corroboration is 1: README, SECURITY.md, package.json, CI workflows and mobile tests partially corroborate each other, but Windows support inconsistencies remain and there is no independent third-party corroboration. fact_inference_separation is 1: the docs mix factual description with marketing phrasing ("for everyone", "fine-tuned") without clearly separating verified facts from inference.
- Execution is unsandboxed: custom nodes and command steps run as ordinary shell processes, and the permissions page admits incomplete coverage; assess host isolation before deployment.
- Publisher identity is unverified; author/copyright metadata in README and package.json cannot be treated as a trusted source.
- The dependency set is large with many caret ranges and a patched dependency, with no audit or lock evidence; supply-chain risk must be assessed independently.
- README claims macOS and Linux only, while the build configuration includes Windows targets, so docs and build matrix disagree.
- Credentials are saved only when a desktop keyring is available; confirm behavior in environments without one.
- Official builds send anonymous usage counts and crash reports; verify against the telemetry doc and organizational policy.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
0.4.0 Frink 0.4.0
Release notes excerpt
Frink 0.4.0 brings OpenCode, GitHub Copilot and Cursor to Frink as a preview, on macOS and Linux, along with a long round of fixes. Download: get it from [frink.dev/download](https://frink.dev/download), or use the installers attached below. - macOS 13 Ventura or later: Frink-0.4.0-arm64.dmg (Apple Silicon) or Frink-0.4.0.dmg (Intel) - Linux, Intel or AMD: frink_0.4.0_amd64.deb (Ubuntu, Debian) or Frink-0.4.0.AppImage (any distro) - Linux, ARM: frink_0.4.0_arm64.deb or Frink-0.4.0-arm64.AppImage Highlights Added …View on GitHub ↗ -
0.3.0 Frink 0.3.0
Release notes excerpt
Frink 0.3.0 brings Frink on Linux, easier recovery when work stops, and a round of bug fixes. Download: get it from [frink.dev/download](https://frink.dev/download), or use the installers attached below. - macOS 13 Ventura or later: Frink-0.3.0-arm64.dmg (Apple Silicon) or Frink-0.3.0.dmg (Intel) - Linux, Intel or AMD: frink_0.3.0_amd64.deb (Ubuntu, Debian) or Frink-0.3.0.AppImage (any distro) - Linux, ARM: frink_0.3.0_arm64.deb or Frink-0.3.0-arm64.AppImage Highlights Added - Frink for Linux: download the AppImage or .deb for x64 and arm64 …View on GitHub ↗ -
v0.2.0 Frink 0.2.0
Release notes excerpt
Frink 0.2.0 brings Frink for iPhone (beta), steadier Flows and a smoother split view. Download: the DMGs are attached below, or get it from [frink.dev/download](https://frink.dev/download). macOS 13 Ventura or later, Apple Silicon and Intel. Highlights Added - Frink for iPhone beta: work remotely with the iOS app to monitor flows, your work queue, and chat with Frink - Sonnet 5.5 joins the Claude model picker with 1M context and effort from Low to Max - GPT-6.1 Sol joins Codex, and GPT-6 Astra adds Ultrafast, up to 8x faster on eligible plans …View on GitHub ↗