Skip to content

Releases: Shadowfetchapps/ShadowCode

ShadowCode v0.32.0

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 26 Sep 02:02

ShadowCode 0.32.0 is the biggest update yet: it's easier to use every day,
the agent is smarter, commands are properly sandboxed, and you can use
ShadowCode from your phone, your editor, or on a schedule. The 0.31.1 notes
follow below.

Easier every day

  • Type @ to attach files and folders, ↑ for earlier prompts, and
    switch between Code, Plan and Ask right in the composer. Models that
    support it get an effort control.
  • Edit and resend any of your messages, or retry or copy it.
  • Approvals show the actual change: the diff for a file, the full
    command for a shell step. Allow for this task stops repeat prompts,
    and Deny with note tells the agent why.
  • Review just what a task changed, full width, and keep or undo each
    change. Rewind now asks first, can be undone, and also covers shell
    commands and Codex, Claude Code, Cursor, Grok and Antigravity edits.
  • Run tasks side by side: Worktree next to Send starts a task in its
    own copy of the project; apply it, keep it as a branch or discard it.
  • Notifications when a task needs you, fails, hits a plan limit or
    finishes; click to jump to it. The sidebar marks what needs attention.
  • See context and cost for every model in the status bar.
  • Preview the app you're building inside ShadowCode and click an
    element to show the agent exactly what to change.
  • A real terminal, a Git tab that goes from commit to pull request
    with live CI checks, and voice dictation that runs on your computer.

A smarter agent

  • Subagents explore, plan, review or work in parallel copies of your
    project.
  • Language servers tell the agent about errors right after each edit,
    and a repo map and code search help it find its way.
  • Long conversations are summarized instead of cut, OpenRouter
    requests use prompt caching, and dropped connections are retried.
  • It reads CLAUDE.md, Cursor rules and Claude Code skills and commands,
    and your MCP servers reach every model.

Safer by default

  • Shell commands run in a sandbox that hides your home folder: SSH
    keys, cloud credentials and API keys stay invisible, and only the project
    is writable. You can require the sandbox and limit the network to a list
    of hosts.

Beyond the window

  • Remote access: scan a QR code to follow and steer ShadowCode from your
    phone. Off by default; Tailscale recommended.
  • Zed and JetBrains: shadowcode acp makes ShadowCode an agent inside
    your editor.
  • Automations: run a prompt on a schedule, turn a GitHub issue into a
    task and pull request, or run ShadowCode in GitHub Actions.

Changed in 0.31.1

  • Apache License 2.0. ShadowCode is now Apache-2.0 licensed instead of
    MIT. A new NOTICE file credits Shadowfetch as the original creator, and
    anyone sharing a copy or a modified version must include it. Releases up to
    0.31.0 remain available under MIT.

New in 0.31.0

  • Allowance. One button in the status bar shows what's left everywhere:
    each subscription's usage and reset times, your OpenRouter credits, and the
    local models ready to run. Only figures the services report; nothing is
    guessed.
  • Keep going when a plan runs out. When Codex, Claude Code or another
    subscription hits its limit, the same conversation continues on a local
    model, with a note saying so. Prefer to choose? Set When a plan runs out
    to Ask me. ShadowCode never retries on the same plan or buys more
    usage.
  • Compare. Press Compare next to Send to give one task to 2 or 3
    models. Each works in its own copy of your project (uncommitted work
    included); see their changes, checks, time and cost side by side, then
    Keep the best one. Only the kept changes reach your files, nothing is
    committed, and the copies are cleaned up. Wins in this project tracks
    which model you keep. Tested live: two OpenRouter models fixed the same bug
    in 11 seconds and the kept fix applied cleanly.

Fixed in 0.30.2

  • Web for OpenRouter. The Web toggle now appears for OpenRouter
    models, as the 0.29 notes promised. Tested live: an OpenRouter model searched
    the web and cited its source.
  • Your OpenRouter key stays put. It is stripped from the environment of
    every subscription tool ShadowCode starts, like the other provider keys.
  • No secrets in the repository. A new check scans every tracked file for
    real-looking API keys and runs on every push.
  • Docs for OpenRouter, Antigravity, data locations and testing are current.

