Repository navigation
Releases: TaewoooPark/Motifcode
Release list
0.4.3
Motifcode 0.4.3 fixes clean interactive shutdown and prevents resumable work from being mistaken for a loop. Both changes are included in the published CLI bundle.
Fixes
- Clean terminal shutdown — Ctrl-D at an empty prompt and a second Ctrl-C no longer redraw the input box or shortcut hint after terminal cleanup. Ctrl-D still deletes forward in a nonempty draft, and Ctrl-C still interrupts an active run. Thanks to @nimbly1 for #43, resolving #32; maintainer validation adds a focused delete-forward regression.
- Allow repeated work that makes progress — LoopGuard now requires both identical calls and identical output to count a repetition. A resumable command with changing output can continue; unchanged call/output loops still stop on the third turn, and the existing output-stall rule is preserved. Implemented in #47 by @TaewoooPark. Snapshot format is unchanged. Changing incidental output, such as timestamps, can also avoid repetition detection; the turn limit still bounds the session.
Validation
The fixes were reproduced against their base revisions and checked on this Mac with built CLI artifacts and isolated local fixtures. A visible xterm.js terminal connected to a real macOS PTY checked shutdown and shell handoff. A real CLI process reproduced the progress-loop failure at the third call on the base revision and completed five calls on the patched revision; an unchanged-output control still stopped at three calls.
Local validation covers frozen dependency install, typecheck, build, 1,676 tests across 97 files (two local workers), and tool-schema lint. CI covers Node 20/22, Linux ARM64, Python, and generated goldens. These checks use local HTTP/SSE fixtures; no live model inference or six-hour micromagnetics benchmark was repeated for this release.
Upgrade
npm install -g motifcode@0.4.3
motif version
# or: motifcode versionRequires Node.js 20.3 or later. Published through the existing GitHub Actions trusted-publishing workflow with npm provenance.
0.4.2
Motifcode 0.4.2 adds Morphfactory (BETA) as a selectable Motif-3 provider alongside Infron. Existing Infron settings and request/accounting behavior are preserved.
Provider selection
- Choose Infron or Morphfactory (BETA) on first launch. Existing configured users keep their current provider.
- Switch providers with
/provider, the Provider row in/config, or/config provider; the selection persists across restarts. - Use
--provider morphfactoryfor scripts, with explicit endpoint/model flags still taking precedence. - Keep provider credentials separate. Morphfactory uses
MOTIF_MORPHFACTORY_API_KEY; Infron continues to useMOTIF_API_KEY. Switching back restores the matching credential, and logout affects only the selected provider. - Keep both credentials out of child-process environments and guard provider switches against in-flight login and batched-input races.
Implemented in #45 by @TaewoooPark; version preparation in #46.
Validation and scope
The release passed frozen install, typecheck, build, all 1,671 tests across 97 files, and tool-schema lint. CI also covers Node 20/22, Linux ARM64, Python, and generated goldens. Visible terminal checks covered first launch, existing-user provider changes, separate keys, narrow layouts, restart persistence, and clean exit.
Live Morphfactory checks exercised authentication, streaming and reasoning, tool calls, skills, subagents, MCP, compaction/recall, and cancellation followed by another successful request. Infron was unavailable, so its existing wiring was checked with deterministic tests rather than live requests.
Morphfactory does not currently expose /v1/completions (404), so the experimental raw/object completion path remains unavailable there. Token usage is supported for both providers; balance and credit-cost reporting remain Infron-specific.
Upgrade
npm install -g motifcode@0.4.2
motif version
# or: motifcode versionRequires Node.js 20.3 or later. Published through the existing GitHub Actions trusted-publishing workflow with npm provenance.
0.4.1
Motifcode 0.4.1 fixes interrupted tool batches, multiline paste rendering, and sessions that silently ended after a generation was stopped by the router. It also adds configuration for the default shell-command timeout.
Fixes
- Multiline paste: normalize CR and CRLF line endings to LF before inserting pasted text or counting its lines. Korean text, emoji, cursor placement, editing, long-paste placeholders and prompt history now behave consistently across clipboard line-ending styles. Ordinary Enter handling is unchanged. #41, fixes #30.
- Batch cancellation: when a session is cancelled, remaining calls in the current tool batch are recorded as unexecuted and are not started. Cancellation also takes precedence over normal completion of the batch. #40, fixes #17.
- Interrupted generations and empty replies: recognize errors delivered inside an otherwise successful SSE response, including Infron's
repetition_detected, and discard the interrupted sample instead of accepting it as a finished answer. Retry up to twice within that model turn withrepetition_penalty: 1.05; if all three samples are cut off, use the existing no-action recovery path and its limits. A blank or whitespace-only chat reply also continues through recovery instead of silently ending the task. #38.
Shell timeout
Set --bash-timeout <seconds> or the bashTimeout setting to change the limit for shell commands whose tool call does not specify timeout_s. The default remains 120 seconds. An explicit timeout_s in a tool call still takes precedence. The setting is used by interactive and one-shot sessions, resumed runs and their subagents. Commit a5624b0.
Validation and scope
The release candidate passed all 1,653 tests across 97 files, type checking, build, tool-schema lint, and isolated tarball installation checks. All five jobs passed on both the version PR and the release commit on main: Node 20, Node 22, Linux ARM64, Python, and template goldens. The Python job retains five optional GPU-only skips. Packaged CLI checks cover both command aliases, normal replies, empty-reply recovery, and streaming retry with discarded partial tool calls.
The changed behavior was checked with deterministic offline transport fixtures, actual tool execution, regression tests and terminal checks. Live model testing is currently unavailable because the configured Infron endpoint is unavailable. We decided to merge and release these fixes because the affected parsing, retry, cancellation and paste-handling behavior can be verified without a live model. This release does not claim to restore Infron service or establish the real-model effectiveness of the retry penalty.
The npm CLI bundle includes the runtime fixes and shell-timeout setting above. The GitHub source also includes repetition-penalty-aware request hashing for the replay library, associated regression tests, and #39, which removes a wall-clock dependency from the insights test fixtures. The replay hashing change is source-library functionality, not a new npm CLI command. Private working-note paths were also added to .gitignore.
The broader MCP and skills roadmaps remain separate; this release does not claim that their remaining acceptance criteria are complete.
Upgrade
npm install -g motifcode@0.4.1
motif versionRequires Node.js 20.3 or later. Restart running Motif sessions after upgrading. Both motif and motifcode launch the same CLI.
Thanks to @nimbly1 for the paste fix and @adity982 for the cancellation fix.
0.4.0
Motifcode 0.4.0 brings Motif-3 into the existing MCP, Claude Code and Codex skill ecosystem, with connection management, reviewed installation and a more useful terminal interface. This release combines maintainer-authored work in #36 and #37.
MCP connections
- Connect stdio, Streamable HTTP and legacy SSE servers through a bounded adapter that preserves Motif-3's canonical tool list. It validates server arguments, limits results, supports cancellation, backs off failed startups and blocks uncertain writes from automatic replay. Interactive sessions ask before an identical retry; one-shot runs continue to refuse it.
- Manage servers with
motif mcp add,connect,login,logout,doctor,enable,disableandremove, or browse and connect from/mcpin the terminal. - Eight available presets: Context7, GitHub, Playwright, Filesystem, Hugging Face, OpenAI Docs, Tauri and Gmail. Presets require explicit setup; Filesystem asks for a directory, Tauri requires its application bridge, and Gmail remains a conditional preview with separate enrollment/token setup.
- Standard MCP OAuth supports browser authorization, refresh and
--no-browserlogin from an interactive terminal, including SSH. Unattended non-TTY login is refused. GitHub can reuse GitHub CLI's saved account across Motif processes after explicit delegation; tokens are not copied into MCP configuration or model context. - Claude/Codex MCP configuration imports preview changes without writing; explicit
--writecreates disabled entries without copying inline secrets. Project configurations require explicit trust in the reviewed contents.
Skills and plugins
- Install or import compatible Claude Code and Codex skills, including YAML metadata, arguments, invocation policies and supporting resources. Managed snapshots preserve source receipts and support update/removal in user or project scope.
- Use
motif skills add|import|marketplace|installed|update|removeandmotif plugins add|inspect|connectto inspect packages and connect supported bundled MCP services. - Built-in
mcp-setup,skill-setupandplugin-setupguidance supports clear Korean and English setup requests. Five workflow bundles add six skills for library documentation, browser testing, GitHub work, frontend quality, React composition and MCP building. - Compatibility applies to supported skill files and MCP definitions. Other hosts' hooks, agents, private connectors and credentials are not activated or transferred; unsupported features are diagnosed explicitly.
Terminal and sessions
/config,/status,/statsand/usageshow settings, session readings and supported Infron billing information. Settings can be changed and persisted from the terminal.- Compact tool output keeps the conversation readable; Ctrl+O opens the full transcript. Activity feedback and command styling have been improved.
- Interrupted one-shot runs use meaningful signal exit codes and remain resumable when safe. Resuming selects the recorded tool set and validates prompt/tool compatibility; runs interrupted during a command remain guarded.
- Integration fixes keep dashboard, MCP, approval and masked-input panels working together. GitHub's manual device login now honors
--no-browser.
Upgrade
npm install -g motifcode@0.4.0
motif versionRequires Node.js 20.3 or later. Restart existing Motif sessions after upgrading or installing new skills; preset setup within /mcp applies immediately.
Resume compatibility: an interrupted 0.3.4 journal cannot be continued with motif resume FILE on 0.4.0 because the recorded tool schema differs. Journal files are preserved. Finish interrupted work with 0.3.4 before upgrading, or start a new session on 0.4.0.
Validation and follow-up
The integrated release passed type checking, build, tool-schema lint and 1,636 tests across 94 files. CI additionally checks Node 20/22, Linux ARM64, Python and generated goldens. Real PTY terminal checks cover the combined dashboard and MCP interface.
The larger skills and MCP roadmaps (#22 and #23) remain open for their remaining acceptance criteria. Existing permission/cancellation follow-ups (#15–#17) are not claimed as resolved by this release.
Please report interoperability problems and regressions with your Motifcode version, operating system, server or skill/package version, and a minimal reproduction. Omit credentials from reports.
MCP documentation · Skills documentation · Report an issue · Full changelog
0.3.4
Motifcode 0.3.4 improves terminal rendering and protects against unsafe checkpoint resumes. All three fixes are included in the npm CLI.
Fixes
- Reduce footer flicker. Unchanged footer frames are no longer cleared and repainted, including hidden reasoning updates. Height changes still invalidate the layout correctly. #29, fixes #27. Thanks @wooksong!
- Block uncertain writes when resuming. A checkpoint left during a
writenow requires inspecting the working tree before continuing, including older checkpoints that incorrectly recorded the write as read-only. Interactive/resume,--continue, and print-mode resume use the same protection; a completed, durably recorded write can resume normally. #33, fixes #7. - Keep live terminal output out of scrollback. Footer redraws now reserve and clip terminal space correctly so partially streamed output and transient input do not accumulate as permanent history. The fix also handles height/width changes, narrow windows, Unicode character widths, and tab alignment. #34, fixes #28.
If your terminal renders East Asian ambiguous characters as two columns, set MOTIF_AMBIGUOUS_WIDTH=2; the default remains one column.
Update
npm install -g motifcode@0.3.4
motif versionExpected version: 0.3.4. The motifcode command is also available.
Validation
The combined functional changes passed 770 automated tests, including checkpoint safety, legacy journal handling, installed-CLI behavior, and terminal viewport regressions. The actual CLI was also exercised through a PTY and terminal emulator with a local HTTP fixture. These are offline regression checks, not a live-model speed or quality benchmark.
CI passed all five jobs on release commit 4570d635a6776c12ce281ddeed3aa607ed00a924. The release workflow passed a frozen install, typecheck, build, full test suite, and tool-schema lint, then published with npm provenance.
The published npm package also passed all 13 registry and installed-CLI/PTY smoke checks, with its bundle SHA-256 matching the release build and its provenance verified against the release tag, commit and workflow.
Scope
This is a patch release. The separate interactive task-feedback proposal #36 is not included. MCP, Claude/Codex skill interoperability, and serving-performance investigations remain separate work; this release does not claim faster model inference.
Full changelog: v0.3.3...v0.3.4
0.3.3 — print resume and file output fixes
Motifcode 0.3.3 fixes print-mode resume and file-tool output. All three fixes are included in the npm CLI.
Fixes
- Resume with
--print/-ppreserves the checkpoint instead of starting the original task again. Previous assistant/tool history and loop state are restored, and the resume diagnostic goes to stderr so stdout contains only the answer. #25, fixes #18. Thanks @NARUBROWN for the contribution and for checking the maintainer's output follow-up. - Read output no longer adds a phantom EOF line. Empty files, final newlines and range counts are handled consistently while genuine blank lines remain visible. #24, fixes #14. Thanks @isaim0011!
- Write results report actual UTF-8 bytes, including Korean text and emoji, without changing file contents or the line-count policy. #26, fixes #13. Thanks @Cory-Kim!
Update
npm install -g motifcode@0.3.3
motif versionExpected version: 0.3.3. The motifcode command is also available.
Validation
The combined release tree passed typecheck, build, all 702 tests and tool lint locally. The release commit CI passed all five jobs: Node 20, Node 22, Linux ARM64, Python and template goldens. Print resume was also checked with a built CLI against a local HTTP fixture; this is an offline regression test, not a live-model evaluation.
Scope
This is a patch release. Separate tracked work, including uncertain in-flight write handling (#7), print journal paths (#19), MCP (#23), and Claude/Codex skill interoperability (#22), remains open and is not included as completed functionality.
Full changelog: v0.3.2...v0.3.3
0.3.2
Motifcode 0.3.2 includes three focused community fixes. Thank you to @fatihcvs for all three contributions!
Fixes
- Terminal input: preserve Korean, emoji, and other multibyte UTF-8 characters when input bytes arrive in separate chunks. #10, closes #5.
- Prompt history: retain the expanded contents of pasted text so recalling and resubmitting a prompt does not lose its pasted content. #11, closes #4.
- Recording/replay development library: preserve optional transport retry metadata, including
retryable: falseandretryAfterMs: 0, while remaining compatible with older recordings. #12, closes #6. This source-library fix is included in the repository release; the published CLI does not expose this recording/replay library.
Validation
The combined changes passed 694 tests across 42 files, type checking, build, and tool linting. Each contributing PR and its merge to main passed all five CI jobs. A built-CLI terminal test also verified chunked Korean/emoji paste and history resubmission using a local HTTP fixture, without a live model API.
Upgrade
npm install -g motifcode@0.3.2
motif versionRequires Node.js 20 or newer. The expected version output is 0.3.2.
Still open
This patch does not fix the tracked runtime issues concerning approval enforcement in one-shot/print mode (#15), cancellation of active commands and queued tool calls (#16, #17), or checkpoint recovery (#7, #18). In particular, --permissions ask is not yet enforced in one-shot/print mode as described in #15.
Claude Code/Codex skill compatibility (#22) and MCP integration (#23) remain planned roadmap work and are not included in this release.
Full changelog: v0.3.1...v0.3.2
0.3.1
Fixes
motif pluginsnow shows plugin-loading diagnostics even when every plugin fails to load, instead of incorrectly reporting that no plugins are installed. Thanks to @dyk1454683243-sudo in #8; fixes #2.motif doctornow recognizes cache metrics supplied only by the second probe. A reported zero is correctly distinguished from an API that provides no cache metric, and information from the first probe is preserved if the second probe fails. Thanks to @fatihcvs in #9; fixes #3.
Update
npm install -g motifcode@0.3.1
motif versionThe CLI should report 0.3.1.
Full changelog: v0.3.0...v0.3.1
0.3.0
0.2.1 — on npm, with a first-run login
The first release on npm: npm install -g motifcode, or npx motifcode, which asks for your Infron API key and then offers to install the motif command.
Getting in
- The first session asks for the Infron API key in place of the prompt — typed or pasted, masked, never entering the history — checks it with a one-token completion, and saves it to
~/.motif/.envreadable only by you. A rejected key is asked for again with the server's reason; Esc skips, and the first task asks once more. /loginand/logoutinside a session;motif loginandmotif logoutoutside one (printf '%s\n' "$KEY" | motif loginworks in a script). A one-shot task or-pwithout a key asks at the terminal, or in a pipe says to runmotif login.- A run from
npxon a machine withoutmotifis offerednpm install -g motifcodeonce, run in view as a tool cell; the session carries on either way.
The package
motifcodeon npm, withmotifandmotifcodeas commands; description marked unofficial; README and licence included.- A release workflow that publishes on a version tag through npm trusted publishing, with provenance and no stored token, and creates the GitHub release.
Since 0.1.0
- The interactive session in the shape of Claude Code: streaming,
@mentions,!shell lines,#notes, the permission prompt, skills as commands, Codex-style compaction,--continueand/resume, themes, a window that can be shrunk mid-session. - The
.motif/backend: settings, skills, agents, plugins, notes, one journal per task, history. - The hosted endpoint: the credential read from
.envand withheld from every command the agent runs,Retry-Afterhonoured,motif doctorreporting what the server returns. - The README rewritten around the model, with the logo as an SVG, screenshots, and a Korean edition.
Motif-3 is free on Infron through September 2026; Motifcode is not affiliated with Motif Technologies or Infron.