Skip to content

Releases: megasoft1978/strim-engine

Strim 0.1.8

Choose a tag to compare

@megasoft1978 megasoft1978 released this 30 Oct 16:42

Strim 0.1.8

What's in 0.1.8

  • Dictation in the chat composer: click the mic or press Cmd-Shift-D, Esc to stop. On-device speech recognition; nothing leaves your Mac.
  • MTP: per-position acceptance counters in /metrics, and strim mtpstats to replay them.
  • Agent harness, opt-in (pack knobs.json, all off by default): a progress gate that asks for a diagnosis and an edit after a failing test run and stops a run that keeps repeating the same failing tests; structured test results that keep the real exit code when output is piped and summarize the failures; thinking only after the agent gets stuck. Also opt-in: a converge playbook, a stall nudge and errors-first result shaping.
  • Thinking on every turn was tested against the default on the full 51-task agent benchmark: 46/51 vs 45/51 at about 3x the time, so the default stays thinking off.
  • Opt-in STRIM_PREFILL_MACRO_BF16=1: about 3% faster cold prefill on long prompts.
  • Benchmarks and evolve: token usage recorded for failed jobs; paired and one-time release evaluations.

Also in 0.1.7

  • Faster with several requests at once: about 10% more total decode throughput at 8 concurrent requests on M5-class Macs (MLX kernel tuning; outputs identical; single-request speed unchanged).
  • Tool calls: a call cut off in the middle is no longer executed; everything else parses as before.
  • Server: an explicit enable_thinking in a request is now respected (omitted keeps the default).
  • Opt-in "thinking on every turn" for the agent (pack knobs.json: "thinking": "all_turns", "reasoningEffort"): in our agent benchmark it solved more tasks (21/23 vs 16/21) but took about 3x longer, so it stays off by default.
  • Benchmarks: the local agent benchmark runs out of the box; Bun/TypeScript task checks fixed.

Also in 0.1.6

Stability release: every release now goes through one automated gate (all tests, a headless end-to-end run, a clean build, and a self-test of the packaged app with the real model).

  • Chat: a reply that ends through the agent's finish step no longer shows up empty.
  • Server start: clear messages for a missing model or binary, an early crash shows its log lines, no duplicate servers, the window stays responsive while starting.
  • Settings: a corrupt ~/.strim/app.json is backed up instead of lost; one bad value no longer resets everything; "Default thinking" and "MTP: None" are saved.
  • Quit: stops only the server this app started (verified before any signal), force-stops a hung server, cancels downloads, finishes within 4 seconds; relaunch never starts a second server.
  • Errors: accurate messages for every server and network error (no raw codes, no misleading "loopback only").
  • Chat history: corrupt files are backed up, a truncated history keeps every complete message.
  • strim doctor checks your install: duplicate or stale Strim.app copies, version mismatches, an app or server running from the wrong place.
  • Strim --selftest <dir>: headless self-check of the installed app.
  • Fixed a race that could make approving a job fail under load.

Also in 0.1.5

  • Folder access: a project can live anywhere on disk. Opening a folder outside your home folder asks once ("Allow Strim to read, change files and run commands in this folder?"). Strim still works in an isolated copy and every change comes back as a patch you review in Jobs. Granted folders show a lock, can be revoked from the project menu or Settings, and survive restarts. Only the app can grant access; agents and MCP clients cannot. Credential folders (~/.ssh, ~/.aws, ~/.gnupg, ~/.strim) and system folders are always refused.
  • Starting a second strim serve no longer kills the first one's running job processes.
  • Headless app smoke test (scripts/app-smoke.sh, about a minute, no windows).

Also in 0.1.4

  • Quitting the app stops the server it started, so the model no longer stays in memory after Quit.
  • A refused chat (for example a project folder outside your home folder, which the host does not allow unless mcp.allowedRoots is set) now shows the host's reason instead of "loopback only".

Also in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.4-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.7

Choose a tag to compare

