Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>hcscat Multi CLINew to Visual Studio Code? Get it now.
hcscat Multi CLI

hcscat Multi CLI

hcscat

| (0) | Free
Selected AI sessions in registered projects, with native editor terminals
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

hcscat Multi CLI

Register project folders and explicitly choose Codex, Antigravity (agy), and Claude Code sessions for each project in VS Code. Work in native CLI terminals in the editor area. hcscat Multi CLI runs on Windows and does not depend on Orca or herdr.

Version: 0.8.1 · Local Windows x64 · VS Code 1.140+

Source repository: hcscat/hcscat-multi-cli. Report bugs and feature requests through GitHub Issues.

This README contains the public product overview, current implementation status, validation results, and roadmap. The UI supports Korean and English, following the VS Code display language.

  • Features
  • Installation and usage
  • Language and subscription usage
  • Editor terminals and automatic layout
  • Discovery and Resume limitations
  • Settings and diagnostics
  • Development
  • Current status and validation
  • Roadmap and open decisions
  • License and third-party notices

Features

Provider Session discovery Resume a saved session New CLI in a selected folder
Codex Local App Server database index Supported Supported
Antigravity (agy) CLI/app/IDE summaries and recent-session cache CLI sessions in the default store Supported
Claude Code Official Agent SDK saved sessions and CLI execution records Verified saved conversations in the same store Supported

One project TreeView contains selected sessions from different providers. Session rows and terminal tabs use the ChatGPT/OpenAI Blossom for Codex, Google's gradient G for Antigravity, and the official Claude Spark for Claude Code. Codex switches between black and white marks with the theme; Google and Claude retain their official colors. The agy marker identifies the provider, not the model used in an individual session. All assets are packaged for offline use; see third-party notices for sources and ownership.

The view has two levels: registered project path, then selected sessions. Paths are not repeated beside session titles. These paths and titles are synthetic examples:

C:\example\project-a
  Feature implementation    Codex
  Documentation review      Antigravity (agy)
C:\example\project-b
  Test review               Codex
  Source review             Claude Code

The view displays only registered projects and selected sessions. Opening, refreshing, or redisplaying it, and changing the VS Code workspace, never queries native provider catalogs. Register any existing local project folder, including folders outside the open workspace.

Add existing sessions searches one provider at a time. The default search covers the registered project and its descendants; exact-folder search is also available. An expanded search includes records without known paths, which require explicit association with the project's launch folder. Choose multiple records to register without automatically resuming them.

Registration metadata is stored in the current VS Code profile's local extension state, independently of its workspace, and is not registered for Settings Sync. No transcript or credentials are stored. Unregister removes an entry from this extension only; native conversations, folders, and open terminals remain intact.

Rows show Terminal open · this window only for an owned Resume terminal matching the provider, store and session identity. External state unverified is not a closed/idle status. Newly created session IDs, other apps/windows and earlier activations are not inferred from titles or folders; Claude entries can therefore remain unverified. Presence does not verify AI activity or follow conversation switching inside the CLI. The terminal-shaped row action is Resume, not the status indicator. See privacy, changelog and Marketplace preparation and identity migration. A concise listing draft is available for review. Publisher hcscat is confirmed; publication awaits owner testing.

Installation and usage

Requirements: Windows x64, VS Code 1.140 or later, and the native CLI plus authentication/configuration for each provider you want to use. Execution requires a trusted local workspace. Codex discovery requires CLI 0.153.4 or later, but compatibility with every later release is not guaranteed.

  1. Build a VSIX and SHA-256 sidecar under release/<version>/ with npm run package, following DEVELOPMENT.md. Existing output files are never overwritten; use a new version or a separate --out path for a verification rebuild.
  2. Run Extensions: Install from VSIX... in VS Code, select the package, and reload the window.
  3. Open hcscat Multi CLI in the Activity Bar and choose Register project folder.
  4. Use Add existing sessions on the project, select an AI and search scope, then choose the conversations you want to work with. Repeat for another AI in the same project.
  5. Select a registered session to inspect its details or copy its ID. Use Resume for Codex or a supported agy CLI session.
  6. + opens a new CLI for a selected AI in a registered project. Individual provider new-session commands can also choose another existing folder.

The + action opens the native CLI's new-session screen. The extension does not send a prompt or select a model. Follow the CLI's login, folder-trust, and other startup steps. A session ID may not be saved until the first interaction; use Add existing sessions after it is saved. Refreshing the registered view does not discover new native sessions.

Language and subscription usage

Extension messages, commands, and settings follow the effective VS Code display language. Korean locales use Korean; English and other locales use English. Use Configure Display Language, install the appropriate language pack, and restart the window. The extension does not independently choose the operating system language. User titles, paths, and native CLI output remain unchanged.

