cheesedanish

v0.7.4 · changelog

Every released version of Cheesedanish, newest first. Run cheesedanish --version to see which release you have, and cheesedanish update to move to the current one.

0.7.4 — 14 October 2026

  • Added EL 8 and EL 10 support, tested on Rocky Linux 8.10 and 10.2 with their shipped shell and utilities.

0.7.3 — 13 October 2026

  • Added OpenBSD support, tested with its native shell and awk.
  • Fixed session and OAuth Base64 encoding with MIME-style CRLF output, as used by OpenBSD’s Base64 package.
  • Use portable byte reads for binary detection, instructions, skills, tool-output limits, and goal evidence on systems whose head lacks -c.

0.7.2 — 13 October 2026

  • Added /compact and automatic conversation compaction across providers, terminal, print, and ACP modes.
  • Discover context limits from the selected provider, falling back to matching model names on OpenRouter, on the first request after selection. Model and provider switches stay local.
  • Preserve full saved history while sending summaries and recent context to the model. Compaction usage counts toward session and goal budgets.
  • Added context-limit overrides, automatic compaction settings, and context information in /status.

0.7.1 — 13 October 2026

  • Added Agent Skills discovery from shared and existing agent skill directories, including symlinked and nested skills.
  • Models receive a skill catalog and load instructions and supporting files as needed.
  • Added /skills, /skill <name> [task], project precedence, reload support, and additional skill roots through CHEESEDANISH_SKILL_PATHS.
  • Skills work in terminal, print, and ACP modes across all providers.

0.7.0 — 12 October 2026

  • Added /goal for autonomous work across rounds, with independent planning, evaluation, and completion verification.
  • Added persistent goal status, pause, resume, clear, optional token budgets, and saved verification evidence.
  • Goals work in terminal, print, and ACP modes and remain interruptible.
  • Fixed intermittent Ctrl-C handling at the Bash prompt.

0.6.9 — 27 September 2026

  • Enabled Anthropic prompt caching for conversations and tool calls.

0.6.8 — 22 September 2026

  • An empty line now separates each reply from the next cheese> prompt, so a long conversation is easier to read.

0.6.7 — 19 September 2026

  • Added steering so that messages sent while the model works are sent while it works.
  • Added arrow key cursor control and multi-line pasting. Multi-line paste works on every interactive prompt. Arrow keys move the cursor only when Bash 4.4 or newer is available; otherwise the prompt still accepts typed and pasted text, but the arrow keys do not move the cursor.
  • Escape key now interrupts the model.
  • Changed the default Grok model to grok-4.7, for the Grok subscription and for the xAI API. /models still lists every model your account can use, and /model still selects one.
  • /provider now uses a numbered list, the same way /login already does. Configured custom providers are on that list. Model names, server URLs, and API keys are still typed.

0.6.6 — 18 September 2026

  • Corrected the application URL that Cheesedanish sends to OpenRouter.

0.6.5 — 16 September 2026

  • Changed the default OpenRouter model to openrouter/auto.

0.6.4 — 16 September 2026

  • Fixed a bug in the read tool. A file that is not UTF-8 text, such as an image, no longer breaks the request. The tool reports that the file is binary instead.

0.6.3 — 28 August 2026

  • Security update.

0.6.2 — 26 August 2026

  • Added /login xai-api for an xAI API key. This uses xAI API credit and is separate from /login xai, which still uses a Grok subscription.
  • A rejected key can be entered again immediately, and a failed replacement does not remove the prior saved credential.
  • You can set XAI_API_KEY instead of saving a key.
  • The xAI API default is grok-4.6. /models lists the models that key can use. Hosted web search uses API credit.

0.6.1 — 26 August 2026

  • Added custom-<name> providers. Any OpenAI-compatible Chat Completions endpoint can be used without writing code: set custom.<name>.url in the config file, or run /login custom-<name> and answer three questions.
  • An optional API key for a custom provider is verified against the endpoint before it is saved, and stored in auth.json under the provider’s name. Endpoints that need no key work too; Authorization is simply omitted.
  • /logout custom-<name> removes the key and the config keys together. Other providers’ credentials are untouched.
  • The selected provider is checked when it comes from --provider, so a typo fails immediately instead of silently falling back.

