Skip to content

Releases: tyhh00/HNA-Code

v0.5.0 — A macOS build that actually opens + all-accounts resume

Choose a tag to compare

@tyhh00 tyhh00 released this 27 Jul 01:05

Bug-fix release.

  • macOS: the .dmg is now ad-hoc signed, so it opens instead of failing with a "damaged" error. Apple Silicon only for now.
  • Resume shows sessions from all your Claude accounts, tagged with the account that owns each one.

Install: see the README. If a build won't run on your machine, or you'd rather skip the OS warnings, just run from source: npm install && npm start.

v0.4.0 — Images in cells, per-cell reload, additive resume

Choose a tag to compare

@tyhh00 tyhh00 released this 23 Jul 02:40

Cells now behave like real terminals for images, every cell can restart its claude in place, and bulk-resume is finally additive.

🖼 Images work like a real terminal

  • Drag an image (or any file) into a cell and its quoted path is typed straight into claude's prompt — exactly what Terminal/iTerm do, and how claude expects to receive dragged images. Paths with spaces are quoted; multiple files work.
  • Paste an image (Cmd+V on macOS, Ctrl+V elsewhere) and claude now reads it off the system clipboard itself. Previously the paste was intercepted as text-only, so images arrived "blank" — now the raw ^V is forwarded to the terminal, the same byte a plain terminal sends, and claude does its native clipboard read. Text paste is untouched.
  • Fixed along the way: the Windows/Linux Ctrl+V / Ctrl+C clipboard bridge was silently broken (the sandboxed preload has no clipboard access) — clipboard now goes through the main process, so text copy/paste works properly there too.

⟳ Restart a cell in place

Every cell header has a new ⟳ button next to ✕. Click it and that cell's claude restarts resuming the same conversation in the same folder, under the same account — for the classic "I added the MCP server, restart me to pick it up", without losing any context. Fresh cells just restart clean.

🗂 Bulk-resume is now additive

Resuming sessions from Settings used to misbehave: empty panes (after a ✕) were skipped — so "resume 5, only 1 arrives" — and it could overwrite conversations already running in the window. Now:

  • Never clobbers. Sessions land only in free slots: an empty pane (right where the ✕'d one was) or a brand-new terminal that hasn't started a conversation. Cells with real conversations are untouched.
  • Dedupes. Anything already open in the window is skipped automatically.
  • Grows the grid a layout size when free slots run out, before offering the tabs/extra-windows overflow.
  • The import list shows what's already here — sessions open in this window appear dimmed with an "in this window" chip and can't be re-selected.

✅ Verified

Every fix is covered by new end-to-end Playwright tests driving the real app (test/reload.mjs, test/import-additive.mjs), plus the full existing suite.

📦 Downloads

macOS .dmg, Windows .exe, Linux .AppImage — attached below by CI.

Builds are unsigned. On macOS, first launch: right-click the app → Open, or run xattr -dr com.apple.quarantine /Applications/HNA-Code.app. On Windows, click through SmartScreen (More info → Run anyway).

v0.3.0 — Multiple Claude accounts

Choose a tag to compare

@tyhh00 tyhh00 released this 22 Jul 01:53

Run many Claude Code sessions in a grid — now across multiple Claude accounts.

✨ Multiple Claude accounts

Run several Claude logins side by side and see, per cell, which account it's burning.

  • Auto-discovery — every ~/.claude* config directory (CLAUDE_CONFIG_DIR) shows up as a profile, with the signed-in account read from its config. Add directories outside home, or hide ones you don't want, in Settings.
  • Per-cell account badge — each cell shows a colour-coded chip for the account it's running as, and tints its border to match. Set the colour per account in Settings.
  • Switch a session between accounts — click the badge and pick another account. The conversation is copied into that account's store and resumed there; the original stays put as a rollback, and the newest copy is always the source of truth. The binding persists, so reopening a window relaunches each cell under the same account.
  • Explicit porting — switching a live conversation asks first: Proceed (carry it over) or Start new session, with a save-my-preference option. Empty cells just rebind, no prompt.

Built for seamless multi-account use — when one account runs low, move a session to another with a click.

🎬 Staggered resume

Resuming several sessions at once now opens them one at a time (0.5s apart, with an arrival animation) so it's clear that multiple sessions came up — not one silent repaint.

🗂 Overflow prompt

When you resume more sessions than the grid can show, HNA-Code now asks where the rest should go — extra windows, or stacked as tabs in this window — instead of deciding silently. Your choice can be remembered.

🔧 Under the hood

  • Electron 32 → 43.1.1 and electron-builder 25 → 26.15.3. This clears all npm audit findings (previously 9 high + 1 critical, including the critical node-tar chain). The macOS build was verified end to end: the app installs from the DMG, launches, and spawns real terminals.
  • CI release pipeline moved to Node 24.

📦 Downloads

  • macOS (Apple Silicon): HNA-Code-0.3.0.dmg — built and verified runnable.
  • Windows / Linux: attached by CI.

Builds are unsigned. On macOS, first launch: right-click the app → Open, or run xattr -dr com.apple.quarantine /Applications/HNA-Code.app. On Windows, click through SmartScreen (More info → Run anyway).

The multi-account feature is verified on macOS; Windows behaviour for account switching hasn't been tested yet.

v0.2.0-alpha

Choose a tag to compare

@tyhh00 tyhh00 released this 21 Jul 01:37

Early alpha release, basic functionality with claude code support