@megasoft1978 megasoft1978 released this 30 Oct 04:32

Strim 0.1.7

What's in 0.1.7

  • Faster with several requests at once: about 10% more total decode throughput at 8 concurrent requests on M5-class Macs (MLX kernel tuning; outputs identical; single-request speed unchanged).
  • Tool calls: a call cut off in the middle is no longer executed; everything else parses as before.
  • Server: an explicit enable_thinking in a request is now respected (omitted keeps the default).
  • Opt-in "thinking on every turn" for the agent (pack knobs.json: "thinking": "all_turns", "reasoningEffort"): in our agent benchmark it solved more tasks (21/23 vs 16/21) but took about 3x longer, so it stays off by default.
  • Benchmarks: the local agent benchmark runs out of the box; Bun/TypeScript task checks fixed.

Also in 0.1.6

Stability release: every release now goes through one automated gate (all tests, a headless end-to-end run, a clean build, and a self-test of the packaged app with the real model).

  • Chat: a reply that ends through the agent's finish step no longer shows up empty.
  • Server start: clear messages for a missing model or binary, an early crash shows its log lines, no duplicate servers, the window stays responsive while starting.
  • Settings: a corrupt ~/.strim/app.json is backed up instead of lost; one bad value no longer resets everything; "Default thinking" and "MTP: None" are saved.
  • Quit: stops only the server this app started (verified before any signal), force-stops a hung server, cancels downloads, finishes within 4 seconds; relaunch never starts a second server.
  • Errors: accurate messages for every server and network error (no raw codes, no misleading "loopback only").
  • Chat history: corrupt files are backed up, a truncated history keeps every complete message.
  • strim doctor checks your install: duplicate or stale Strim.app copies, version mismatches, an app or server running from the wrong place.
  • Strim --selftest <dir>: headless self-check of the installed app.
  • Fixed a race that could make approving a job fail under load.

Also in 0.1.5

  • Folder access: a project can live anywhere on disk. Opening a folder outside your home folder asks once ("Allow Strim to read, change files and run commands in this folder?"). Strim still works in an isolated copy and every change comes back as a patch you review in Jobs. Granted folders show a lock, can be revoked from the project menu or Settings, and survive restarts. Only the app can grant access; agents and MCP clients cannot. Credential folders (~/.ssh, ~/.aws, ~/.gnupg, ~/.strim) and system folders are always refused.
  • Starting a second strim serve no longer kills the first one's running job processes.
  • Headless app smoke test (scripts/app-smoke.sh, about a minute, no windows).

Also in 0.1.4

  • Quitting the app stops the server it started, so the model no longer stays in memory after Quit.
  • A refused chat (for example a project folder outside your home folder, which the host does not allow unless mcp.allowedRoots is set) now shows the host's reason instead of "loopback only".

Also in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.4-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.6

Choose a tag to compare

@megasoft1978 megasoft1978 released this 29 Oct 21:19

Strim 0.1.6

What's in 0.1.6

Stability release: every release now goes through one automated gate (all tests, a headless end-to-end run, a clean build, and a self-test of the packaged app with the real model).

  • Chat: a reply that ends through the agent's finish step no longer shows up empty.
  • Server start: clear messages for a missing model or binary, an early crash shows its log lines, no duplicate servers, the window stays responsive while starting.
  • Settings: a corrupt ~/.strim/app.json is backed up instead of lost; one bad value no longer resets everything; "Default thinking" and "MTP: None" are saved.
  • Quit: stops only the server this app started (verified before any signal), force-stops a hung server, cancels downloads, finishes within 4 seconds; relaunch never starts a second server.
  • Errors: accurate messages for every server and network error (no raw codes, no misleading "loopback only").
  • Chat history: corrupt files are backed up, a truncated history keeps every complete message.
  • strim doctor checks your install: duplicate or stale Strim.app copies, version mismatches, an app or server running from the wrong place.
  • Strim --selftest <dir>: headless self-check of the installed app.
  • Fixed a race that could make approving a job fail under load.