0.6.0 — 22 August 2026

  • Added cheesedanish acp, a full ACP v1 server over UTF-8 newline-delimited JSON-RPC on standard input and standard output.
  • Added persistent ACP sessions with new, load, resume, list, close, prompt, history replay, message and usage updates, tool progress, stop reasons, and live cancellation.
  • Added permission requests for write, edit, shell, and MCP tools. --always-approve, --yolo, and xAI’s _meta.yoloMode provide an explicit trusted-workspace mode.
  • Added client-supplied stdio MCP servers. Cheesedanish starts them for the session, discovers their tools, gives their schemas to every model-provider family, routes calls and results, and stops them when the session closes.
  • Kept terminal and print modes compatible with the existing providers, tools, credentials, and session format.

0.5.5 — 21 August 2026

  • Added hosted web search for an OpenAI API key and an Anthropic API key. The provider runs the search. This uses API credit, not a ChatGPT or Claude subscription.
  • When a Brave Search key is also available, the provider search stays the default, as it already does on xAI Grok.
  • ChatGPT subscription search is still not enabled.

0.5.3 — 20 August 2026

  • Added NetBSD to the tested platforms. The runtime and the installer now accept the native sha256 command when sha256sum and shasum are not present.
  • NetBSD does not ship GNU sha256sum. Its sha256 -q command prints only the digest, which is enough for PKCE, the installer checksum check, and cheesedanish update.

0.5.2 — 20 August 2026

  • Made streamed replies much faster. Cheesedanish now reads a whole Server-Sent Events stream in one awk process. It used to run a shell loop over the events and start two to four awk processes for each one, and a model sends one event for each token, so the delay grew with the length of the reply.
  • A 1500-token reply on the BusyBox tools used by iSH now takes about 0.6 seconds to read instead of about 17 seconds. On Debian it takes about 0.09 seconds instead of about 6 seconds. The time now grows in proportion to the length of the reply, not faster.
  • This is a speed change only. The assistant text, the tool calls, the token counts, and the error messages are the same as before.

0.5.1 — 20 August 2026

  • Added independent web search through the Brave Search API. /login brave verifies and saves a Brave Search key without changing the selected model provider.
  • Added BRAVE_SEARCH_API_KEY for using a Brave Search key without saving it.
  • When the selected model provider also has its own web search, Cheesedanish keeps the provider search as the default. On xAI Grok, the model receives both Grok search and Brave Search, with Grok search first.
  • Fixed percent formatting on the 32-bit BusyBox environment used by iSH. /usage no longer prints a doubled percent sign there.

0.5.0 — 19 August 2026

  • Moved every user setting into ~/.cheesedanish/config: the selected provider, the last model for each provider, the Ollama server URL, and the runtime limits.
  • Each key in that file now has a comment above it and an empty line below it. Keys with no product default are written as comments.
  • /provider and /model write config. /reload reads the selected provider and model from that file.
  • Left credentials in auth.json. The Ollama server URL is no longer stored there.

0.4.10 — 19 August 2026

  • Added /login ollama for a local or remote Ollama server. The default URL is http://localhost:11434. An API key is optional.
  • /models lists the models installed on that server. Login selects the first model when none is saved.
  • You can set CHEESEDANISH_OLLAMA_BASE or OLLAMA_HOST, and OLLAMA_API_KEY, instead of saving a login.

0.4.9 — 19 August 2026

  • Added /login openai-api for an OpenAI API key. This uses OpenAI API credit and is separate from /login openai, which still uses a ChatGPT subscription.
  • Added /login anthropic for an Anthropic API key. This uses Anthropic API credit.
  • A rejected key can be entered again immediately, and a failed replacement does not remove the prior saved credential.
  • You can set OPENAI_API_KEY or ANTHROPIC_API_KEY instead of saving a key.
  • The OpenAI API default is gpt-5.6. The Anthropic default is claude-sonnet-5. /models lists the models that key can use.

0.4.8 — 19 August 2026

  • Added /status. It shows this session’s token counts, the selected provider and model, and the current runtime state.
  • Made /usage and /status show subscription data only for the selected provider.

0.4.7 — 18 August 2026

  • Added /usage. It shows this session’s token counts, plus the current ChatGPT and xAI subscription limits when those accounts are signed in.

0.4.6 — 18 August 2026

  • On xAI Grok, the agent can now search the live web through the signed-in subscription. The provider runs the search. Local file and shell tools still run on your machine.

0.4.5 — 18 August 2026

  • Added a config file at ~/.cheesedanish/config. The first start writes it with the runtime limits, including max_tool_rounds (default 20).
  • Added /config to show the file path and the values in use.
  • Made /reload read the config file again, so a change takes effect without a restart.
  • A matching CHEESEDANISH_* environment variable still overrides the file.