Fixed in 0.30.1

  • Antigravity works end to end. Tested live after signing in: it lists
    its 11 Gemini models, asks ShadowCode before running a command, answers, and
    resumes the conversation. A timing bug that made the first prompt end with
    no answer is fixed.
  • Answers appear once. Replies from Codex, Claude Code, Cursor, Grok and
    Antigravity are no longer repeated under Result.
  • Clearer notes. The model note reads "Using Cursor · Auto · Cloud", and a
    question that changed nothing ends with one quiet line instead of an empty
    report card.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fa...
Read more

ShadowCode v0.31.1

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 19:19

ShadowCode 0.31.1 moves to the Apache License 2.0. Nothing else changes from
0.31.0, whose notes follow below.

Changed in 0.31.1

  • Apache License 2.0. ShadowCode is now Apache-2.0 licensed instead of
    MIT. A new NOTICE file credits Shadowfetch as the original creator, and
    anyone sharing a copy or a modified version must include it. Releases up to
    0.31.0 remain available under MIT.

New in 0.31.0

  • Allowance. One button in the status bar shows what's left everywhere:
    each subscription's usage and reset times, your OpenRouter credits, and the
    local models ready to run. Only figures the services report; nothing is
    guessed.
  • Keep going when a plan runs out. When Codex, Claude Code or another
    subscription hits its limit, the same conversation continues on a local
    model, with a note saying so. Prefer to choose? Set When a plan runs out
    to Ask me. ShadowCode never retries on the same plan or buys more
    usage.
  • Compare. Press Compare next to Send to give one task to 2 or 3
    models. Each works in its own copy of your project (uncommitted work
    included); see their changes, checks, time and cost side by side, then
    Keep the best one. Only the kept changes reach your files, nothing is
    committed, and the copies are cleaned up. Wins in this project tracks
    which model you keep. Tested live: two OpenRouter models fixed the same bug
    in 11 seconds and the kept fix applied cleanly.

Fixed in 0.30.2

  • Web for OpenRouter. The Web toggle now appears for OpenRouter
    models, as the 0.29 notes promised. Tested live: an OpenRouter model searched
    the web and cited its source.
  • Your OpenRouter key stays put. It is stripped from the environment of
    every subscription tool ShadowCode starts, like the other provider keys.
  • No secrets in the repository. A new check scans every tracked file for
    real-looking API keys and runs on every push.
  • Docs for OpenRouter, Antigravity, data locations and testing are current.

Fixed in 0.30.1

  • Antigravity works end to end. Tested live after signing in: it lists
    its 11 Gemini models, asks ShadowCode before running a command, answers, and
    resumes the conversation. A timing bug that made the first prompt end with
    no answer is fixed.
  • Answers appear once. Replies from Codex, Claude Code, Cursor, Grok and
    Antigravity are no longer repeated under Result.
  • Clearer notes. The model note reads "Using Cursor · Auto · Cloud", and a
    question that changed nothing ends with one quiet line instead of an empty
    report card.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.31.1_amd64.AppImage
  • ShadowCode_0.31.1_amd64.deb
  • ShadowCode_0.31.1_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.31.0

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 19:00

ShadowCode 0.31.0 shows how much of every plan is left, keeps working on a
model on your computer when a plan runs out, and can race 2 or 3 models on the
same task so you keep the best result. The 0.30.2 notes follow below.

New in 0.31.0

  • Allowance. One button in the status bar shows what's left everywhere:
    each subscription's usage and reset times, your OpenRouter credits, and the
    local models ready to run. Only figures the services report; nothing is
    guessed.
  • Keep going when a plan runs out. When Codex, Claude Code or another
    subscription hits its limit, the same conversation continues on a local
    model, with a note saying so. Prefer to choose? Set When a plan runs out
    to Ask me. ShadowCode never retries on the same plan or buys more
    usage.
  • Compare. Press Compare next to Send to give one task to 2 or 3
    models. Each works in its own copy of your project (uncommitted work
    included); see their changes, checks, time and cost side by side, then
    Keep the best one. Only the kept changes reach your files, nothing is
    committed, and the copies are cleaned up. Wins in this project tracks
    which model you keep. Tested live: two OpenRouter models fixed the same bug
    in 11 seconds and the kept fix applied cleanly.

Fixed in 0.30.2

  • Web for OpenRouter. The Web toggle now appears for OpenRouter
    models, as the 0.29 notes promised. Tested live: an OpenRouter model searched
    the web and cited its source.
  • Your OpenRouter key stays put. It is stripped from the environment of
    every subscription tool ShadowCode starts, like the other provider keys.
  • No secrets in the repository. A new check scans every tracked file for
    real-looking API keys and runs on every push.
  • Docs for OpenRouter, Antigravity, data locations and testing are current.