The left status bar shows used percentages, for example Used: Codex 5h 12%/7d 36% · Claude 5h 11%/7d 10% · Agy Gemini 5h 1%/7d 0%. Known Codex Pro variants summarize 7d only; Plus, Go and unknown plans retain the reported periods. Claude shows its 5h/7d windows. Agy keeps up to three independent model groups separate, with +N for additional groups. Unrelated quotas are never averaged or combined.

Hover, or click the status bar and choose a provider, for every reported window, used/remaining percentages, relative and absolute reset times, plan, credits, reported earned-reset count and receipt time. A Pro 5h window remains in details if the server reports it. Context usage and estimated token costs are separate. Missing/unconnected data is —; * marks data older than ten minutes, data whose reported reset time has passed, or the last Codex value after a failed refresh. Missing fields are never fabricated. See usage display rules and validation.

Provider Native source and connection
Codex Official App Server account/rateLimits/read, using the configured native executable, CODEX_HOME, and existing login; no separate setup
Claude Code Click the status bar → Connect Claude Code usage; passively receives native statusLine subscription limits. Official fields can appear after the first API response on Pro/Max
agy Click the status bar → Connect Antigravity (agy) usage; passively receives quota from the default-store native statusLine

Connecting Claude/agy changes only statusLine in the native CLI settings. It preserves the prior custom/Orca command's input and output and saves a small local restoration record. Open the CLI or let its statusline refresh to receive data. Disconnect usage restores the prior statusLine only if the installed value is unchanged; external edits are never overwritten. These connections do not install Hooks or change existing lifecycle Hooks. Disconnect before uninstalling the extension. Reconnect after an upgrade changes the installation path. Hiding the status bar does not disconnect a native statusline.

The extension creates no additional authentication, copies no credentials, and sends no model prompt. Profile-local caches contain only quota, timestamps, and optional plan/credit metadata. Codex polling runs at 120-second intervals, manual refresh is limited to once per 30 seconds, and failures back off to 16 minutes. Unfocused windows skip new polls; an in-flight request has a ten-second timeout. Turning off the status bar prevents new polling. Claude/agy helpers run only when the native CLI requests a statusline; no persistent service is added.

Editor terminals and automatic layout

Resume, new CLI sessions, and the Codex session picker open in the editor area rather than the bottom panel. The extension arranges terminals it created in the current window:

Terminal count Layout
1 One group
2 Two columns
3 Three columns
4 2x2 grid
5-9 Up to three columns, with the final column sized for the remaining terminals

Rearrangement moves existing processes. Repeated Resume of the same saved session reuses its terminal; the notification offers a separate new terminal if needed. + always opens a fresh CLI. Closing a managed terminal rearranges the remaining terminals when global layout is safe. The limit is nine.

Document tabs are preserved, although editor groups may merge or move. Other extensions' terminals and terminals restored after a window reload are not automatically managed. After the last managed terminal closes, the current document layout remains in place.

When another editor terminal is present, a new CLI opens as a tab in the current editor group while the existing layout and processes are preserved. Closing a managed terminal also leaves that layout intact. After the unrelated terminal moves to the panel or closes, a later launch can resume automatic layout for terminals whose ownership is known. Retained terminals are not adopted after ownership resets; colliding new names receive a suffix. See the coexistence fix and validation.

If another editor terminal is present, new automatic layouts are blocked to avoid moving it indirectly. Move that terminal to the bottom panel or close it before opening another managed terminal. A future alternative without automatic layout is under consideration.

Discovery and Resume limitations

Codex: Listing and Resume use the same native executable and effective CODEX_HOME. Resume checks the registered store identity and reads current ID metadata through thread/read before launching. Discovery reads the non-archived database index with useStateDbOnly=true, so unindexed records may be omitted. The full CLI picker runs codex resume --all, separately from the registered view. Desktop origin alone does not establish or rule out CLI compatibility.

agy: Resume validates a CLI-origin UUID in the default .gemini store and checks for a nonempty source conversation file immediately before running agy --conversation <ID>. App/IDE records are not direct CLI Resume targets. Custom data roots and unverified data-root environment overrides support listing only. Deletion after the file check can still cause a native Resume failure.

Antigravity's summary schema is private and can change. Version differences, locks, or missing columns may cause partial discovery failures. Metadata queries do not modify DB records, but SQLite read-only connections can create or update -wal/-shm sidecars. Synthetic byte-preservation tests apply to the main DB file.

