Repository navigation
Releases: schneiderkamplab/HRM-Text
Release list
DFM Mimir 0.1.5 — build 10, bundled Mimir v1.5 weights
DFM Mimir 0.1.5 (build 10) is a local chat app with the official Mimir v1.5 Q4_K_M (4-bit) model included. No account, model download or model import is required to start chatting. Desktop packages also include an optional OpenAI-compatible local API and a standalone headless server.
Downloads and installation
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | DMG | Metal acceleration with CPU fallback |
| Android ARM64 | APK | CPU by default; experimental Vulkan is opt-in |
| Linux x64 | tar.gz | CPU; GTK3 desktop required, built on Ubuntu 22.04 |
| Windows x64 | ZIP | CPU; release VC runtime included |
- macOS: mount the DMG, drag DFM Mimir.app into Applications, then open it there and eject the image.
- Linux/Windows: extract the entire archive and run
dfm-mimir/dfm-mimir.exe. Keep the libraries, assets and server executable together. - Android: install the APK. Open Settings → Model, choose limits/backend, then press Load model. Startup deliberately leaves the model unloaded so settings remain accessible. Start with CPU, 1,024 context tokens and 512 reply tokens. After a freeze, force-stop the app and reopen it to change settings. Changing an initialized backend also requires force-stop/reopen.
Each package is roughly 1.1–1.2 GB because it includes the model. Download size is not RAM use: model loading and longer contexts require additional memory. Android also extracts a model copy into app-private storage, so allow space for both the APK and extracted model, plus a temporary copy during updates. Each download has a matching .sha256 sidecar in Assets.
These packages retain development signing: macOS is ad-hoc signed and not notarized; Android uses the development key; Windows is unsigned. If macOS blocks the app, use the per-app Open Anyway option in System Settings → Privacy & Security only if you trust the download. Physical Android Vulkan remains unqualified. Linux/Windows packages do not include CUDA or Vulkan acceleration. No distributable iOS package is included. iOS distribution uses TestFlight separately. See the TestFlight handoff.
Settings and appearance
Appearance → Text size offers 75–200% scaling with a 100% reset, in addition to system accessibility settings. Advanced contains compaction, profiles, MixedLM and the desktop API. Online contains optional search and feedback. Tab changes preserve unfinished edits.
Chat, context and model selection
The app provides saved conversations, streaming replies, stop, sharing, model/backend settings and a context-use indicator. Settings → Model controls context length and reply budget. Desktop automatic sizing uses available memory; Android starts with conservative manual limits. The bundled model was trained at 4,096 tokens; configurable contexts up to 32,768 are experimental and may reduce answer quality or exceed available memory.
Automatically compact context summarizes older turns when context fills, aiming to free at least half the context when the current prompt and reply reservation permit. Oversized prompts or historical turns are split into bounded pieces for summarization. Original messages remain in the transcript; shortened text is kept separately for inference. Show compaction summary in chat reveals summaries where they occurred, including while they stream. Compaction is lossy and can take multiple model passes. Disabling it restores original text for inference, which may exceed context.
MixedLM mode is an optional approximation that reuses representations of older turns to reduce repeated prompt processing. It is on by default for new settings; a saved choice is preserved. It can change answers. Turn it off for exact PrefixLM.
Temperature (0–2, default 0) and Repetition penalty (1–2, default 1.1) are adjustable in settings and saved. Higher temperature adds variety; 0 uses greedy decoding. The repetition penalty discourages the last 64 generated tokens within each reply; 1 disables it. The former saved 1.0 default upgrades once to 1.1, while other customized values remain. These controls do not override API request sampling or compaction's deterministic defaults.
Assistant replies and visible summaries render basic Markdown, including headings, emphasis, lists, quotes and code blocks, even while streaming. User messages remain literal; stored/shared text is unchanged. Images render as text placeholders. Links open an inspect/copy dialog, without network access.
In Settings → Model → Choose or download a model…, view the selected model, download sizes/status and installed models; select another model or import a local GGUF. Enable Allow model downloads and discovery, then Check for newer models, to refresh the catalog. Networking is optional and off by default; it is not needed for bundled chat.
The curated catalog and automatic discovery cover official danish-foundation-models repositories whose names contain both mimir and gguf, case-insensitively. Official corrected Q4_K_M, Q8_0 and BF16 exports are listed. Under Additional Hugging Face repositories → +, add an exact public owner/repository ID, such as noctrex/DFM-Mimir, to include third-party GGUFs. Adding an ID does not enable networking. Removing it stops its listings/download access and preserves already installed files.
Downloads are pinned to repository revisions and checked against size/SHA-256 metadata. Discovered models are unverified and use conservative fallback settings; arbitrary architectures are not guaranteed to work. Split GGUFs and private/gated authentication are not supported. Model refresh/download contacts GitHub and Hugging Face; it does not send chats.
OpenAI-compatible API on desktop
macOS, Linux and Windows expose an optional text Chat Completions subset of the OpenAI API. Android does not expose this API.
- Load a model, open Settings → Advanced, choose the port (default
8080) and enable OpenAI-compatible local API. - The active address appears in settings. Configure your client with base URL
http://127.0.0.1:8080/v1and modeldfm-mimir. - The API starts off by default; enable it again after restarting the app. Turning it off cancels API requests. Closing the app stops it.
The port is configurable while the API is stopped. The bind address is fixed to 127.0.0.1, so this version accepts local callers only; LAN listening and browser-origin/CORS requests are not supported. Set environment variable MIMIR_API_KEY before launching the app/server to require Authorization: Bearer YOUR_KEY. Otherwise no API key is required; clients that insist on one can use a placeholder. No OpenAI account is needed.
Supported endpoints are GET /v1/models and POST /v1/chat/completions. For example, after starting the API:
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"dfm-mimir","messages":[{"role":"user","content":"Hej Mimir!"}],"max_tokens":64}'The example uses POSIX shell quoting. Responses can be ordinary JSON or SSE with "stream":true. Supported sampling controls include temperature, top_p, seed, and one token budget (max_tokens or max_completion_tokens). Messages must contain text: an optional initial system message, then alternating user/assistant turns ending in user. Mimir's own chat template is applied.
API requests share the UI's loaded model, execute serially, and do not create or modify saved chats. Clients must supply conversation history. API requests do not use automatic compaction or cross-request MixedLM reuse; oversized requests return an error. Tools/function calling, images/audio, developer-role messages, structured response formats and the Responses API are unsupported. This is not full OpenAI API parity. See the API guide for the complete field/error/queue limits.
Headless desktop server
No GUI or display server is required. The included server loads the packaged model and exposes the same API:
# Linux: run from the extracted package
./dfm-mimir-server --port 8080
# macOS: run from Terminal after installing the app
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080# Windows PowerShell: run from the extracted package
.\dfm-mimir-server.exe --port 8080Use --help for options, including --model FILE.gguf, --profile FILE.json, --device auto|cpu|DEVICE, --context TOKENS, --max-tokens TOKENS, and --port PORT. Default context sizing is automatic and the default reply budget is 512 tokens. An imported model uses the bundled profile unless you supply another profile. Stop with Ctrl-C. A separately launched GUI and server each load their own model and consume additional memory. The same loopback-only binding and optional MIMIR_API_KEY authentication apply.
Optional chat feedback and privacy
Thumbs up/down can share the selected conversation with the Mimir team to improve future Mimir and other DFM models. Online feedback is off by default, independently of model-download permission. The first thumb click asks whether to enable it; declining leaves local chat usable. Change this under **Settings → Onl...
DFM Mimir 0.1.4 — bundled 4-bit weights
DFM Mimir 0.1.4 (build 6) is a local chat app with the corrected official Q4_K_M (4-bit) model included. No account, model download or model import is required to start chatting. Desktop packages also include an optional OpenAI-compatible local API and a standalone headless server.
Downloads and installation
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | DMG | Metal acceleration with CPU fallback |
| Android ARM64 | APK | CPU by default; experimental Vulkan is opt-in |
| Linux x64 | tar.gz | CPU; GTK3 desktop required, built on Ubuntu 22.04 |
| Windows x64 | ZIP | CPU; release VC runtime included |
- macOS: mount the DMG, drag DFM Mimir.app into Applications, then open it there and eject the image.
- Linux/Windows: extract the entire archive and run
dfm-mimir/dfm-mimir.exe. Keep the libraries, assets and server executable together. - Android: install the APK. Open Model and settings, choose limits/backend, then press Load model. Startup deliberately leaves the model unloaded so settings remain accessible. Start with CPU, 1,024 context tokens and 512 reply tokens. After a freeze, force-stop the app and reopen it to change settings. Changing an initialized backend also requires force-stop/reopen.
Each package is roughly 1.1–1.2 GB because it includes the model. Download size is not RAM use: model loading and longer contexts require additional memory. Android also extracts a model copy into app-private storage, so allow space for both the APK and extracted model, plus a temporary copy during updates. Each download has a matching .sha256 sidecar in Assets.
These packages retain development signing: macOS is ad-hoc signed and not notarized; Android uses the development key; Windows is unsigned. If macOS blocks the app, use the per-app Open Anyway option in System Settings → Privacy & Security only if you trust the download. Physical Android Vulkan remains unqualified. Linux/Windows packages do not include CUDA or Vulkan acceleration. No distributable iOS package is included. An unsigned iOS 17+ archive has been validated locally; TestFlight requires Apple Developer signing and upload. See the TestFlight handoff.
Chat, context and model selection
The app provides saved conversations, streaming replies, stop, sharing, model/backend settings and a context-use indicator. Model and settings controls context length and reply budget. Desktop automatic sizing uses available memory; Android starts with conservative manual limits. The bundled model was trained at 4,096 tokens; configurable contexts up to 32,768 are experimental and may reduce answer quality or exceed available memory.
Automatically compact context summarizes older turns when context fills, aiming to free at least half the context when the current prompt and reply reservation permit. Oversized prompts or historical turns are split into bounded pieces for summarization. Original messages remain in the transcript; shortened text is kept separately for inference. Show compaction summary in chat reveals summaries where they occurred, including while they stream. Compaction is lossy and can take multiple model passes. Disabling it restores original text for inference, which may exceed context.
MixedLM mode is an optional approximation that reuses representations of older turns to reduce repeated prompt processing. It is on by default for new settings; a saved choice is preserved. It can change answers. Turn it off for exact PrefixLM.
Temperature (0–2, default 0) and Repetition penalty (1–2, default 1.1) are adjustable in settings and saved. Higher temperature adds variety; 0 uses greedy decoding. The repetition penalty discourages the last 64 generated tokens within each reply; 1 disables it. The former saved 1.0 default upgrades once to 1.1, while other customized values remain. These controls do not override API request sampling or compaction's deterministic defaults.
Assistant replies and visible summaries render basic Markdown, including headings, emphasis, lists, quotes and code blocks, even while streaming. User messages remain literal; stored/shared text is unchanged. Images render as text placeholders. Links open an inspect/copy dialog, without network access.
In Model and settings → Choose or download a model…, view the selected model, download sizes/status and installed models; select another model or import a local GGUF. Enable Allow model downloads and discovery, then Check for newer models, to refresh the catalog. Networking is optional and off by default; it is not needed for bundled chat.
The curated catalog and automatic discovery cover official danish-foundation-models repositories whose names contain both mimir and gguf, case-insensitively. Official corrected Q4_K_M, Q8_0 and BF16 exports are listed. Under Additional Hugging Face repositories → +, add an exact public owner/repository ID, such as noctrex/DFM-Mimir, to include third-party GGUFs. Adding an ID does not enable networking. Removing it stops its listings/download access and preserves already installed files.
Downloads are pinned to repository revisions and checked against size/SHA-256 metadata. Discovered models are unverified and use conservative fallback settings; arbitrary architectures are not guaranteed to work. Split GGUFs and private/gated authentication are not supported. Model refresh/download contacts GitHub and Hugging Face; it does not send chats.
OpenAI-compatible API on desktop
macOS, Linux and Windows expose an optional text Chat Completions subset of the OpenAI API. Android does not expose this API.
- Load a model, open Model and settings, choose the port (default
8080) and enable OpenAI-compatible local API. - The active address appears in settings. Configure your client with base URL
http://127.0.0.1:8080/v1and modeldfm-mimir. - The API starts off by default; enable it again after restarting the app. Turning it off cancels API requests. Closing the app stops it.
The port is configurable while the API is stopped. The bind address is fixed to 127.0.0.1, so this version accepts local callers only; LAN listening and browser-origin/CORS requests are not supported. Set environment variable MIMIR_API_KEY before launching the app/server to require Authorization: Bearer YOUR_KEY. Otherwise no API key is required; clients that insist on one can use a placeholder. No OpenAI account is needed.
Supported endpoints are GET /v1/models and POST /v1/chat/completions. For example, after starting the API:
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"dfm-mimir","messages":[{"role":"user","content":"Hej Mimir!"}],"max_tokens":64}'The example uses POSIX shell quoting. Responses can be ordinary JSON or SSE with "stream":true. Supported sampling controls include temperature, top_p, seed, and one token budget (max_tokens or max_completion_tokens). Messages must contain text: an optional initial system message, then alternating user/assistant turns ending in user. Mimir's own chat template is applied.
API requests share the UI's loaded model, execute serially, and do not create or modify saved chats. Clients must supply conversation history. API requests do not use automatic compaction or cross-request MixedLM reuse; oversized requests return an error. Tools/function calling, images/audio, developer-role messages, structured response formats and the Responses API are unsupported. This is not full OpenAI API parity. See the API guide for the complete field/error/queue limits.
Headless desktop server
No GUI or display server is required. The included server loads the packaged model and exposes the same API:
# Linux: run from the extracted package
./dfm-mimir-server --port 8080
# macOS: run from Terminal after installing the app
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080# Windows PowerShell: run from the extracted package
.\dfm-mimir-server.exe --port 8080Use --help for options, including --model FILE.gguf, --profile FILE.json, --device auto|cpu|DEVICE, --context TOKENS, --max-tokens TOKENS, and --port PORT. Default context sizing is automatic and the default reply budget is 512 tokens. An imported model uses the bundled profile unless you supply another profile. Stop with Ctrl-C. A separately launched GUI and server each load their own model and consume additional memory. The same loopback-only binding and optional MIMIR_API_KEY authentication apply.
Optional chat feedback and privacy
Thumbs up/down can share the selected conversation with the Mimir team to improve future Mimir and other DFM models. Online feedback is off by default, independently of model-download permission. The first thumb click asks whether to enable it; declining leaves local chat usable. Change this under Model and settings → Allow online feedback.
Every submission requires Confirm and send after a preview showing the exact chat, any compaction summary (including hidden summaries), optional comment, editable device-generated pseudonym and limit...
DFM Mimir 0.1.3 — bundled 4-bit weights
DFM Mimir 0.1.3 (build 5) is a local chat app with the corrected official Q4_K_M (4-bit) model included. No account, model download or model import is required to start chatting. Desktop packages also include an optional OpenAI-compatible local API and a standalone headless server.
Downloads and installation
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | DMG | Metal acceleration with CPU fallback |
| Android ARM64 | APK | CPU by default; experimental Vulkan is opt-in |
| Linux x64 | tar.gz | CPU; GTK3 desktop required, built on Ubuntu 22.04 |
| Windows x64 | ZIP | CPU; release VC runtime included |
- macOS: mount the DMG, drag DFM Mimir.app into Applications, then open it there and eject the image.
- Linux/Windows: extract the entire archive and run
dfm-mimir/dfm-mimir.exe. Keep the libraries, assets and server executable together. - Android: install the APK. Open Model and settings, choose limits/backend, then press Load model. Startup deliberately leaves the model unloaded so settings remain accessible. Start with CPU, 1,024 context tokens and 512 reply tokens. After a freeze, force-stop the app and reopen it to change settings. Changing an initialized backend also requires force-stop/reopen.
Each package is roughly 1.1–1.2 GB because it includes the model. Download size is not RAM use: model loading and longer contexts require additional memory. Android also extracts a model copy into app-private storage, so allow space for both the APK and extracted model, plus a temporary copy during updates. Each download has a matching .sha256 sidecar in Assets.
These packages retain development signing: macOS is ad-hoc signed and not notarized; Android uses the development key; Windows is unsigned. If macOS blocks the app, use the per-app Open Anyway option in System Settings → Privacy & Security only if you trust the download. Physical Android Vulkan remains unqualified. Linux/Windows packages do not include CUDA or Vulkan acceleration. No distributable iOS package is included.
Chat, context and model selection
The app provides saved conversations, streaming replies, stop, sharing, model/backend settings and a context-use indicator. Model and settings controls context length and reply budget. Desktop automatic sizing uses available memory; Android starts with conservative manual limits. The bundled model was trained at 4,096 tokens; configurable contexts up to 32,768 are experimental and may reduce answer quality or exceed available memory.
Automatically compact context summarizes older turns when context fills, aiming to free at least half the context when the current prompt and reply reservation permit. Oversized prompts or historical turns are split into bounded pieces for summarization. Original messages remain in the transcript; shortened text is kept separately for inference. Show compaction summary in chat reveals summaries where they occurred, including while they stream. Compaction is lossy and can take multiple model passes. Disabling it restores original text for inference, which may exceed context.
MixedLM mode is an optional approximation that reuses representations of older turns to reduce repeated prompt processing. It is on by default for new settings; a saved choice is preserved. It can change answers. Turn it off for exact PrefixLM.
Temperature (0–2, default 0) and Repetition penalty (1–2, default 1.1) are adjustable in settings and saved. Higher temperature adds variety; 0 uses greedy decoding. The repetition penalty discourages the last 64 generated tokens within each reply; 1 disables it. The former saved 1.0 default upgrades once to 1.1, while other customized values remain. These controls do not override API request sampling or compaction's deterministic defaults.
Assistant replies and visible summaries render basic Markdown, including headings, emphasis, lists, quotes and code blocks, even while streaming. User messages remain literal; stored/shared text is unchanged. Images render as text placeholders. Links open an inspect/copy dialog, without network access.
In Model and settings → Choose or download a model…, view the selected model, download sizes/status and installed models; select another model or import a local GGUF. Enable Allow model downloads and discovery, then Check for newer models, to refresh the catalog. Networking is optional and off by default; it is not needed for bundled chat.
The curated catalog and automatic discovery cover official danish-foundation-models repositories whose names contain both mimir and gguf, case-insensitively. Official corrected Q4_K_M, Q8_0 and BF16 exports are listed. Under Additional Hugging Face repositories → +, add an exact public owner/repository ID, such as noctrex/DFM-Mimir, to include third-party GGUFs. Adding an ID does not enable networking. Removing it stops its listings/download access and preserves already installed files.
Downloads are pinned to repository revisions and checked against size/SHA-256 metadata. Discovered models are unverified and use conservative fallback settings; arbitrary architectures are not guaranteed to work. Split GGUFs and private/gated authentication are not supported. Model refresh/download contacts GitHub and Hugging Face; it does not send chats.
OpenAI-compatible API on desktop
macOS, Linux and Windows expose an optional text Chat Completions subset of the OpenAI API. Android does not expose this API.
- Load a model, open Model and settings, choose the port (default
8080) and enable OpenAI-compatible local API. - The active address appears in settings. Configure your client with base URL
http://127.0.0.1:8080/v1and modeldfm-mimir. - The API starts off by default; enable it again after restarting the app. Turning it off cancels API requests. Closing the app stops it.
The port is configurable while the API is stopped. The bind address is fixed to 127.0.0.1, so this version accepts local callers only; LAN listening and browser-origin/CORS requests are not supported. Set environment variable MIMIR_API_KEY before launching the app/server to require Authorization: Bearer YOUR_KEY. Otherwise no API key is required; clients that insist on one can use a placeholder. No OpenAI account is needed.
Supported endpoints are GET /v1/models and POST /v1/chat/completions. For example, after starting the API:
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"dfm-mimir","messages":[{"role":"user","content":"Hej Mimir!"}],"max_tokens":64}'The example uses POSIX shell quoting. Responses can be ordinary JSON or SSE with "stream":true. Supported sampling controls include temperature, top_p, seed, and one token budget (max_tokens or max_completion_tokens). Messages must contain text: an optional initial system message, then alternating user/assistant turns ending in user. Mimir's own chat template is applied.
API requests share the UI's loaded model, execute serially, and do not create or modify saved chats. Clients must supply conversation history. API requests do not use automatic compaction or cross-request MixedLM reuse; oversized requests return an error. Tools/function calling, images/audio, developer-role messages, structured response formats and the Responses API are unsupported. This is not full OpenAI API parity. See the API guide for the complete field/error/queue limits.
Headless desktop server
No GUI or display server is required. The included server loads the packaged model and exposes the same API:
# Linux: run from the extracted package
./dfm-mimir-server --port 8080
# macOS: run from Terminal after installing the app
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080# Windows PowerShell: run from the extracted package
.\dfm-mimir-server.exe --port 8080Use --help for options, including --model FILE.gguf, --profile FILE.json, --device auto|cpu|DEVICE, --context TOKENS, --max-tokens TOKENS, and --port PORT. Default context sizing is automatic and the default reply budget is 512 tokens. An imported model uses the bundled profile unless you supply another profile. Stop with Ctrl-C. A separately launched GUI and server each load their own model and consume additional memory. The same loopback-only binding and optional MIMIR_API_KEY authentication apply.
Optional chat feedback and privacy
Thumbs up/down can share the selected conversation with the Mimir team to improve future Mimir and other DFM models. Online feedback is off by default, independently of model-download permission. The first thumb click asks whether to enable it; declining leaves local chat usable. Change this under Model and settings → Allow online feedback.
Every submission requires Confirm and send after a preview showing the exact chat, any compaction summary (including hidden summaries), optional comment, editable device-generated pseudonym and limited app/model/settings metadata. The separate CC BY 4.0 publication permission defaults on and can be unchecked. Enabling feedback alone sends nothing; cancelling sends nothing. Network denial or submission failure affects only feed...
DFM Mimir 0.1.2 — bundled 4-bit weights
DFM Mimir 0.1.2 (build 4) is a local chat app with the corrected official Q4_K_M (4-bit) model included. No account, model download or model import is required to start chatting. Desktop packages also include an optional OpenAI-compatible local API and a standalone headless server.
Downloads and installation
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | DMG | Metal acceleration with CPU fallback |
| Android ARM64 | APK | CPU by default; experimental Vulkan is opt-in |
| Linux x64 | tar.gz | CPU; GTK3 desktop required, built on Ubuntu 22.04 |
| Windows x64 | ZIP | CPU; release VC runtime included |
- macOS: mount the DMG, drag DFM Mimir.app into Applications, then open it there and eject the image.
- Linux/Windows: extract the entire archive and run
dfm-mimir/dfm-mimir.exe. Keep the libraries, assets and server executable together. - Android: install the APK. Open Model and settings, choose limits/backend, then press Load model. Startup deliberately leaves the model unloaded so settings remain accessible. Start with CPU, 1,024 context tokens and 512 reply tokens. After a freeze, force-stop the app and reopen it to change settings. Changing an initialized backend also requires force-stop/reopen.
Each package is roughly 1.1–1.2 GB because it includes the model. Download size is not RAM use: model loading and longer contexts require additional memory. Android also extracts a model copy into app-private storage, so allow space for both the APK and extracted model, plus a temporary copy during updates. Each download has a matching .sha256 sidecar in Assets.
These packages retain development signing: macOS is ad-hoc signed and not notarized; Android uses the development key; Windows is unsigned. If macOS blocks the app, use the per-app Open Anyway option in System Settings → Privacy & Security only if you trust the download. Physical Android Vulkan remains unqualified. Linux/Windows packages do not include CUDA or Vulkan acceleration. No distributable iOS package is included.
Chat, context and model selection
The app provides saved conversations, streaming replies, stop, sharing, model/backend settings and a context-use indicator. Model and settings controls context length and reply budget. Desktop automatic sizing uses available memory; Android starts with conservative manual limits. The bundled model was trained at 4,096 tokens; configurable contexts up to 32,768 are experimental and may reduce answer quality or exceed available memory.
Automatically compact context summarizes older turns when context fills, aiming to free at least half the context when the current prompt and reply reservation permit. Oversized prompts or historical turns are split into bounded pieces for summarization. Original messages remain in the transcript; shortened text is kept separately for inference. Show compaction summary in chat reveals summaries where they occurred, including while they stream. Compaction is lossy and can take multiple model passes. Disabling it restores original text for inference, which may exceed context.
MixedLM mode is an optional approximation that reuses representations of older turns to reduce repeated prompt processing. It is off by default and can change answers.
In Model and settings → Choose or download a model…, view the selected model, download sizes/status and installed models; select another model or import a local GGUF. Enable Allow model downloads and discovery, then Check for newer models, to refresh the catalog. Networking is optional and off by default; it is not needed for bundled chat.
The curated catalog and automatic discovery cover official danish-foundation-models repositories whose names contain both mimir and gguf, case-insensitively. Official corrected Q4_K_M, Q8_0 and BF16 exports are listed. Under Additional Hugging Face repositories → +, add an exact public owner/repository ID, such as noctrex/DFM-Mimir, to include third-party GGUFs. Adding an ID does not enable networking. Removing it stops its listings/download access and preserves already installed files.
Downloads are pinned to repository revisions and checked against size/SHA-256 metadata. Discovered models are unverified and use conservative fallback settings; arbitrary architectures are not guaranteed to work. Split GGUFs and private/gated authentication are not supported. Model refresh/download contacts GitHub and Hugging Face; it does not send chats.
OpenAI-compatible API on desktop
macOS, Linux and Windows expose an optional text Chat Completions subset of the OpenAI API. Android does not expose this API.
- Load a model, open Model and settings, choose the port (default
8080) and enable OpenAI-compatible local API. - The active address appears in settings. Configure your client with base URL
http://127.0.0.1:8080/v1and modeldfm-mimir. - The API starts off by default; enable it again after restarting the app. Turning it off cancels API requests. Closing the app stops it.
The port is configurable while the API is stopped. The bind address is fixed to 127.0.0.1, so this version accepts local callers only; LAN listening and browser-origin/CORS requests are not supported. Set environment variable MIMIR_API_KEY before launching the app/server to require Authorization: Bearer YOUR_KEY. Otherwise no API key is required; clients that insist on one can use a placeholder. No OpenAI account is needed.
Supported endpoints are GET /v1/models and POST /v1/chat/completions. For example, after starting the API:
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"dfm-mimir","messages":[{"role":"user","content":"Hej Mimir!"}],"max_tokens":64}'The example uses POSIX shell quoting. Responses can be ordinary JSON or SSE with "stream":true. Supported sampling controls include temperature, top_p, seed, and one token budget (max_tokens or max_completion_tokens). Messages must contain text: an optional initial system message, then alternating user/assistant turns ending in user. Mimir's own chat template is applied.
API requests share the UI's loaded model, execute serially, and do not create or modify saved chats. Clients must supply conversation history. API requests do not use automatic compaction or cross-request MixedLM reuse; oversized requests return an error. Tools/function calling, images/audio, developer-role messages, structured response formats and the Responses API are unsupported. This is not full OpenAI API parity. See the API guide for the complete field/error/queue limits.
Headless desktop server
No GUI or display server is required. The included server loads the packaged model and exposes the same API:
# Linux: run from the extracted package
./dfm-mimir-server --port 8080
# macOS: run from Terminal after installing the app
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080# Windows PowerShell: run from the extracted package
.\dfm-mimir-server.exe --port 8080Use --help for options, including --model FILE.gguf, --profile FILE.json, --device auto|cpu|DEVICE, --context TOKENS, --max-tokens TOKENS, and --port PORT. Default context sizing is automatic and the default reply budget is 512 tokens. An imported model uses the bundled profile unless you supply another profile. Stop with Ctrl-C. A separately launched GUI and server each load their own model and consume additional memory. The same loopback-only binding and optional MIMIR_API_KEY authentication apply.
Optional chat feedback and privacy
Thumbs up/down can share the selected conversation with the Mimir team to improve future Mimir and other DFM models. Online feedback is off by default, independently of model-download permission. The first thumb click asks whether to enable it; declining leaves local chat usable. Change this under Model and settings → Allow online feedback.
Every submission requires Confirm and send after a preview showing the exact chat, any compaction summary (including hidden summaries), optional comment, editable device-generated pseudonym and limited app/model/settings metadata. The separate CC BY 4.0 publication permission defaults on and can be unchecked. Enabling feedback alone sends nothing; cancelling sends nothing. Network denial or submission failure affects only feedback, not local chat.
Submissions go to the team's Cloudflare service. D1 database storage/execution uses EU jurisdiction; Worker request processing may occur elsewhere. Publication is a separate team review decision, not automatic on submission. The app contains no Cloudflare administrative credentials or feedback read/export access. Contact: petersk@imada.sdu.dk. OS networking permissions are declared; the consent switches are app-level controls, not a general OS Internet-permission prompt.
Changes in 0.1.2 and model provenance
This version corrects tokenization in the bundled Q4_K_M export to match training, adds the model selector with official discovery and user-specified HF repositories, and includes Android startup recovery and bounded prompt/history compaction.
Bundled file: [`danis...
DFM Mimir 0.1.1 — bundled weights
DFM Mimir 0.1.1 (build 3) is a local chat app with the bundled Q4_K_M (4-bit) model included. No account, model download or model import is required to start chatting. Desktop packages also include an optional OpenAI-compatible local API and a standalone headless server.
Downloads and installation
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | DMG | Metal acceleration with CPU fallback |
| Android ARM64 | APK | CPU by default; experimental Vulkan is opt-in |
| Linux x64 | tar.gz | CPU; GTK3 desktop required, built on Ubuntu 22.04 |
| Windows x64 | ZIP | CPU; release VC runtime included |
- macOS: mount the DMG, drag DFM Mimir.app into Applications, then open it there and eject the image.
- Linux/Windows: extract the entire archive and run
dfm-mimir/dfm-mimir.exe. Keep the libraries, assets and server executable together. - Android: install the APK. Open Model and settings, choose limits/backend, then press Load model. Startup deliberately leaves the model unloaded so settings remain accessible. Start with CPU, 1,024 context tokens and 512 reply tokens. After a freeze, force-stop the app and reopen it to change settings. Changing an initialized backend also requires force-stop/reopen.
Each package is roughly 1.1–1.2 GB because it includes the model. Download size is not RAM use: model loading and longer contexts require additional memory. Android also extracts a model copy into app-private storage, so allow space for both the APK and extracted model, plus a temporary copy during updates. Each download has a matching .sha256 sidecar in Assets.
These packages retain development signing: macOS is ad-hoc signed and not notarized; Android uses the development key; Windows is unsigned. If macOS blocks the app, use the per-app Open Anyway option in System Settings → Privacy & Security only if you trust the download. Physical Android Vulkan remains unqualified. Linux/Windows packages do not include CUDA or Vulkan acceleration. No distributable iOS package is included.
Chat, context and model selection
The app provides saved conversations, streaming replies, stop, sharing, model/backend settings and a context-use indicator. Model and settings controls context length and reply budget. Desktop automatic sizing uses available memory; Android starts with conservative manual limits. The bundled model was trained at 4,096 tokens; configurable contexts up to 32,768 are experimental and may reduce answer quality or exceed available memory.
Automatically compact context summarizes older turns when context fills, aiming to free at least half the context when the current prompt and reply reservation permit. Oversized prompts or historical turns are split into bounded pieces for summarization. Original messages remain in the transcript; shortened text is kept separately for inference. Show compaction summary in chat reveals summaries where they occurred, including while they stream. Compaction is lossy and can take multiple model passes. Disabling it restores original text for inference, which may exceed context.
MixedLM mode is an optional approximation that reuses representations of older turns to reduce repeated prompt processing. It is off by default and can change answers.
In Model and settings, use Import Mimir GGUF… to load a compatible local
GGUF file, Import model profile… for its model-specific settings, or Use
bundled model to switch back to the included weights. Changing the model does
not establish compatibility with a different architecture; use a profile that
matches the model. Version 0.1.1 has no in-app Hugging Face catalog or model-download
interface. Bundled chat and local model import work offline.
OpenAI-compatible API on desktop
macOS, Linux and Windows expose an optional text Chat Completions subset of the OpenAI API. Android does not expose this API.
- Load a model, open Model and settings, choose the port (default
8080) and enable OpenAI-compatible local API. - The active address appears in settings. Configure your client with base URL
http://127.0.0.1:8080/v1and modeldfm-mimir. - The API starts off by default; enable it again after restarting the app. Turning it off cancels API requests. Closing the app stops it.
The port is configurable while the API is stopped. The bind address is fixed to 127.0.0.1, so this version accepts local callers only; LAN listening and browser-origin/CORS requests are not supported. Set environment variable MIMIR_API_KEY before launching the app/server to require Authorization: Bearer YOUR_KEY. Otherwise no API key is required; clients that insist on one can use a placeholder. No OpenAI account is needed.
Supported endpoints are GET /v1/models and POST /v1/chat/completions. For example, after starting the API:
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"dfm-mimir","messages":[{"role":"user","content":"Hej Mimir!"}],"max_tokens":64}'The example uses POSIX shell quoting. Responses can be ordinary JSON or SSE with "stream":true. Supported sampling controls include temperature, top_p, seed, and one token budget (max_tokens or max_completion_tokens). Messages must contain text: an optional initial system message, then alternating user/assistant turns ending in user. Mimir's own chat template is applied.
API requests share the UI's loaded model, execute serially, and do not create or modify saved chats. Clients must supply conversation history. API requests do not use automatic compaction or cross-request MixedLM reuse; oversized requests return an error. Tools/function calling, images/audio, developer-role messages, structured response formats and the Responses API are unsupported. This is not full OpenAI API parity. See the API guide for the complete field/error/queue limits.
Headless desktop server
No GUI or display server is required. The included server loads the packaged model and exposes the same API:
# Linux: run from the extracted package
./dfm-mimir-server --port 8080
# macOS: run from Terminal after installing the app
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080# Windows PowerShell: run from the extracted package
.\dfm-mimir-server.exe --port 8080Use --help for options, including --model FILE.gguf, --profile FILE.json, --device auto|cpu|DEVICE, --context TOKENS, --max-tokens TOKENS, and --port PORT. Default context sizing is automatic and the default reply budget is 512 tokens. An imported model uses the bundled profile unless you supply another profile. Stop with Ctrl-C. A separately launched GUI and server each load their own model and consume additional memory. The same loopback-only binding and optional MIMIR_API_KEY authentication apply.
Optional chat feedback and privacy
Thumbs up/down can share the selected conversation with the Mimir team to improve future Mimir and other DFM models. Online feedback is off by default, independently of model-download permission. The first thumb click asks whether to enable it; declining leaves local chat usable. Change this under Model and settings → Allow online feedback.
Every submission requires Confirm and send after a preview showing the exact chat, any compaction summary (including hidden summaries), optional comment, editable device-generated pseudonym and limited app/model/settings metadata. The separate CC BY 4.0 publication permission defaults on and can be unchecked. Enabling feedback alone sends nothing; cancelling sends nothing. Network denial or submission failure affects only feedback, not local chat.
Submissions go to the team's Cloudflare service. D1 database storage/execution uses EU jurisdiction; Worker request processing may occur elsewhere. Publication is a separate team review decision, not automatic on submission. The app contains no Cloudflare administrative credentials or feedback read/export access. Contact: petersk@imada.sdu.dk. OS networking permissions are declared; the consent switches are app-level controls, not a general OS Internet-permission prompt.
Changes in 0.1.1 and model provenance
Build 3 includes chunked compaction for oversized prompts and history, a target
of freeing at least half the context when possible, preserved original transcript
text with visible/streamed summaries, and Android settings-first startup with
CPU defaults. It replaces the earlier startup-only Android build 2.
The bundled Q4_K_M file is 1,167,417,504 bytes. It was converted locally from
danish-foundation-models/DFM-Mimir,
revision 2844f0178e695d7d9ce182cb660671fd34c76ce5.
Model SHA-256: 3cf8906f4dd1349c965e7dd873e3995419d34bf846a657840a393c32c89849a5.
Model and dependency licenses are included. This historical package retains the
older tokenizer conversion; the training-faithful corrected export is bundled in
0.1.2.
The instructions on this page describe 0.1.1 itself.
Package source: [1fa33a1](https://github.com/schneiderkamplab/H...
DFM Mimir 0.1.0 — bundled weights
DFM Mimir 0.1.0 development preview with bundled Q4_K_M weights. Chat runs locally; no account, model download or model import is required.
| Platform | Download | Inference |
|---|---|---|
| macOS 14+ Apple Silicon | dfm-mimir-0.1.0-macos-arm64.dmg |
Metal with CPU fallback |
| Linux x64 | dfm-mimir-0.1.0-linux-x64.tar.gz |
CPU; compatible GTK3 desktop (built on Ubuntu 22.04) |
| Windows x64 | dfm-mimir-0.1.0-windows-x64.zip |
CPU; release VC runtime included |
| Android ARM64 | dfm-mimir-0.1.0-android-arm64.apk |
Vulkan with CPU fallback; physical-device GPU execution not yet qualified |
On macOS, mount the DMG and drag DFM Mimir.app to Applications. On Linux/Windows, extract the complete folder and run dfm-mimir / dfm-mimir.exe. Keep the entire folder together. Android is a development-signed APK for sideload testing; Vulkan needs a compatible 1.2+ driver.
These remain development builds. macOS is not Developer ID signed/notarized; Gatekeeper may require the per-app Open Anyway option. Windows/Linux are unsigned. Mobile physical-device networking and GPU qualification remain separate from the build/tests below.
Optional chat feedback
These downloads now include conversation thumbs up/down. Online feedback starts off. The first thumb click asks for permission inside Mimir; declining leaves local chat usable. The setting can be changed under Model and settings → Allow online feedback. Standard OS networking permissions are declared; this is app-level consent, not a runtime OS permission grant.
Each upload requires separate confirmation showing the exact chat, any compaction summary, optional comment, editable device-generated pseudonym and limited model/settings metadata. The separate CC BY 4.0 publication permission defaults on and can be unchecked. Upload failure does not affect local chat; retries within the dialog preserve the submission ID.
Submissions go to the Mimir team for improving Mimir and other DFM models. The Cloudflare service uses EU-jurisdiction D1 storage/execution; Worker request processing may occur elsewhere. Publication requires team review. The apps contain no Cloudflare credentials or administrative read/export access. Contact: petersk@imada.sdu.dk.
Desktop local API and headless mode
Desktop packages include an opt-in local Chat Completions API. Enable OpenAI-compatible local API in Settings; the active URL is shown there. The port is editable while stopped (default 8080). Binding is fixed to 127.0.0.1; API settings are session-only. Use model dfm-mimir at http://127.0.0.1:8080/v1.
Headless commands:
- Linux:
./dfm-mimir-server --port 8080 - Windows:
dfm-mimir-server.exe --port 8080 - macOS:
"/Applications/DFM Mimir.app/Contents/MacOS/dfm-mimir-server" --port 8080
Ctrl-C stops the server. It loads bundled weights without opening the GUI. Optional bearer authentication uses MIMIR_API_KEY. The Android APK does not expose this API. See the API guide for the supported text Chat Completions subset.
Validation and checksums
Feedback implementation: c813ba3. All 22 app tests and five service integration tests passed; live synthetic submission, retry, private/public permissions, authenticated review/export and cleanup passed. Linux/Windows package CI and service CI passed. macOS, iOS simulator and Android ARM64 builds passed.
Release assembly verified desktop archive manifests/file hashes, Linux executable permissions, bundled-model hashes, macOS image/signature integrity, and Android signature/ARM64/16 KiB ZIP and ELF alignment. Package audits found no feedback administration files, Cloudflare account/database IDs or recognized credential markers. These checks do not replace clean-host or physical-device acceptance.
Model SHA-256: 3cf8906f4dd1349c965e7dd873e3995419d34bf846a657840a393c32c89849a5. Model/dependency licenses are included. Download the matching .sha256 sidecar alongside each package.
ddd06c02f9898957abfbfcb49e8a80785901c25d8a7bc8f9829b90229b5fc7da dfm-mimir-0.1.0-macos-arm64.dmg
060e7968ad8f825285a0c38db9ee7b3f1147b5a211ab3870fae205098c9327d0 dfm-mimir-0.1.0-linux-x64.tar.gz
18671940d233dfb8fc97b6f3cb4a553b5e1076d764bfc8e03388a6869a7f832b dfm-mimir-0.1.0-windows-x64.zip
b6ce6ea3ea31c8c1a7c7e4df93204bd1ada054897e385fce1c4e57695fca7f17 dfm-mimir-0.1.0-android-arm64.apk