Fixed in 0.30.1

  • Antigravity works end to end. Tested live after signing in: it lists
    its 11 Gemini models, asks ShadowCode before running a command, answers, and
    resumes the conversation. A timing bug that made the first prompt end with
    no answer is fixed.
  • Answers appear once. Replies from Codex, Claude Code, Cursor, Grok and
    Antigravity are no longer repeated under Result.
  • Clearer notes. The model note reads "Using Cursor · Auto · Cloud", and a
    question that changed nothing ends with one quiet line instead of an empty
    report card.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.31.0_amd64.AppImage
  • ShadowCode_0.31.0_amd64.deb
  • ShadowCode_0.31.0_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.30.2

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 14:16

ShadowCode 0.30.2 lets OpenRouter models search the web, keeps your
OpenRouter key away from other tools, and brings the documentation up to
date. The 0.30.1 notes follow below.

Fixed in 0.30.2

  • Web for OpenRouter. The Web toggle now appears for OpenRouter
    models, as the 0.29 notes promised. Tested live: an OpenRouter model searched
    the web and cited its source.
  • Your OpenRouter key stays put. It is stripped from the environment of
    every subscription tool ShadowCode starts, like the other provider keys.
  • No secrets in the repository. A new check scans every tracked file for
    real-looking API keys and runs on every push.
  • Docs for OpenRouter, Antigravity, data locations and testing are current.

Fixed in 0.30.1

  • Antigravity works end to end. Tested live after signing in: it lists
    its 11 Gemini models, asks ShadowCode before running a command, answers, and
    resumes the conversation. A timing bug that made the first prompt end with
    no answer is fixed.
  • Answers appear once. Replies from Codex, Claude Code, Cursor, Grok and
    Antigravity are no longer repeated under Result.
  • Clearer notes. The model note reads "Using Cursor · Auto · Cloud", and a
    question that changed nothing ends with one quiet line instead of an empty
    report card.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.30.2_amd64.AppImage
  • ShadowCode_0.30.2_amd64.deb
  • ShadowCode_0.30.2_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.30.1

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 11:25

ShadowCode 0.30.1 fixes what a live Antigravity session and a real
conversation showed. The 0.30.0 notes follow below.

Fixed in 0.30.1

  • Antigravity works end to end. Tested live after signing in: it lists
    its 11 Gemini models, asks ShadowCode before running a command, answers, and
    resumes the conversation. A timing bug that made the first prompt end with
    no answer is fixed.
  • Answers appear once. Replies from Codex, Claude Code, Cursor, Grok and
    Antigravity are no longer repeated under Result.
  • Clearer notes. The model note reads "Using Cursor · Auto · Cloud", and a
    question that changed nothing ends with one quiet line instead of an empty
    report card.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.30.1_amd64.AppImage
  • ShadowCode_0.30.1_amd64.deb
  • ShadowCode_0.30.1_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.30.0

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 09:55

ShadowCode 0.30.0 makes Antigravity a full citizen: it now asks before it
acts, like Codex, Claude Code, Cursor and Grok. The 0.29 notes follow below.

New in 0.30.0

  • Antigravity asks first. It now runs through Google's official ACP agent
    server instead of the agy CLI's print mode, which silently denied any
    command. Commands and edits reach ShadowCode's approvals, images work, and
    conversations resume.
  • One-time install. Settings › Accounts › Antigravity › Install
    downloads the server from Google (334 MB, checksum-verified). Connect
    then signs in with Google in your browser. This sign-in is ShadowCode's own
    and separate from the agy CLI.
  • No surprise browser tabs. Status checks and tasks never open a sign-in
    page. If the sign-in expires, the row says Sign in and a task stops with
    that message.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.30.0_amd64.AppImage
  • ShadowCode_0.30.0_amd64.deb
  • ShadowCode_0.30.0_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.29.0

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 24 Sep 02:49

ShadowCode 0.29.0 adds OpenRouter for people without a subscription, and
makes web search work from networks where DuckDuckGo refuses automated
requests. The 0.28 notes follow below.

