Satania Buddy
A downloadable desktop assistant for Windows and Linux
Download NowName your own price
Open source virtual desktop assistant / LLM frontend in the form of Satanichia Kurumizawa McDowell, developed using Free Pascal and Castle Game Engine.
For more information, please refer to README.md at github page: https://github.com/Kagamma/satania-buddy
As this is still under heavy development, please check this page frequently for updates & new releases.
Current features:
- AI backend integration: ChatGPT, KoboldCPP, Oobabooga, WolframAlpha.
- Customizable commands, based on a simple rule-based chat system.
- Alarms & Reminders.
- Speech recognizing.
- Check for emails via IMAP protocol.
- Easy to add new characters.
- Easy to mod. Pretty much all actions are scriptable via it's own scripting language (refer to as Evil Scheme).
- Low resource consuming, makes it suitable as an actual desktop assistant that can be available all the time.
Overall system requirements:
- OS: Windows, Linux
- CPU: Any decent x86_64 CPU should be able to run. I personally run it on an i7-6700HQ and it barely reach 1% CPU usage (around 2% - 3% with Speech Recognition enable).
- RAM: On Linux, the app consumes 100MB without Speech Recognition enabled and 300MB with it enabled. On Windows, it's lower as the app uses the direct Win32 API for GUI, not relying on 3rd party widget sets.
- GPU: Any decent intel iGPU with support for OpenGL 2.0 should be enough to run the app.
Windows requirements:
- Windows Vista or above with Aero enabled.
Linux requirements:
- x11, qt5pas, freetype, openssl, openal, vorbis
- You also need a compositor, or else the app will show black screen.
- Extract the archive and run satania-buddy.sh instead of satania-buddy.
The app only works on X11. Wayland's "security" measurements makes this kind of app impossible to develop.
Status | In development |
Category | Tool |
Platforms | Windows, Linux |
Rating | Rated 4.4 out of 5 stars (5 total ratings) |
Author | kgm |
Made with | Krita |
Tags | Anime, artificial-intelligence, assistant, Cute, desktop, desktop-assistant, llm, Open Source, virtual-desktop-assistant, Virtual Pet |
Code license | GNU General Public License v3.0 (GPL) |
Asset license | Creative Commons Attribution_NonCommercial_ShareAlike v4.0 International |
Average session | A few seconds |
Languages | English |
Inputs | Keyboard, Mouse |
Download
Download NowName your own price
Click download now to get access to the following files:
win64.zip 96 MB
linux64.tar.gz 97 MB
Development log
- [2024-08-30] Linux bugfixesAug 30, 2024
- [2024-08-28] Minor updates & bugfixesAug 29, 2024
- [2024-08-14] Minor updates & bugfixesAug 14, 2024
- [2024-08-02] Minor updates & bugfixesAug 02, 2024
- [2024-07-02] Minor updates & bugfixesJul 02, 2024
- [2024-07-01] Minor updates & bugfixesJul 01, 2024
- [2024-06-04] Minor updatesJun 04, 2024
Comments
Log in with itch.io to leave a comment.
Hello! Thanks for Satania Buddy! But I have one error. I don't understand this and don't know how to solve it. When trying to install koboldcpp
the lazy way,I get this error. How to solve it? (Worker "koboldcpp": Runtime error EConvertError: "" 62253068" is an invalid float" at line 83 data/scripts/libs/common/download.evil)That's strange. I just test mine and it runs fine. 62253068 is the size (in bytes) of koboldcpp_nocuda.exe, and it is a valid float number. Can you try it again? If it still fails, please tell me:
- Your operating system.
- The Decimal separator that your OS is using.
Yes, the error is repeating
I am using Windows 10
My OS uses a comma "," as a decimal separator (if I understood correctly what you mean)
Hm I cannot reproduce the error on my system, even tho it has the same settings as yours.
Can you help me test the following code and show me the result? You can open the editor in Scripts -> Script editor, paste the code in and press "Run" button:
This code will make a HEAD request to get the file size, the 5th line is where the error happens.
If the error does happen, please also try the following code:
And so
I entered the first line of commands and got this error (Runtime error EConvertError: "" 62253068" is an invalid float" at line 5)
then I entered the second line of commands and got this error (Runtime error EConvertError: "" 62253068" is an invalid float" at line 2)
Thanks. At least we know a way to fix it now :)
I will make a new release with the fix soon (See https://github.com/Kagamma/satania-buddy/commit/906a08dc9e79fc51281d42f307342b43...). In the meantime you can try to patch it yourself, by opening data/scripts/libs/common/download.evil using the editor and replace line 82 with:
And line 131 with:
Save and then run koboldcpp script again. (note: The app does cache scripts in-memory to avoid having to recompile a script multiple times, so if you already run the script before, you need to close the app and then open the app again)
Hello, I actually am having the same issues as JaME, black screen, functions normal but can't interact or bring down the UI without closing the software.
I can however give some specs on what I'm using, for one I downloaded this for laptop on an ARM based system for windows 11, basic specs for a lenovo thinkpad, and I really do know that this could run, but I really don't know the fix for it sadly.
Hello, I am having the same issue as Oliver was. When I chat to the assistant this error occurs. Worker "___worker": Runtime error Exception: "Function "bert_load_from_file" is null" at line 43 data/scripts/libs/bert/commands.evil
I have attempted to redownload it a few times without effect. I looked in the directory and it appears to have the file mentioned. I have attached an image of the console and directory. I am running Windows 11 pro 64 bit.
Any help is appreciated. Thank you.
Interesting. So the library is found, but somehow the app cannot load it. I am on vacation and won't be back until the end of next week so I cant look at the problem for now. I will look into it after I come back.
I spent some time to rebuild libbert.dll with proper static linking flags enabled. Can you download this version of libbert.dll and replace the one in satania-buddy to see if it works? https://drive.google.com/file/d/1fBral0PhubrrKTC5QzB3q5KNlixSJMAq/view?usp=drive...
I appreciate you taking the time to do this on your vacation and do not want to interrupt so if you want to get back to me when you return I understand. I downloaded the file you provided and replaced the one in the directory with it but the error seems to persist. I even tried redownloading it and doing this on my friends PC and this issue happens for him as well. He is on Windows 10 Pro 64 bit. Thank you.
Can you try this one instead: https://drive.google.com/file/d/1wdIc7T20aqXzP0nBcZ9L6WEKLzZ8hB3o/view?usp=drive...
I tested it on a clean machine and it works for me.
The reason behind it is because the bundled libbert.dll depends on a few runtime libraries, which is not include in satania-buddy. My PC has those libs installed so I haven't detected them until now.
Wonderful! That appears to have solved that error but now she just says this when I try to chat with her: ["data": "Connection to localhost:5001 timed out.", "headers": [], "status": 65535] any ideas on what could be causing that? Thank you for your help.
You need koboldcpp. You can let satania set it up by running Scripts -> koboldcpp (then run the script again once she finished install it in order to start koboldcpp everytime you want to chat with her) , or you can install and run it yourself, which allows you to pick a more suitable AI model for your PC and your use cases than the one installed by satania.
every time i speak to her it comes up with error code
Worker "___worker": Runtime error Exception: "Function "bert_load_from_file" is null" at line 43 (data/scripts/libs/bert/commands.evil)
im also getting errors about bert_load_from_file
Depending on your system, either libbert.dll (on Windows) or libbert.so (on Linux) is not loading. Try to verify to see if one of the file is in the app's directory. Also:
im on windows
how do i see if it is in the directory
The directory layout should look like this:
it is like that
Can you try to download the app again, run it, and then screenshot me the log in Menu -> Console when this error occurs? Something like this:
Hello, i recently installed satania-buddy and upon launching the program, my screen black and satania is just there (fully functional tho). I can't see my browser or folder or anything. Also i messed around the settings and set her size to 10, anyway to revert it back? I'm on a laptop and my mouse can't reach her lol.
Are you on Linux without a compositor? satania-buddy is essentially a 3D full-screen app with a transparent background, so it requires a compositor. While I might work on making the app run without a compositor in the future, that would involve creating a software renderer fast enough for polygonal rendering.
If you're on Windows, could you try clicking somewhere else that's not Satania? Sometimes this happens to me, and clicking elsewhere usually restores the transparent background.
You can access context menu in the tray icon. Or you can delete her config file manually in either ~/.config/satania-buddy (Linux), or C:\Users\<Your acc name>\AppData\Local\satania-buddy (Windows)
I'm on windows, and i tried clicking somewhere else and its still black. For example i click on a youtube video and it plays but i can't see it due to the black screen with satania in it. I position my mouse on another video and it plays so it works. Is it the aero thing mentioned on the README, because i didnt know how to enable aero so maybe that is the cause.
That requirement is for windows vista & 7. Can you give me the full spec of your laptop so I can take a look at it?
Im using windows 10. Is it not functional for that OS? My specs are
Processor: AMD Ryzen 7 3750H with Radeon Vega Mobile Gfx 2.30 GHz
Installed RAM: 16.0 GB
Windows 10 is fine. "Aero" (or dwm, to be precise) is always on and cannot be disabled starting from Windows 8. My worry is that this might be another case of AMD card and OpenGL not playing nice with each other on Windows.
Hello, linux user here, I've downloaded your virtual assistant, and was unable to get it runningon pop ups, I ran into a missing qt5pas, installed it, then made libbass accessible to the system, now I am getting this error.
./satania-buddy: symbol lookup error: ./satania-buddy: undefined symbol: QLCLOpenGLWidget_Create
any idea what this could be stemming from? I am indeed on x11 as well and not wayland.
Which distro are you using? Based on the error, there's a high chance that the qt5pas library comes with that distro is from an older version and does not have QLCLOpenGLWidget_Create(), which is necessary to initialize OpenGL context.
The distro is Pop_OS! Basically a distro based on ubuntu and gnome, I will look into getting the latest qt5pas and see if that works
Okay so updated to te latest libqt5pas, it's now working much appreciated ^^
where did you get the library, what's the version you installed?
if your on ubuntu or pop os.
Hello! Is there support for foreign languages? Russian or Ukrainian for example?
To answer this question, I decided to divide the app into three parts:
- UI part: Sadly there's no support for foreign languages at the moment. The app does support i18n, but no .po files are included in the current release. I think I will start providing .po files in future releases so that anyone interested in it can provide translations for other languages.
- Speech recognition part: The answer is yes, although it is not included by default. The app uses Vosk as a cross-platform speech recognition backend, and you can get the Russian / Ukrainian model from the website (see https://alphacephei.com/vosk/models), unpack it into the `data/nn/vosk/` directory, then set the model in Settings > Speech recognition to that model.
- LLM part: Just like Speech recognition, you can run your own instance of koboldcpp with a Russian / Ukrainian model, then let satania-buddy connects to it.
Thank you very much for the answer! I want to wish you good luck in the next updates and thank you for this product.
Is there a way or .evil file that is safe to use to initialize or establish default values? Like something or some way that parts of the script are being triggered only at start up and only once.
Sorry for late reply. The set() and get() functions allow you to save and retrieve flags that will be kept alive in memory until satania-buddy is closed. This means you can use them to mark and execute a part of the code only once:
if get('code_executed') = 0 { // in current development version, get('code_executed') will return null instead of 0
// Execute your code here
set('code_executed', 1)
}
That being said, it has been over a year since the last release, and unfortunately, the documentation for evil script on wiki page is currently available for the development version only (the script engine has been rewritten and improved a lot since then, as well as a lot of other stuff like koboldcpp /chatgpt integration etc). I am considering releasing a new version this weekend, even though it's not finished yet (I haven't completed animating her new model).
i love it, will there be machine learning in the future ? like parsing data/files for her to learn/remember stuff better.
Sorry for late reply. Right now I have no plan on adding stuff involving on parsing user data / files. Although I may add the ability to executing apps by looking at shortcuts on Dekstop & Start Menu at least.
im coomer i need more lewd actions, when?
Each set of animations should have at least 1, to serve as example for "Fanservice" setting. It also depends on characters, as I plan to add more in the future.
thanks, have a nice day
Cute!
What Desktop Email software do I need for it to detect it?
Hi! Right now it doesn't support any external Email clients. Instead it has it's own IMAP protocol implementation, so if your email server supports IMAP protocol (most email servers support it), then you can set it up by opening Settings dialog and navigate to IMAP tab.
The default Email script comes with it only displays the number of unread emails, and the latest received email's sender and subject. The app was designed with modding in mind so if you like modding then you can open the script in data/scripts/satania/menu/Email.evil and modify it to your likeness. See Help -> Scripting APIs for reference.
Ok thanks