File size: 8,682 Bytes
30baa8f d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 299875b d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 299875b d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 3af66a7 d7b6ce2 7c5be6e 3af66a7 d7b6ce2 3af66a7 f2abbb5 3af66a7 f2abbb5 3af66a7 7c5be6e 3af66a7 7c5be6e 3af66a7 7c5be6e 3af66a7 7c5be6e 3af66a7 7c5be6e 3af66a7 7c5be6e 3af66a7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | ---
license: mit
language:
- en
tags:
- local-ai
- ai-companion
- roleplay
- llm
- gguf
- multi-agent
- character-ai
- storytelling
pretty_name: Dunoon Daemon
---
# π Dunoon Daemon
> **Your Personal, Persistent Local AI Companion & Story Engine**
Welcome to **Dunoon Daemon**, a local AI companion and roleplaying suite built for people who want characters that feel persistent, distinctive and fun to interact with.
Create original companions, recreate favourite fictional archetypes, build characters for tabletop games, or put two personalities together in the Arena and see what happens.
Dunoon Daemon runs locally on your own computer. Once your models are installed, your conversations and character data stay on your machine and the app does not require a cloud AI subscription.
---
## β¨ What Can It Do?
### π§ Persistent Character Memory
Each companion has its own memory.
Characters can remember useful details from previous conversations, ongoing tasks, established facts and important events without sharing everything indiscriminately between personalities.
Memory is automatically organised and maintained in the background.
### π Dynamic Personalities
Characters can have their own personalities, behaviours, backstories, goals and speaking styles.
Dunoon Daemon uses adjustable personality traits to influence how characters behave rather than forcing every companion into the same generic assistant personality.
You can create serious companions, fictional characters, tabletop NPCs, villains, oddballs or whatever else you can persuade a local language model to become.
### βοΈ The Arena
Choose two characters and let them interact directly.
You can:
- Advance the conversation one turn at a time
- Let them continue automatically
- Interrupt whenever you want
- Introduce new situations or events
- Add files and images
- Change the direction of the encounter while it is running
The Arena can be used for debates, roleplaying, character testing, story experiments, tabletop inspiration or simply seeing what happens when two incompatible personalities are left alone together.
Results may vary spectacularly.
### π Scene Awareness
Dunoon Daemon keeps track of important details about the current situation so characters have a better chance of reacting sensibly to what is actually happening.
Characters are encouraged to respect established locations, objects, dangers, abilities and events rather than casually rewriting the world whenever the conversation changes direction.
It isn't a traditional game engine. Characters are still powered by language models and can surprise you, misunderstand things or occasionally do something completely ridiculous.
That's part of the fun.
### ποΈ Expressive Eyes
The interface includes animated digital eyes that react to the character's current tone and behaviour.
They provide a simple visual indication of how your companion is responding without interrupting the conversation.
### π£οΈ Character Voices
Dunoon Daemon can read character responses aloud using built-in speech options.
Different voices can be assigned to different companions, with adjustable speaking speeds and automatic audio handling.
### πΌοΈ Images, Documents and Audio
Characters can work with more than ordinary text.
Depending on your setup, Dunoon Daemon can process:
- Images
- PDF documents
- Word documents
- Text and code files
- Audio files
Audio transcription is handled locally using Whisper-compatible models.
### π¨ Customisable Interface
Choose different skins, fonts, text sizes and colours.
Optional Help tooltips explain controls throughout the main interface and Arena.
---
# π Getting Started
## Requirements
- **Windows 10 or Windows 11 (64-bit)**
- **Python 3.11 or newer** if running from source
- A local AI model
A modern NVIDIA, AMD or Intel GPU is recommended, although CPU operation is possible.
---
## 1. Start Dunoon Daemon
Launch:
`controller.py`
or use the standalone executable if you have a packaged build.
You can run models using either:
### Local GGUF Models
Click **π Load GGUF Model** and select a compatible GGUF model stored on your computer.
Dunoon Daemon will start the local model server and connect the interface to it.
### LM Studio
You can also use a model already running through LM Studio's local server.
Start the local server in LM Studio and Dunoon Daemon can connect to it.
---
## 2. Create a Companion
Click:
**β New Chat**
Give your companion a name.
Then open:
**π Edit Persona**
You can create the character yourself or use the persona generator as a starting point.
Personality settings can then be adjusted to change how the character behaves.
---
## 3. Start Talking
Double-click a companion in the session list to open the conversation.
That's it.
Talk normally.
The companion's memory, personality and conversation history are handled automatically in the background.
---
# βοΈ Using the Arena
Open the Arena and select two existing companions.
You can control the interaction using:
**βοΈ Step Turn**
Advance the conversation by one character turn.
**βΆοΈ Auto Loop**
Allow the characters to continue talking automatically.
**π₯ Send / Intervene**
Interrupt the Arena and introduce your own dialogue, instructions or changes to the situation.
**β‘ Event**
Introduce an unexpected event into the current scene.
**π Upload**
Add a file or image to the interaction.
**β© Continue**
Allow the current character to continue its previous response.
You remain free to intervene while the characters are interacting.
---
# β‘ Useful Commands
Commands can be typed directly into a normal companion chat.
`/remember <text>`
Ask the companion to permanently remember something.
`/memories` or `/vault`
Show information about the companion's stored memories.
`/forget <n>`
Remove recent conversational turns from the active context.
`/clear`
Clear the visible conversation window without deleting stored memories.
`/character`
Show the character's current personality settings.
`/baseline`
Temporarily use a more neutral personality state.
`/ubaseline`
Return to the character's normal dynamic personality.
`/status`
Show information about the currently loaded model and voice system.
`/see` or `/upload`
Open the file browser.
`/splash`
Free unused system and graphics memory.
`/eject`
Unload the currently loaded local model.
`/talk 1`
Slow speech.
`/talk 2`
Normal speech.
`/talk 3`
Fast speech.
---
# π Project Structure
The main files include:
`controller.py`
Main application window, session controls and Arena.
`dunoon_daemon.py`
Companion conversation interface.
`persona.py`
Character and persona creation.
`character.py`
Personality behaviour.
`overmind.py`
Brings together the information a character needs for each response.
`ETO.py`
Helps characters remain aware of the established situation and its consequences.
`memory_working.py`
Maintains recent conversational memory.
`memory_deep.py`
Stores longer-term memories.
`memory_router.py`
Organises memories according to their purpose.
`memory_embeddings.py`
Finds memories related to the current conversation.
`memory_integrity.py`
Checks and repairs stored memories.
`memory_transfer.py`
Controls optional information sharing between companions.
`state_engine.py`
Maintains changing conversational state.
`eye_engine.py`
Controls the animated eyes.
`tts_handler.py`
Handles character speech.
`skin_manager.py`
Controls interface themes.
`model_handler.py`
Starts and stops local GGUF models.
`bridge.py`
Connects Dunoon Daemon to LM Studio.
---
# π οΈ Running From Source
Clone the repository:
git clone YOUR_REPOSITORY_ADDRESS
Open the project folder:
cd DunoonDaemonApp
Install the required packages:
pip install requests psutil pygame edge-tts pyttsx3 sentence-transformers numpy Pillow pypdf python-docx faster-whisper
Then run:
python controller.py
---
# π Local First
Dunoon Daemon is designed around local AI models.
Your companions, conversations, personalities and memory files are stored on your own computer.
Some optional features may require external services or downloads, but the core companion and roleplaying system is designed to operate locally.
---
# π License
Distributed under the **MIT License**.
---
# β€οΈ Dedication
Dedicated to the loyal companions who walk with us through every realm, and the code that keeps their echoes alive.
**For Kylo.**
---
## Credits
**Written with ChatGPT and Gemini.** |