New in 0.29.0

  • OpenRouter. Paste an OpenRouter API key in Settings › Accounts and
    pick any of its text models from the picker's new API keys group. Rows
    show the price per million tokens and whether the model supports images or
    tools. Every token is billed to your OpenRouter account, and the group says
    so. These models run on ShadowCode's own agent loop, so permissions,
    approvals, checkpoints, web tools, images and review all work. See
    OpenRouter.
  • Web search. When DuckDuckGo answers with a bot check, web_search asks
    Marginalia Search's public API instead of giving up.
  • VPN users. Sites that a VPN's DNS resolves into 192.0.0.0/24 (NordVPN
    does this for Google) are no longer refused by web_fetch.
  • Antigravity. Tasks where Antigravity silently denied a command now fail
    with an explanation instead of reporting success with no answer.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.29.0_amd64.AppImage
  • ShadowCode_0.29.0_amd64.deb
  • ShadowCode_0.29.0_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.28.1

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 23 Sep 21:37

ShadowCode 0.28.1 is a polish release on top of 0.28.0. Settings, stopped
tasks, notifications and local model names are cleaner; nothing about how
models run or bill has changed. The 0.28.0 notes follow below.

Fixed in 0.28.1

  • Accounts. Each card shows the product name, its version once, and the
    signed-in email with the plan on one line. Usage windows are listed once, with
    reset times that stay current. Credits appear only when the vendor reports
    some.
  • Reset times round to whole minutes ("resets in 3h", not "2h 60m").
  • Stopped tasks that changed nothing show a single quiet line instead of a
    red card and without a "Needs attention" note. The partial reply is kept.
  • Newly added local models always appear in the picker right away.
  • Local model names come from the GGUF file's own name, plus its
    quantization, for example Qwen3 14B · Q4_K_M.
  • Notifications appear at the top centre, clear of the composer and the
    drawer. "Permissions & network" no longer wraps in Settings, and the drawer
    close button is larger.
  • First run no longer checks local servers or vendor tools that the
    onboarding screen does not use.

ShadowCode 0.28.0

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.28.1_amd64.AppImage
  • ShadowCode_0.28.1_amd64.deb
  • ShadowCode_0.28.1_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.28.0

Choose a tag to compare

@Shadowfetchapps Shadowfetchapps released this 23 Sep 18:34

ShadowCode 0.28.0 is a Linux desktop coding agent with one window and one
model picker. It runs your existing subscriptions through the vendors' official
command-line tools, or GGUF models on your own hardware with a llama.cpp
runtime that ships with the app.

What changed

  • One picker lists Subscriptions and On this computer. Every row
    shows Local or Cloud, whether it is ready (and why not), Vision and Chat only
    badges, and the usage the vendor reports. Each conversation remembers its
    model.
  • Accounts. Settings › Accounts signs in and out with each vendor's
    official login and logout commands. ShadowCode never reads credential files,
    and it removes provider API keys from the environment of every vendor task,
    login and logout.
  • Usage. Codex shows its rate-limit windows per quota pool, with reset
    times. Other vendors show Usage unavailable with the reason. The last
    snapshot survives a restart. When a vendor reports its plan limit, the task
    stops and you pick another model.
  • Local models. A pinned llama.cpp (Vulkan and every x86-64 CPU level) is
    bundled in the AppImage and the deb. Models are read from their GGUF
    metadata. Context is sized to your VRAM or RAM. Models in an existing Ollama
    store can be imported by reference, without copying and without the daemon.
    Vision comes from a paired projector.
  • Web tools for local models. web_fetch and web_search block private
    networks and cloud metadata addresses.
  • Network modes. Online, Web tools off, Offline.
  • Permission modes. Ask before actions (the default for new installs) and
    Allow project edits. Settings explains what each vendor enforces.
  • Switching providers mid-conversation. A bounded summary of the earlier
    turns is handed over, and ShadowCode asks your consent before local content
    goes to a cloud provider.
  • Resuming vendor sessions. Each vendor's own session is resumed per
    conversation.
  • Installer. scripts/install-appimage.sh now requires SHA256SUMS and
    installs the llama.cpp runtime from the AppImage into
    ~/.local/lib/shadowcode, rolling back if a step fails.
  • Removed. The legacy Python harness and its tooling.

Subscription status