Claude: Resume resolves the native executable/configuration folder, verifies the registered store and current saved-session metadata through the official SDK, checks native execution records and runs claude --resume <UUID> in the registered folder. Live-only records without a saved conversation are rejected. Reported active/unknown background records are blocked because recent native versions can attach them automatically. This is a check at launch time, not global activity monitoring. Missing paths are not guessed, no prompt/fork/permission override is injected, and native Trust/confirmation prompts remain interactive.

Codex registration search reads metadata pages and compares directory boundaries. Each operation loads up to 50 new matching records or 20 pages; Find more continues from the remaining cursor. The total scan limit is 10,000 records, including malformed or duplicate Codex entries. Claude and agy catalogs are also capped at 10,000 records. Provider query failures and malformed-record counts remain separate from the persistent registration list.

Source, query-server status, and terminal creation are not proof of successful history restoration. Inspect the native CLI screen for the restored conversation or errors. Resume reopens saved state; it does not attach to another terminal process.

Remote-SSH, WSL, containers, macOS, virtual workspaces, session deletion/archival, automatic repair/migration, and a custom chat UI are outside current support.

Settings and diagnostics

Executable and data-root settings use user/machine scope. Workspace and folder settings cannot replace them. Usage visibility is a window setting.

Setting Purpose and default
multiCli.executablePath Native Codex executable or a supported official npm shim; otherwise search PATH
multiCli.codexHome Explicit Codex store; otherwise CODEX_HOME or the user's default .codex
multiCli.antigravityExecutablePath Native agy.exe; otherwise search PATH and the standard user installation location
multiCli.antigravityDataRoot Parent directory for catalog discovery; default: the user's .gemini
multiCli.claudeExecutablePath Native claude.exe; otherwise search PATH and the standard user installation location
multiCli.claudeConfigDir Explicit Claude configuration directory; otherwise CLAUDE_CONFIG_DIR or the user's default .claude
multiCli.showUsageStatusBar Show left-side subscription quota and enable automatic polling; default: true

An invalid explicit setting is not silently replaced with a different executable or store. Diagnostics report the registered project count and explain that view display does not query catalogs or inspect global external running state without recording full conversations, credentials, raw provider errors, or personal paths in the extension's Output Channel. App Server and native CLIs may still write their own logs and state.

When a default store does not yet exist, a new native CLI may initialize it. The extension does not create the store itself and rejects nonexistent explicitly configured stores. Pending launches are cancelled when their configuration becomes stale.

Development

Use Node.js 22.13 or later and npm. The Windows CI workflow uses Node.js 22.

npm ci
npm run typecheck
npm test
npm run check:privacy
npm run package

The source snapshot can be built independently. Generated outputs, installation profiles, provider data, and credentials are excluded. CI runs synthetic tests and builds a VSIX artifact; it does not invoke real AI accounts or automatically publish a GitHub Release or Marketplace extension.

  • Architecture and source map
  • Development and testing
  • Package review and release procedure
  • Public-source privacy review and commit preparation
  • AI contributor instructions
  • Third-party notices

Current status and validation

Version 0.8.1 (2026-10-27): use the approved pixel-cat and three-CLI composition as the extension-listing icon. The manifest points to media/icon.png at 256px, matching the official high-resolution recommendation; 128px/64px source variants remain available. Original eye whites/pupils and hard black/white pixels are preserved without vectorization or smoothing. Previous terminal-only artwork is archived locally. The extension runtime is unchanged from 0.8.0. The reviewed-image hashes and public export allowlist cover only these three PNGs. See Marketplace preparation for upload steps; publication is performed by the owner.

Version 0.8.0 (2026-10-27): add verified Claude saved-conversation Resume, editor-terminal reuse and presence tracking, shorter usage-hover lines and an original 256px extension icon. Typecheck and 115 tests passed. A new authorized test conversation received one synthetic response; real Claude Code 2.1.311 then restored its known history in an editor terminal without a new prompt, reused the original PID and closed test-owned processes. Native folder/browser prompts were handled only by the opt-in test harness; the product leaves them interactive. See Claude Resume, hover and icon validation. Publication remains pending owner testing.

Version 0.7.5 (2026-10-27): generalize installation guidance instead of describing a maintainer's particular installed profile. Runtime behavior is identical to 0.7.4. Keep the same publisher/name when updating; a prior local-development publisher is a separate identity requiring a reviewed migration. Binary validation remains separate from publication.

Version 0.7.4 (2026-10-27): show used percentages for both 5h/7d periods in the status bar, a weekly-only summary for known Codex Pro variants, independent Agy model groups and the capitalized label Agy. Hover and the provider detail picker retain all windows, remaining percentages, reset countdowns/dates, plan/credit metadata and reported earned-reset summaries. Legacy minute-based cache labels remain readable. No authentication, native statusLine/Hook, polling interval or catalog-discovery changes were introduced. Typecheck and 107 tests passed; real VS Code 1.143.1 development Hosts verified both English and Korean UI with synthetic reports and no model/native-setting changes. A separate native Codex 0.163.0 metadata read returned 5h/7d fields without a model prompt. Detailed verification distinguishes these checks from binary publication. Installation data remains scoped to the extension identity and VS Code profile.

