GitHub - DannyArends/DLLM: A minimal, clean D language interface for running LLM inference using importC around llama.cpp. · GitHub
/" data-turbo-transient="true" />
Skip to content
Type / to search
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
DannyArends
DLLM
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star<br>13
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>110 Commits<br>110 Commits
deps
deps
src
src
templates
templates
workspace
workspace
.gitignore
.gitignore
.gitmodules
.gitmodules
AGENTS.md
AGENTS.md
LICENSE.txt
LICENSE.txt
README.md
README.md
dub.json
dub.json
View all files
Repository files navigation
DLLM - D Language 🤖 on 🦙.cpp
A minimal, clean D language agent built directly on llama.cpp via<br>importC. No Python, no bindings, no overhead. Runs a three-model<br>pipeline (agent, summary, embed) with full CUDA<br>offloading, multimodal vision via mtmd, RAG, KV-cache condensation, thinking budget, and an extensible tool<br>system (auto-registered via user-defined attribute @Tool("Description") on functions). Tools included<br>cover: file I/O, web search, date & time, text encoding, Docker sandboxed code execution, and audio playback.
Build with 🛠️
Compilation guide for dependencies are found in deps/README.md
D Compiler : Use either DMD, LDC, or GDC to compile the agent.
llama.cpp : Bundled with llama.cpp
Cuda Toolkit : Built with CUDA for GPU acceleration support.
SearxNG : SearxNG is used to provide unlimited web searching by the webSearch() tool.
Docker : Docker provides a code execution sandbox used by the runCode() tool.
Models 🧠
Tested with the following HuggingFace models:
Agent : Qwen3.5-4B & mmproj-F16 (vision).
Summary : Qwen2.5-0.5b instruct.
Embed : Nomic embed text v1.5.
Model paths are configured in src/main.d and with the above model setup require 8GB VRAM.
Run ⚙️
Execute with prompt to OneShot:
dub -- "What is your name?"<br>dub -- "Download the image at https://picsum.photos/400, load it, and write a poem about it"<br>dub -- "What date is it today ? and which day of the week was 2 days ago ?"<br>dub -- "Generate an 8-second audio file of a 440hz sine wave that fades out, then play it"<br>dub -- "Generate a spoken 16-bit PCM WAV of 'Hello World' and play it"<br>dub -- "Ingest the file README.md into RAG, tell me what DLLM is in one sentence"<br>dub -- "Read the file dub.json, and summarize in a single line what the file is about."<br>dub -- "How is the weather in Newcastle upon Tyne (UK) ?"<br>dub -- "Fetch the Bitcoin price history online, plot it as a chart and save to workspace"<br>dub -- "Think about then tell me, a story about math, 4 lines of text and be creative!"
Or start an interactive session:
dub
Contributing 🙌
Want to contribute? Great! Contribute to this repo by starring ⭐ or forking 🍴, and feel<br>free to start an issue first to discuss idea's before sending a pull request. You're also<br>welcome to post comments on commits.
License ⚖️
Written by Danny Arends and released as GPLv3
About<br>A minimal, clean D language interface for running LLM inference using importC around llama.cpp.<br>www.dannyarends.nl<br>Topics<br>d-languagegenai<br>Resources<br>Readme<br>GPL-3.0 license<br>Activity<br>Stars<br>13 stars<br>Watchers<br>3 watching<br>Forks<br>4 forks<br>Report repository
Contributors
Languages
You can’t perform that action at this time.