Also in 0.1.5

  • Folder access: a project can live anywhere on disk. Opening a folder outside your home folder asks once ("Allow Strim to read, change files and run commands in this folder?"). Strim still works in an isolated copy and every change comes back as a patch you review in Jobs. Granted folders show a lock, can be revoked from the project menu or Settings, and survive restarts. Only the app can grant access; agents and MCP clients cannot. Credential folders (~/.ssh, ~/.aws, ~/.gnupg, ~/.strim) and system folders are always refused.
  • Starting a second strim serve no longer kills the first one's running job processes.
  • Headless app smoke test (scripts/app-smoke.sh, about a minute, no windows).

Also in 0.1.4

  • Quitting the app stops the server it started, so the model no longer stays in memory after Quit.
  • A refused chat (for example a project folder outside your home folder, which the host does not allow unless mcp.allowedRoots is set) now shows the host's reason instead of "loopback only".

Also in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.4-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.5

Choose a tag to compare

@megasoft1978 megasoft1978 released this 29 Oct 16:54

Strim 0.1.5

What's in 0.1.5

  • Folder access: a project can live anywhere on disk. Opening a folder outside your home folder asks once ("Allow Strim to read, change files and run commands in this folder?"). Strim still works in an isolated copy and every change comes back as a patch you review in Jobs. Granted folders show a lock, can be revoked from the project menu or Settings, and survive restarts. Only the app can grant access; agents and MCP clients cannot. Credential folders (~/.ssh, ~/.aws, ~/.gnupg, ~/.strim) and system folders are always refused.
  • Starting a second strim serve no longer kills the first one's running job processes.
  • Headless app smoke test (scripts/app-smoke.sh, about a minute, no windows).

Also in 0.1.4

  • Quitting the app stops the server it started, so the model no longer stays in memory after Quit.
  • A refused chat (for example a project folder outside your home folder, which the host does not allow unless mcp.allowedRoots is set) now shows the host's reason instead of "loopback only".

Also in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.4-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.4

Choose a tag to compare

@megasoft1978 megasoft1978 released this 29 Oct 15:53

Strim 0.1.4

What's in 0.1.4

  • Quitting the app stops the server it started, so the model no longer stays in memory after Quit.
  • A refused chat (for example a project folder outside your home folder, which the host does not allow unless mcp.allowedRoots is set) now shows the host's reason instead of "loopback only".

Also in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.4-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.3

Choose a tag to compare

@megasoft1978 megasoft1978 released this 29 Oct 15:40

Strim 0.1.3

What's in 0.1.3

  • Starting the server needs no manual setup: a blank or missing model path in ~/.strim/app.json now means the default model, and the first-run download flow covers a missing model.
  • Corrected release build: the 0.1.2 app and DMG were built from stale compiled output and showed the old UI. 0.1.3 is a clean rebuild; if you installed 0.1.2 from the DMG or cask, update.

Also in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.3-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.2

Choose a tag to compare

@megasoft1978 megasoft1978 released this 29 Oct 14:40

Strim 0.1.2

What's in 0.1.2

  • The app, the DMG and the strim binary are signed with a Developer ID and notarized by Apple. The DMG opens without a Gatekeeper warning.
  • Tool results in chat keep their line breaks (secrets are still redacted before the text is clipped).

Everything in 0.1.1 is included: the redesigned app with per-project chats and a first-run model download, the redesigned website and README, strim pull with pinned revisions, resume and hash verification, and the DMG and Homebrew cask.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.2-arm64.dmg from the latest release and move Strim to Applications.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • Benchmarks cover one model.

Strim 0.1.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:42

Strim 0.1.1

What's in 0.1.1

  • Fixed parsing of responses with a stray </think> tag.
  • Redesigned the app: a sidebar window with Status, Jobs and per-project chats (one thread list per folder, like a coding agent), a responsive layout, and a first-run download flow for the model.
  • Redesigned the menu bar popover and added live screenshots of the real app.
  • Redesigned the website and README.
  • Added strim pull for downloading model files with pinned revisions, resume support, and hash verification.
  • Added a macOS DMG and Homebrew cask for the app.