Version 0.7.3 (2026-10-27): publisher hcscat is confirmed and the manifest now uses installation ID hcscat.multi-cli. Host-test lookups derive the identity from the manifest. Runtime behavior remains that of 0.7.2. The new identity is tested in an isolated profile; a previous local-development installation uses a different ID. Registrations and usage connections are not automatically migrated across IDs. Follow the migration and publication guide before replacing a local development installation. No public upload is performed during this preparation.

Version 0.7.2 (2026-10-27): session rows track explicit Resume-terminal presence in this activation and leave external/new-session state unverified. Open/close events update the tree without catalog scans, watchers or polling. Multiple explicit terminals remain tracked and a surviving original can be reused after another closes. Publisher registration is being prepared; multi-cli-local remains the local identity until an actual publisher and private local migration are confirmed. English listing, privacy and changelog drafts are prepared without publishing an extension.

Typecheck and 102/102 tests passed. Real VS Code 1.143.1 development and isolated installed-VSIX checks verified command/view events, open/reuse/close updates and no automatic catalog discovery using virtual terminals and synthetic metadata; no native provider or model ran in these presence checks. The local 0.7.2 archive is 592,017 bytes, SHA-256 2361bda489f6feaf844a5e5ce89fd062422bce7967b4409c344db6b0eef8a7a8, with 40 entries, zero package privacy findings, and 21 matching runtime JS/MJS files. CHANGELOG/PRIVACY and license/notice bytes were verified. The default local index was updated to 0.7.2; user windows were not forcibly reloaded. Public source has 100 files, zero privacy findings, and 18 English Markdown files / 90 relative links passing checks. No public release or publisher change occurred.

Version 0.7.1 (2026-10-27): an unrelated editor terminal no longer blocks new CLI startup. Global layout is skipped and the new terminal opens in the explicitly resolved current group. Close reflow preserves unrelated editors; safe automatic layout resumes on a subsequent launch. New terminal names avoid retained-name collisions. Duplicate-identity, late-conflict, Trust, cancellation and nine-terminal guards remain. The original 0.7.0 rejection was reproduced for all three providers; the detailed report records the new checks and limitations. Native Claude startup is now explicitly authorized and tested in a new test workspace; saved Claude-session Resume remains unimplemented.

Typecheck and 98/98 tests passed. Development and isolated installed-VSIX coexistence checks passed with Claude Code 2.1.311, without model input. A separate real Host revalidated one-through-nine layouts, original processes/documents and the capacity limit. The local 0.7.1 VSIX is 588,091 bytes, SHA-256 bad80c3d09da29394656d45370bd60ba3f5a4823de27d2f3cec401c76677dafb; all 38 entries passed privacy checks, and 21 runtime JS/MJS files match the build. The default local installation index was updated to 0.7.1; existing windows require a user-controlled reload. Public source has 95 files, zero privacy findings, and 14 English Markdown files / 72 relative links passing checks. No commit, push or external release was performed for this fix.

Performance measurement update (2026-10-24): product runtime code and version 0.7.0 remain unchanged. The new performance-tests/ harness covers synthetic scale tests, native Codex metadata and agy catalog discovery, and an isolated real Extension Host. Run npm run build first and invoke the tools directly with node; native/host runs require --native and a fresh .local/performance/<run>/ directory. No Claude CLI execution, Resume, model request, authentication setup, or Hook/statusLine change is part of these benchmarks. See results and limitations and reproduction instructions.

The measured current workload did not reproduce a large recurring delay. Large catalogs, registered-list processing, and the lack of visible progress while discovery is pending remain separate improvement candidates. These observations do not establish full UI latency or make caching universally unnecessary. No automatic product optimization, installation, or release accompanies this measurement work. Generated profiles and VS Code logs may contain local paths and remain private; sanitized result JSON is kept separately.

Validation on 2026-10-24: 98 native/Host metadata samples with zero errors, 150 empty registered-tree refresh checks, and 168 timed synthetic samples. Typecheck and 3/3 benchmark functional tests passed. That public snapshot had 92 files with zero privacy findings; 13 English Markdown files and 68 relative links passed checks. Export preserved independently maintained Markdown. The archived 0.7.0 checksum and all 21 runtime JS/MJS files matched that build. These measurements do not replace later runtime or installation checks.