Vendor Runtime Image input Approvals shown in ShadowCode Usage
Codex codex app-server Yes Yes Rate-limit windows per pool
Claude Code claude -p stream-json Yes Yes Unavailable
Cursor cursor-agent acp When advertised Yes Unavailable (plan tier only)
Antigravity agy --print= stream-json No No (its own settings) Unavailable
Grok grok agent stdio (ACP) No Yes Unavailable (session tokens only)

Local model support

  • Formats. Any GGUF whose architecture the bundled llama.cpp supports.
    Unsupported ones (for example gptoss at this pin) are listed with the
    reason.
  • Hardware. Vulkan GPUs, or any x86-64 CPU. One model is loaded at a time.
    If the GPU start fails, ShadowCode retries on the CPU and labels the row.
  • Tools and vision. Models whose chat template has no tool support run as
    Chat only. Models with a paired projector accept images and get
    view_image.

Known limits

  • Claude Code was not verified end to end on the build machine, because it
    was not signed in there. The stream-json adapter is covered by unit
    tests with scripted protocol frames, and sign-in state by fake-CLI tests.
  • Antigravity exposes no machine-readable usage. It never sends approval
    requests to ShadowCode: its own settings decide what it may do. Sign-in and
    sign-out happen only inside agy.
  • Cursor reports its plan tier but no remaining allowance.
  • Grok's ACP interface accepts no images, and Grok has no read-only mode
    for Plan/Review.
  • web_search uses DuckDuckGo's HTML page, which may block automated
    requests. The tool then reports that no results were retrieved.
  • Ollama stores outside ~/.ollama/models are found only through
    OLLAMA_MODELS or an Environment=OLLAMA_MODELS line in the Ollama systemd
    user unit. The system-wide service's store isn't found automatically.
  • ShadowCode is not an operating-system sandbox. Shell commands run as
    your user.

Downloads

  • ShadowCode_0.28.0_amd64.AppImage
  • ShadowCode_0.28.0_amd64.deb
  • ShadowCode_0.28.0_appimage-runtime-sources.tar.gz
  • SHA256SUMS

Builds are for x86_64 Linux with glibc 2.39 or newer (Ubuntu 24.04 or later).
Check the files with sha256sum --ignore-missing -c SHA256SUMS, then install
with scripts/install-appimage.sh (see the README).

ShadowCode v0.22.3

Choose a tag to compare

@github-actions github-actions released this 22 Sep 23:26

ShadowCode 0.22.3 improves native Linux coding workflows, project isolation and recovery.
The Rust/Tauri app embeds its interface and needs no Python or Node runtime.

  • Conversation control: fork from a response with completed tool context;
    later turns stay out of the fork and the original remains intact.
  • Safe recovery: pause, steer and resume tasks; checkpoint rewind waits for
    a safe boundary and refuses competing workspace activity.
    Attached windows retain events after engine replacement and can close during
    reconnection without waiting for a new engine.
  • Local model tuning: visible context and Ollama residency controls, with
    validated settings preserved when selecting saved models.
  • Parallel workspaces: prepare up to two branches, open explicit tasks,
    check the combined merge result and remove clean checkouts while retaining
    commits. No automatic worker dispatch or integration is implied.
  • Code intelligence: private bounded AST cache, confined file access,
    Unicode-safe signatures, stale-entry removal and syntactic call-site queries.
  • Execution hardening: owned scratch directories, correct project mount
    order, early bubblewrap probing and no replay of failed shell executions.
  • Guardian: optional diagnostics and properly scoped proposal approval.
    Diagnostics identify test commands but do not run tests or generate patches.
  • Linux launch reliability: preserve the caller directory and relative project
    paths; keep external Python tools usable and both installed CLI names in sync.
  • Reproducible release checks: clean hosts build the real application before
    process tests, and packaging retains Rustup while excluding unsafe PATH entries.

Downloads: ShadowCode_0.22.3_amd64.AppImage,
ShadowCode_0.22.3_amd64.deb, the AppImage runtime source archive, and SHA256SUMS.
Binaries target x86_64, Ubuntu 24.04+ / glibc 2.39+. Git and model providers such
as Ollama remain external.

Keep SHA256SUMS beside the AppImage and run
scripts/install-appimage.sh /path/to/ShadowCode_0.22.3_amd64.AppImage to verify
and install it in ~/Applications. Existing settings, keys and task history
are preserved. Extraction mode works without FUSE.

See docs/SHADOWCODE_022_QUALIFICATION_REPORT.md for tested scope and limitations.