0.4.4 — 18 August 2026

  • Added sign-in with an xAI Grok subscription through /login xai. This uses the Grok access included with a SuperGrok or X Premium plan, not an xAI API key or API credit.
  • Added device-code login for that account. It shows a URL and a short code that you open in any browser, type, and approve, so the sign-in works over SSH and on a phone because there is no callback to your own machine.
  • Set the default Grok model to grok-build-0.1. /models lists the models the signed-in account can use.
  • Made all three providers independent. OpenRouter, OpenAI ChatGPT, and xAI Grok each keep their own credential and their own selected model, and signing in to one or signing out of one never disturbs another.
  • Kept the Grok sign-in valid during long sessions. The access token refreshes by itself.
  • Labelled private model reasoning with the provider that produced it. If you change provider inside one session, the conversation is kept, and the previous provider’s private reasoning is not sent to the new one.
  • xAI decides which accounts may sign in this way. If an account is not eligible the sign-in fails, and the other providers still work.

0.4.3 — 18 August 2026

  • Fixed the edit tool. A file that contained a SOH control byte could lose every byte after that byte, and the tool still reported success. The rest of the file is now kept, including a file that ends with that byte.

0.4.2 — 17 August 2026

  • Added sign-in with an OpenAI ChatGPT subscription. This uses the Codex access included with a Plus, Pro, Business, Edu, or Enterprise plan, not OpenAI API credit.
  • Added device-code login for that account, with a browser sign-in fallback when an account cannot use device codes.
  • Made the two providers independent. Each keeps its own credential and its own selected model, and /provider, /login, and /logout take a provider name.
  • Kept the sign-in valid during long sessions. The access token refreshes under a lock, so two Cheesedanish processes cannot invalidate each other.
  • Added model discovery for the signed-in OpenAI account through /models.
  • Carried reasoning across turns without storing readable private reasoning.
  • Kept existing OpenRouter sessions and the saved OpenRouter model working.

0.4.1 — 17 August 2026

  • Removed one claimed platform. Device testing found that Cheesedanish did not start there, and claiming a platform that does not work is worse than not claiming it. The supported platforms are now iSH, macOS, FreeBSD, and Debian.
  • Kept the two portability repairs that arrived with that platform, because they help every system: the xxd fallback, and correct library lookup when Cheesedanish starts from PATH.

0.4.0 — 17 August 2026

  • Added an install path for one more terminal application, published as not yet tested on a device. Version 0.4.1 removed it.
  • Added an xxd fallback for systems that have xxd but not od.
  • Fixed library lookup when Cheesedanish starts through PATH instead of by directory name.

0.3.0 — 17 August 2026

  • First multi-platform release. Cheesedanish is now built and tested on iSH (32-bit x86 Alpine), macOS, FreeBSD, and Debian.
  • Added native macOS support. macOS has no sha256sum and no timeout, so the runtime and the installer now fall back to shasum -a 256, and shell tools there run without an enforced time limit.
  • Fixed FreeBSD text handling. Unicode generated through awk was double-encoded under a locale-aware awk, and the PKCE digest used a printf form that FreeBSD does not support.
  • Fixed macOS base64, which does not accept the plain file argument that GNU and BusyBox accept.
  • Rebuilt the public page around the product.

0.2.0 — 16 August 2026

  • Published a release site at cheesedanish.nickmeslovich.com.
  • Added the one-line installer. It downloads the release and checks every file against a published SHA-256 manifest before it installs anything.
  • Added cheesedanish update, which installs the current release without touching your saved credential, your saved model, or your sessions.
  • Made the installer record the release URL it came from, so an update returns to the same server. CHEESEDANISH_RELEASE_URL and CHEESEDANISH_INSTALL_PREFIX override it.
  • Added the source package download.

0.1.1 — 16 August 2026

  • Repaired manual OpenRouter login. A key that you type in is now verified with OpenRouter before it is saved, a rejected key can be entered again immediately, and a failed attempt no longer removes the credential you already had.

0.1.0 — 16 August 2026

  • First release. Interactive terminal chat, OpenRouter browser sign-in and API-key sign-in, model selection, sessions that continue between runs, project instructions from AGENTS.md or CLAUDE.md, print mode for scripts, and the read, write, edit, and shell tools.
  • Written as portable shell and awk, including its own JSON parser and byte-safe JSON encoder. Cheesedanish needs no Node.js, no Python, no jq, and no compiled binary.

Downloads

/latest/cheesedanish.tar.gz always holds the source package for the current release. A versioned download at /downloads/cheesedanish-<version>.tar.gz is available for the current release only. Earlier versioned files are removed when a new release replaces them.

Return to cheesedanish.

Copied