Version 0.7.0 (2026-10-19): Korean/English runtime and manifest localization follow the VS Code display language. The left status bar reads native Codex account limits and optionally receives Claude/agy statusline quota without new authentication or model prompts. Native statusline connect/disconnect preserves existing custom output and refuses to overwrite external changes. The obsolete hidden session TreeView and its events were removed; transient registration search remains. Shared PowerShell quoting replaces duplicate implementations. Other/custom CLI support is deferred.

Typecheck, unused-local/parameter checks, and 93/93 synthetic/regression tests passed, including actual Windows bridge commands for agy and Claude Bash using synthetic JSON. A real native Codex quota read and agy startup reported quota without model input; the previous agy statusLine was restored after the isolated test. English and Korean Extension Host checks verified left alignment and the localized project prompt. The final installed VSIX verified registration without automatic discovery, one-through-nine layouts with original PIDs/document preservation, capacity enforcement, native agy quota receipt, and statusLine restoration. Initial layout runs exposed a focus race; bounded retries on the same owned terminal resolved the final installed test. Existing-session history restoration was not newly repeated. Claude subscription limits remain unverified with a real account; its native CLI was not executed.

At the 2026-10-19 validation, the public snapshot had 84 files and zero privacy findings; this is a historical inventory, not the count after later documentation and benchmark additions. The final local 0.7.0 VSIX had 38 entries, zero package privacy findings, and 21 runtime JS/MJS files matching that build. LICENSE/NOTICE and the checksum were verified: 586,544 bytes, SHA-256 59b3496d5c83d1d270f690e22e9ba7f663809f93a6b5f6dff01ee3a9572b29dd. It contains the local Korean README, so rebuilding the English snapshot creates a separate artifact. The default user-profile installation and remote repository were not updated by that work. Earlier-version results below remain historical.

Version 0.6.1 (2026-10-11): cache-only agy records require a nonempty native conversation file. Stale recent-session pointers left after native deletion no longer recreate removed conversations in registration search. Provider cache files are not modified. This corrects a behavior found during the authorized local cleanup after the first 0.6.0 verification package; the earlier archive remains intact.

Version 0.6.0 (2026-10-11): project registration and explicitly selected mixed-provider sessions replace the three provider views. Registration survives extension activation and is independent of the open workspace. View display and registered-list refresh perform no native discovery. Codex Resume reads current metadata; agy retains its CLI-origin/default-store checks. Unregistering never deletes native data. Configuration changes, registration removal, and Trust loss during pending launches prevent execution.

The development Extension Host and the final 0.6.1 VSIX installed in a separate test profile verified registered Codex and agy history markers, duplicate terminal/PID reuse, simultaneous two-column display, registration removal, and one-through-nine editor layout behavior. Document tabs and original processes were preserved; a tenth request was blocked. A new authorized synthetic Codex response and persistent ID were verified. agy startup reported exhausted AI credits, so fresh agy response generation was not repeated; an existing authorized synthetic agy conversation restored its known marker without a new prompt. Claude discovery/execution was not run for this validation.

Typecheck and 82/82 tests passed. All 69 public source files passed the privacy scan; ten English Markdown documents and 55 relative links/anchors passed validation. The final local 0.6.1 VSIX has 30 entries, zero privacy findings, and 15 runtime JS/MJS files matching the build. License/notice bytes and checksum were verified. The preserved local artifact is 562,229 bytes, SHA-256 0b56637f0981c5e8b0885ff3747926090a4e9eeecda6f5a925396dd13e34af51; it includes the local Korean README, so a build from this English snapshot is a separate artifact. Earlier archives were preserved. This update did not replace the default user-profile installation, push source changes, or publish a release.

Some Codex 0.159.2 test attempts stayed on native startup screens before a subsequent attempt with the same installed package and settings passed. No shared daemon was terminated or reset, and no daemon override was injected. These checks do not establish universal compatibility across CLI versions or sessions. Concurrent registration edits from multiple VS Code windows remain unverified.

Distribution audit (2026-10-06): all 64 public files and both reachable source commits passed the repeated privacy review. The only identical asset pairs inside this repository are the light/dark Google and Claude marks, retained as separate theme entry points. The CI package for commit 54d75ac contains 28 entries, passes the generated-file privacy scan, and matches its checksum: 562,429 bytes, SHA-256 42915a70efbadae9d479707b71bc2b3e278c56494410824cd8c7b94fdd5cf27a. Its runtime files match the older local 0.5.3 archive; its manifest and packaged documentation differ. Use a package built from the intended release commit. CI artifacts are retained for 14 days; no GitHub Release or Marketplace extension was published during this audit. Publication steps are documented in RELEASE.md.