Install

  • CLI with Homebrew: brew install megasoft1978/strim/strim
  • App with Homebrew: brew install --cask megasoft1978/strim/strim-app
  • CLI with curl: curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash
  • App DMG: download Strim-0.1.1-arm64.dmg from the latest release and move Strim to Applications.

The app is ad-hoc signed and not notarized. If Gatekeeper blocks it, choose Open Anyway in System Settings > Privacy & Security, or run xattr -dr com.apple.quarantine /Applications/Strim.app.

After installing, download the model with strim pull.

Benchmarks

On an M5 Max with 64 GB, Strim 0.1.1 was compared with rapid-mlx 0.15.7, mlx-vlm 0.7.10, mlx-lm 0.32.2, and oMLX 0.4.5.dev1. Strim decoded at 75.3, 65.2, and 52.2 tok/s at 4K, 16K, and 32K context, versus rapid-mlx's 50.1, 45.7, and 42.2; cold prefill was 994, 963, and 885 tok/s versus mlx-vlm's 1,017, 988, and 923, with TTFT of 4.13, 17.02, and 37.06 s versus 4.04, 16.59, and 35.51 s. Strim therefore trails mlx-vlm by 2–4% on cold prefill and TTFT, and loses c=4 short-prompt aggregate throughput to rapid-mlx by 3.5%; it wins decode and p50 TTFT in the measured contexts. oMLX has unavailable cells where its memory guard aborted or declined runs. Full results and methodology: benchmarks.

Known limits

  • Cold prefill is 2–4% behind mlx-vlm in the measured contexts.
  • Some oMLX benchmark cells are unavailable because its memory guard aborted or declined runs.
  • The DMG is not notarized.
  • Benchmarks cover one model.

Strim 0.1.0

Choose a tag to compare

@megasoft1978 megasoft1978 released this 28 Oct 18:53

Strim is a Swift-only local inference engine and agent backend for Qwen3.8-27B on Apple Silicon: one binary that serves an Anthropic-compatible API for Claude Code and Codex. MIT licensed.

Measured against rapid-mlx and mlx-vlm (Qwen3.8-27B 4-bit, one 64 GB M5 Max, medians of 2 passes):

  • Decode at 4K context: 70.72 tok/s vs 47.75 (rapid-mlx) and 30.69 (mlx-vlm).
  • Four agents sharing a 16K prefix: median first token 20.71 s vs 75.08 s and 70.93 s.
  • 30-55% lower median first token at 4 to 8 concurrent requests.

Where it is not faster:

  • Cold 32K prefill: first token 38.04 s vs 36.61 s and 36.25 s (about 5% behind the best rival).
  • Aggregate throughput at 4 to 8 concurrent requests trails the best rival by more than 2% in 3 of 6 cells (5-6%); at 8 agents mlx-vlm is ahead (30.78 vs 28.94 tok/s).
  • p95 first-token latency is more than 2% worse in 2 of 6 cells (5-7%).

Preliminary benchmark caveat: all engine sessions in this run were measured while other jobs loaded the machine (highest 1-minute load 11.8). A clean rerun is in progress. Only one machine was tested.

Also in this release: structured output, on-disk prefix cache, scoped agent benchmark, strim pull (resumable, verified model download), strim doctor.

Install:
brew install megasoft1978/strim/strim
# or
curl -fsSL https://raw.githubusercontent.com/megasoft1978/strim-engine/main/packaging/install.sh | bash

Requirements: Apple Silicon Mac with 64 GB memory, macOS 14 or later. The binary is ad-hoc signed (no Developer ID, not notarized); Homebrew and curl installs are not quarantined, a tarball downloaded in a browser may be blocked by Gatekeeper. Model weights (about 15 GB) are downloaded separately with strim pull. Details: docs/INSTALL.md.