mindfork mindfork

mindfork 0.21.0 — DeepSeek as a provider of its own

mindfork 0.21.0 is out. DeepSeek has a mode of its own, beside OpenAI, Gemini, Claude, Grok and OpenRouter, and the token counter has moved out of the status line.

Why a mode, when external already worked

0.20.0 made DeepSeek's own API work in the external mode, the one that points at any OpenAI-compatible URL. Measuring what a mode of its own would add turned up two defects in that route:

  • /continue failed, or doubled a reply. DeepSeek does not continue a cut reply. With thinking on, the default, it refused the request with an error; with thinking off it answered with a new reply from the beginning, and the app glued it onto the part already written.
  • deepseek-v4-pro dropped images without a word. It takes a request with an image, says it sees none, and asked what colour a red square is, it answers "brown". DeepSeek's model list says the model takes text only, in a key the external route does not read.

What the deepseek mode knows

Pick deepseek under Model/server → Mode, paste a key from platform.deepseek.com, and choose deepseek-flash or deepseek-v4-pro from the list DeepSeek publishes. The list shows each model's context window.

  • The window, 1 048 576 tokens, so history compression knows when to start.
  • Which model takes images. On deepseek-v4-pro an image is kept back, and the app says so, as it does for any engine without vision.
  • DeepSeek's own thinking switch, sent in its spelling from the first request. Titles, history compression and impersonation do not reason there.
  • Only the sampling settings DeepSeek reads: temperature, top-p, the two penalties, the seed and the reply length. Fields such as top-k or min-p, which it drops without a word, are not offered.
  • /continue, through DeepSeek's prefix completion. It resumes a cut story mid-sentence, measured on both models. DeepSeek continues only a conversation without tool calls. In one that has them, /continue says so, and /regen writes the reply again.

DeepSeek has no embeddings, so a knowledge base under this mode needs another embedder, as under Claude or Grok. The external route at https://api.deepseek.com still works. /continue is refused there now, with a note that points to the mode.

The token counter, on the conversation's frame

tokens: 14587 (reasoning 10 · cache 91%) was the widest item in the status line and pushed key hints out of it for the length of every turn. It now sits at the bottom right corner of the conversation's frame. In a window too narrow for it the notes go first, then the counter, never a cut number. Under eight rows, where the conversation has no frame, it stays in the status line. Settings → Interface can turn either note off.

Your data

settings.json moves from schema 6 to 7, and the chat files from 5 to 6. Only the version changes, so that 0.20.0 refuses settings or a chat that name the new mode as a newer version's data. Without the step it would refuse the settings as a broken file and leave such a chat out of its list without a word. Both were measured on the 0.20.0 binary. As with every schema change, the files are backed up before they are stamped. Notes and backups do not change.

The full list is in the changelog; downloads are on the releases page, and cargo install mindfork builds the same version from crates.io.