First public source publication (2026-10-05): the initial source commit edbdd53 was pushed to main. Its Windows CI run passed locked dependency installation, typechecking, 70 synthetic tests, source privacy review, VSIX packaging, and artifact upload. The committed source contains 64 files; the local source scan found zero privacy issues, and ten English Markdown files with 54 relative links/anchors passed validation. A separate locally built verification VSIX passed inspection of all 28 entries. CI artifacts are temporary build outputs; GitHub Release and Marketplace publication remain pending. Live AI history restoration was not repeated for this source publication.

Version 0.5.3 (2026-10-05): the selected display name is hcscat Multi CLI. The extension listing, Activity Bar, 21 command titles, settings heading, Output Channel, App Server display title, development launch label, and current attribution documents use the new name. Package/publisher identifiers, commands, configuration keys, views, and the App Server identity remain stable. These identifiers and support declarations were compared with the preceding package manifest. No session-handling behavior changed.

Typecheck, all 70 tests, and packaging passed. The final VSIX contains 28 entries and passes the privacy scan including generated runtime files. Its display name, license/notice content, README, 13 runtime files, and checksum were verified. The new local artifact is multi-cli-win32-x64-0.5.3.vsix, 556,466 bytes, SHA-256 2f7a2117cf94b97522998b442b4de8e5537fe33f0f2313b846bf0a0a273de3dc. It was built with the local Korean README; building this English source snapshot produces a separately verifiable artifact. All eight older archives were preserved. This update did not install the extension, repeat live AI restoration/UI tests, or publish externally.

At the initial display-name review, the public snapshot contained 63 files and passed its privacy and documentation checks. The subsequent source publication added .gitattributes, bringing the repository to 64 files. The source is now a Git repository and has been pushed to GitHub. See publication readiness for the commit-file inventory and optional additions.

Latest licensing update (2026-10-04): the owner selected Apache-2.0 and original-author attribution to hcscat. LICENSE and NOTICE are included in the source snapshot and VSIX allowlist, and packaging no longer skips the license-file check. Typecheck and all 70 tests passed. A separate same-version verification VSIX passed checks of its 28 entries, license/notice bytes, manifest author/license, VSIX license reference, and SHA-256 sidecar; the package privacy scan found no issues. The source snapshot has 62 files with no privacy findings, and nine English Markdown files with 49 valid relative links/anchors. The official license text is unchanged. All eight historical VSIX archives retain their original hashes. No new runtime behavior, installation, live-provider test, or external publication was part of this update. The extension name and version were unchanged at that stage; version 0.5.3 adopts the selected name above.

Version 0.5.2 replaces the custom provider glyphs with the marks described above and removes the old Unicode glyphs from view headings. It preserves the v0.5.1 session and terminal behavior. The existing v0.5.1 fixes include PowerShell smart-quote escaping, host-environment cleanup, per-record error isolation, and lazy reloads for hidden views. That review also removed redundant page normalization/store hashing, tied App Server client metadata to the manifest version, clarified SQLite sidecar behavior, and upgraded the packaging tool to @vscode/vsce 4.0.0 to remove a vulnerable transitive dependency path.

The table below records the v0.5.1 validation runs from 2026-10-03 and 2026-10-04. These history-restoration and live-provider results were not repeated for the icon-only update.

For v0.5.2 (2026-10-04), typecheck and all 70 automated tests passed. The six packaged icon variants were visually inspected at 16px and 40px on light and dark backgrounds in a Chromium-based browser. This was an asset-rendering preview, not a new live VS Code screenshot or a history-restoration test. Claude's former custom eight-spoke glyph was replaced with the official irregular Spark; its path and color match the press-kit asset. The Google SVG wrappers contain the unchanged official PNG, so they should not be described as all-vector artwork.

The v0.5.2 build and packaging checks passed: all 26 VSIX entries passed the privacy scan, and all 13 runtime JS/MJS files plus seven SVG assets matched the current build/source byte-for-byte. The public snapshot has 59 files and passed its privacy scan; nine English Markdown files and 42 relative links/anchors passed validation. SVG parsing and passive-content checks passed, as did the original Google PNG hash and Claude path/color comparisons. No default-profile installation was performed for this update.

Historical v0.5.2 local artifact: release/0.5.2/multi-cli-win32-x64-0.5.2.vsix, 550,936 bytes, SHA-256 5436b0eb01d521405db58df49073049be3c91fc633af7bf18bfdc98cbd74d663. This identifies the preserved local package; rebuilding with newer documentation or the independent public README produces a different package hash. Release binaries are excluded from this source snapshot and Git.

The subsequent release-directory update preserved all eight local VSIX binaries (0.1.0 through 0.5.2) byte-for-byte and added SHA-256 sidecars. Packaging, installed-test lookup, and CI artifact paths now use release/<version>/. Typecheck and all 70 tests passed again. Default and alternate package outputs, checksum validation, overwrite refusal, and rejection of output paths outside the project were checked locally. Both verification packages passed privacy scans of all 26 entries. That snapshot contained 60 files and passed its privacy scan; nine English Markdown files and 42 relative links/anchors passed validation. This update did not repeat live AI restoration, installation, or remote CI, and did not change the runtime version. License selection was still deferred at that stage; the later Apache-2.0 decision is recorded below.

Area Verified result Limits
TypeScript and automated tests Typecheck and 70/70 unit/synthetic tests passed Not a substitute for live CLI verification
Windows arguments/environment Ten native PowerShell cases covered ordinary/smart quotes, preserved arguments, benign injection probes, and environment cleanup Synthetic executables and inputs
Installed v0.5.1 Provider catalogs/TreeViews, special-character arguments, empty store, Codex picker, and owned-process cleanup passed Separate test profile, not the default user profile
Editor layout Real Extension Host: 1-9 groups, original PIDs/document tabs preserved, 9-to-8-to-9 reflow, tenth request blocked Not a visual readability or screenshot review
New Codex/agy sessions Authorized synthetic prompts produced responses and saved records Codex used a new editor terminal; agy used native print mode
Codex/agy Resume Two independent close/reopen cycles per provider restored known markers; duplicate Resume reused the terminal/PID Does not establish compatibility for every saved conversation or agy app/IDE record
Claude records A real login-failure record appeared through the official SDK and TreeView Normal authenticated model response remains unverified
Scope filtering All three providers passed path-to-session grouping, descendant inclusion, unrelated-path exclusion, and exact-folder filtering Tested with isolated synthetic workspaces
Workspace Trust Installed extension inactive and zero terminals in a genuinely untrusted window; trusted control activated Revocation through the UI during a pending launch remains unverified
Process lifecycle Final three dispose and three stdin-EOF cycles ended the server and observed conhost descendants No MCP leak reproduced in this listing-only configuration; not a guarantee for all MCP setups
Historical v0.5.1 discovery latency Ten measurements per provider: median Codex 114ms, agy 101ms, Claude 214ms Earlier version, data volume, and discovery contract; not a baseline for current registration searches or a large-store guarantee. See current measurements
Source/package review Independent install/build/tests/package passed; 26 VSIX entries and 13 runtime JS/MJS files matched the verified build; dependency audits reported zero vulnerabilities Historical results, not a perpetual audit claim

The public snapshot had 61 files at the end of the additional validation run and passed its privacy scan. Public source and extracted packages are scanned separately. SDK namespace/UUID constants have reviewed exceptions limited by bundle path and hash; real session IDs are not exempted.

Earlier validation remains historical evidence:

  • v0.4.0: 50 tests; real four-process layouts with PID/document preservation; authorized Codex/agy history restoration and simultaneous display.
  • v0.5.0: 63 tests; independent npm ci, typecheck, tests, privacy scan, and packaging; all three native startup screens and three-column layout; authorized Codex/agy history restoration. New persistent IDs and five-to-nine layouts had not yet been verified at that stage. Source privacy scan covered 59 files and package review covered 26 entries. See SOURCE_REVIEW.md.
  • v0.5.1: 70 tests, the security/stability fixes above, and the subsequent real-session/layout validation. See REVIEW_0.5.1.md and FOLLOW_UP.md.

Previously verified local artifacts, before this English documentation consolidation:

Artifact Size SHA-256
multi-cli-win32-x64-0.5.1.vsix 321,856 bytes 6899c3c789111de1de3674ce4d5bbc8f8a722aa106c13cd56435dcd4a2a3472a
multi-cli-win32-x64-0.5.0.vsix 320,841 bytes f846c2568303570b8ca505ced440499a3b6913d69b38c906aad53ac957159647

Building with updated documentation or repository metadata can change package size and hash even when runtime code is unchanged. Record the actual output of each release build. The owner authorized the first public source push on 2026-10-05. Marketplace publication remains pending. Remote windows, minimum-runtime compatibility across versions, and visual theme/readability reviews need additional coverage.

Roadmap and open decisions

The implemented goal is local discovery for three providers, explicit Resume for supported saved sessions, and a new native CLI in a user-selected folder. Authentication and provider interaction remain native. The following 1-6 identifiers preserve the shared follow-up numbering and distinguish implemented work from remaining verification needs.

ID Open item Recommended direction
1 Coexist with foreign editor terminals Implemented in 0.7.1: open in the current group without global layout mutation
2 Network and special paths Separate local disk support from explicitly chosen network access; distinguish UNC, mapped drives, device paths, and valid local extended paths
3 Titles, commands, and status feedback Local Resume-terminal presence implemented in 0.7.2; direction-control handling, palette cleanup and other pending feedback remain separate
4 Reduce the production API surface Replace mutable internal-object exports together with the installed-test driver; no new privilege escalation was reproduced
5 Remaining live verification Claude saved-history Resume and reuse are verified in 0.8.0 using a newly created test conversation; broader native quota/UI Trust revocation coverage remains
6 Publication and third-party terms Publisher hcscat, display name, Apache-2.0, and the GitHub repository are selected; finish owner testing, local-ID migration and bundled SDK distribution review before binary publication

The earlier conclusion that urgent runtime/catalog caching was unnecessary applied to the historical workload only. Use the current performance review to assess startup, repeated discovery, scale-dependent costs, and progress feedback before selecting an optimization; no cache change is implemented by this measurement work. MCP descendant leaks and agy version-output warnings were not reproduced in the earlier checks; add targeted changes if concrete evidence appears. Historical follow-up evidence is in FOLLOW_UP.md.

Additional/custom CLI providers are explicitly deferred. Continue polishing the three native integrations. Other feature candidates require a separate scope decision:

  • Claude compatibility: keep native version/store/background checks current and extend failure and long-history coverage without automating prompts or permissions.
  • agy app/IDE import: distinguish direct Resume from import/copy and explain resulting store/ID changes before implementation.
  • Terminal ownership after reload: validate stable API identifiers; never infer ownership from the tab name alone.
  • Compatibility and visual coverage: check the minimum supported VS Code/Node SQLite combination, themes, and layout readability. Real five-to-nine layout behavior has already been checked.
  • Other platforms, remote operation, or a custom chat UI: design only after an explicit request and demonstrated need.

Release work follows RELEASE.md. Roadmap entries do not authorize publication or establish delivery dates.

License and third-party notices

hcscat Multi CLI was originally developed by hcscat. The project's own source code is licensed under the Apache License, Version 2.0. Commercial use, modification, redistribution, and resale are permitted under its terms. The original source is hcscat/hcscat-multi-cli. The confirmed Marketplace publisher is hcscat; publication is pending. The display name is hcscat Multi CLI. The package name and internal command/configuration IDs remain unchanged; the former local publisher is a separate installation identity.

These documents serve different purposes:

Document Purpose
LICENSE Unmodified official Apache-2.0 text for hcscat Multi CLI's own code
NOTICE Original-project and author attribution, without additional license conditions
THIRD_PARTY_NOTICES.md Dependency attribution, provider mark sources/ownership, upstream terms, and preserved notices; does not license hcscat Multi CLI

Redistribution and compliance

This summary does not replace the license. When redistributing, follow Apache-2.0 section 4, including:

  • Give recipients a copy of the license.
  • Put prominent notices in modified files stating that they were changed.
  • Retain applicable copyright, patent, trademark, and attribution notices in distributed derivative source code.
  • Carry forward relevant attribution notices from NOTICE in a location allowed by section 4(d), such as a distributed notice file, accompanying source/documentation, or an appropriate generated display. Apache-2.0 does not require a credit on every startup screen or sales page.

The patent grant in section 3 covers only contributor-licensable claims necessarily infringed by their contributions alone or combined with the submitted work. Filing patent litigation alleging that this work or an incorporated contribution infringes a patent terminates the patent licenses granted under Apache-2.0 for that work. The grant does not cover every patent a contributor owns. Section 6 does not grant general trademark rights.

Redistribution involves maintaining these files and notices; Apache-2.0 does not generally require permission requests or publication of modified source code. The license's warranty disclaimer and liability limitations also apply.

Commercial use and attribution expectations

We strongly ask downstream distributors to clearly identify hcscat Multi CLI as the original upstream project and distinguish their own contributions from the original authors' work. We consider deliberately concealing the project's origin or presenting the original work as entirely self-developed unacceptable. Please make this attribution easy to find in your documentation or product information.

These requests express the authors' expectations and do not add conditions to or modify the Apache License, Version 2.0.

Suggested attribution wording (replace the bracketed text with accurate information):

This product includes code from hcscat Multi CLI, originally developed by hcscat and licensed under Apache-2.0. Modifications were made by [distributor].

Including the original repository URL, https://github.com/hcscat/hcscat-multi-cli, is encouraged. This attribution identifies the upstream code; it does not imply that a downstream product is entirely open source or endorsed by the original author.

Third-party terms remain separate. Keep the bundled Claude Agent SDK's upstream README and notices, and review its distribution terms before publication. Provider marks retain their owners' rights and are not relicensed under Apache-2.0. A privacy-policy reference concerns data handling and is not a project software license. See the official Apache-2.0 text and Apache licensing FAQ.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft