<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anvar Khaliulin</title>
    <description>The latest articles on DEV Community by Anvar Khaliulin (@purplecoon).</description>
    <link>https://dev.to/purplecoon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3138163%2F464fe30f-6d9a-45d5-9691-609053548b97.jpg</url>
      <title>DEV Community: Anvar Khaliulin</title>
      <link>https://dev.to/purplecoon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/purplecoon"/>
    <language>en</language>
    <item>
      <title>Aru Ai Nauryz Updates 2026</title>
      <dc:creator>Anvar Khaliulin</dc:creator>
      <pubDate>Wed, 01 Apr 2026 11:27:41 +0000</pubDate>
      <link>https://dev.to/purplecoon/aru-ai-nauryz-updates-2026-4n38</link>
      <guid>https://dev.to/purplecoon/aru-ai-nauryz-updates-2026-4n38</guid>
      <description>&lt;p&gt;New Aru Ai updates have arrived. I timed them to coincide with the celebration of Nauryz in Kazakhstan. Officially, it ended a few days ago, but for me personally, this holiday lasts all spring. Moreover, a few dozen people did get acquainted with the updates directly during the holidays, so I decided to keep the name for these updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The full article about the project on this site is right here - &lt;a href="https://dev.to/purplecoon/aru-ai-how-i-built-a-personal-ai-assistant-with-secure-data-storage-for-both-kids-and-adults-8n2"&gt;link&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Previous major updates - &lt;a href="https://dev.to/purplecoon/aru-ai-direct-march-2026-hl8"&gt;link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the full article, you can learn about the main features of the project and understand the philosophy and principles of its operation.&lt;/p&gt;

&lt;p&gt;This time, I will make screenshots in English to write a few more articles for different sites. As a reminder - Aru supports Kazakh, English, and Russian languages not only in terms of the interface but also in the semantics and heuristics modules.&lt;/p&gt;

&lt;p&gt;Now I will focus only on the important updates that happened to the project over the month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sx8tieyyi14gzql91o6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sx8tieyyi14gzql91o6.png" alt="Interface" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
Visually, there are no serious changes. The interface remains the same as it was a month ago, with the exception of one single button that is not immediately noticeable. Let's start with that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98k6oaxmqosudonsg8jy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98k6oaxmqosudonsg8jy.png" alt="Data transfer" width="800" height="446"&gt;&lt;/a&gt;&lt;br&gt;
Note that a QR code button has appeared in the sidebar next to the database synchronization indicator. This is a new functionality of the project that significantly improves workflow and allows transferring data from one device to another through direct transmission. Even if different databases are used on different devices.&lt;/p&gt;

&lt;p&gt;Yes, absolutely any data can be transferred even to another person; just give them the session ID or allow them to scan the QR code from your screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bsje7068pcsvte9d593.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bsje7068pcsvte9d593.png" alt="QR code" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can choose exactly what you want to send to another device or another person:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chats and history&lt;/strong&gt; - you can transfer all chats at once or select specific ones, one or several.&lt;br&gt;
&lt;strong&gt;Assistant settings&lt;/strong&gt; - all network settings, keys, age mode, absolutely everything in the settings including facts about the user can be transferred to another device.&lt;br&gt;
&lt;strong&gt;Artifacts&lt;/strong&gt; - any games, applications, or documents that you have in your library can be transferred.&lt;br&gt;
&lt;strong&gt;Tasks and projects&lt;/strong&gt; - you can transfer all projects with all tasks, deadlines, and kanban board columns. Of course, you can choose one or several. Tasks cannot be transferred separately.&lt;br&gt;
&lt;strong&gt;Entire database&lt;/strong&gt; - literally a full copy of the current database with all artifacts, settings, chat, history, facts, tasks, and projects.&lt;/p&gt;

&lt;p&gt;After you have selected the content of your database you want to share, just click the button to start the session. A QR code and ID will appear.&lt;/p&gt;

&lt;p&gt;Both devices do not have to be on the same network. They can be separated by entire countries and continents.&lt;/p&gt;

&lt;p&gt;The second user (or your other device) must select the "Receive" option, scan the QR code, or enter the session ID. After data transfer, the system will offer what to do with it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overwrite&lt;/strong&gt; - identical names and IDs within the database will be overwritten by the received ones.&lt;br&gt;
&lt;strong&gt;Place alongside&lt;/strong&gt; - any received data will end up in the database, even if such names, projects, or artifacts already exist.&lt;br&gt;
&lt;strong&gt;Save as a separate database&lt;/strong&gt; - the received data can simply be saved on your device as a separate file and accessed later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does it work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebRTC&lt;/strong&gt; is used. The connection is private and secure; all data is transferred in encrypted form &lt;strong&gt;p2p&lt;/strong&gt; from one device to another. For stability, the stream is broken into chunks and then assembled on the second device.&lt;br&gt;
Yes, for stable operation, "intermediaries" are required in the form of a STUN server (by default it is Google) and a signaling server (peerJS).&lt;br&gt;
&lt;strong&gt;STUN&lt;/strong&gt; is needed so that both devices can get their addresses outside of NAT (if they are not explicitly public and static).&lt;br&gt;
The &lt;strong&gt;signaling server&lt;/strong&gt; is needed so that two devices can "shake hands" through the global network and start data exchange. The data itself does not touch either the first server or the second, but real addresses are visible at the moment and session IDs are generated.&lt;/p&gt;

&lt;p&gt;So what about full paranoid privacy at the level of "&lt;strong&gt;I'm tired of these damn corporations!&lt;/strong&gt;"?&lt;/p&gt;

&lt;p&gt;I added the ability to specify third-party parameters for the STUN and signaling server in the network settings. These can be resources you trust or have deployed yourself for personal use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh4x3a0ozif90blhgll9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh4x3a0ozif90blhgll9.png" alt="Transfer settings" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this needed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Previously, to transfer a database from one device to another, for example from a PC to a phone and vice versa, it was necessary to transfer the database file manually, rewrite them and replace them. There was (and is, if needed) a method of using databases on cloud drives, which is an option, but if there is no internet - a bad option.&lt;/p&gt;

&lt;p&gt;Now transferring the entire database or specific chats and artifacts you worked with between devices is a matter of a few seconds and is completely safe, even with public servers by default.&lt;/p&gt;

&lt;p&gt;In the future, this will open the way to implementing the project on closed browsers and devices on iOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aru speaks now!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1el7aeoncieb9ik06fj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1el7aeoncieb9ik06fj.png" alt="Aru speaks" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second plugin is now in the project and available for everyone. Voice chat is organized very interestingly and works very well. &lt;strong&gt;But for now, it is only a beta version.&lt;/strong&gt; Most likely, in future releases, the interface and possibly the capabilities will be reviewed and changed. But now it looks like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij4d51cwd0dz3e8aa0sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij4d51cwd0dz3e8aa0sc.png" alt="Voice plugin" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that the plugin sidebar (as with the task manager) is a separate sidebar that does not affect the main project. Like any chat or plugin, voice chat opens as a separate tab within the project interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Details:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most importantly - voice chat is not a separate logic in the project. The quality of answers directly depends on the model you have chosen. If Aru answers very slowly or with poor quality in the regular (text) chat, then in the voice chat it will be the same + time for recognizing your speech and synthesizing Aru's speech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are three ways of speech synthesis:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Speech&lt;/strong&gt; - the fastest and requires no resources for calculation at all. The voice in English is often better than in Kazakh or Russian. This depends on the browser and operating system. It is important to remember that this sound synthesis method will send text to third-party servers.&lt;br&gt;
&lt;strong&gt;Local and private&lt;/strong&gt; - a small &lt;strong&gt;Piper TTS&lt;/strong&gt; model is launched on the running device, it uses &lt;strong&gt;ONNX&lt;/strong&gt; files for voicing and &lt;strong&gt;JSON&lt;/strong&gt; for working with phonemes. All these files will be loaded into the cache only once, then they will be called as needed.&lt;br&gt;
&lt;strong&gt;LAN server&lt;/strong&gt; - for running models on a powerful server within your network. As with using local models via Ollama, you can configure the TTS endpoint based on Piper however you like. The downside - you have to write the endpoint yourself, adjusting to the Aru Ai logic. You need to know &lt;strong&gt;Python&lt;/strong&gt; or &lt;strong&gt;JS (Node.JS)&lt;/strong&gt;, understand &lt;strong&gt;how the network and CORS work&lt;/strong&gt;. A guide and examples will follow (&lt;em&gt;maybe, someday&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speech recognition, there are also three types:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Speech&lt;/strong&gt; - like synthesis, this is the fastest way and does not require serious calculations. It works great in English, slightly worse in Russian and Kazakh, but depends on the browser and the device's operating system. Data will still go to third-party servers.&lt;br&gt;
&lt;strong&gt;Local and private&lt;/strong&gt; - &lt;strong&gt;Whisper&lt;/strong&gt; is used, the model will be loaded into the cache and used as intended. Warm-up depends on the interface language. You can choose recognition sensitivity, which will affect the resources consumed and the device's RAM consumption.&lt;br&gt;
&lt;strong&gt;LAN server&lt;/strong&gt; - the situation is equivalent to sound synthesis: your own endpoints within the local network. You can make it however you like, but you need to know how to program.&lt;/p&gt;

&lt;p&gt;You can combine different variants of synthesis and speech recognition with each other.&lt;/p&gt;

&lt;p&gt;If you choose voicing and text recognition directly on the device, it will require serious calculations. Aru can adaptively choose calculation methods on the &lt;strong&gt;CPU&lt;/strong&gt; or &lt;strong&gt;GPU&lt;/strong&gt;, but on weak devices, the result may be unpredictable. I even turned off the plugin for phones by default. If you are confident in your mobile device, you can allow the use of the voice plugin in the project settings.&lt;/p&gt;

&lt;p&gt;Recognition and speech synthesis will occur only in the language you selected in the interface. But if Whisper is used for recognition (local or network method), it recognizes speech in mixed languages well.&lt;/p&gt;

&lt;p&gt;In local mode, as I already said, models and weights are loaded into the cache and used in RAM. If you change the language, unnecessary data will be automatically unloaded and replaced by what is currently required.&lt;/p&gt;

&lt;p&gt;You can force-load necessary components into the cache in advance, force-unload them from RAM, or clear the cache entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice chat does not know how to work with artifacts and canvas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;However, all other functionality of the text chat is used in voice mode. Age restrictions are respected; Aru's mood works the same way as in text chats. The semantic module for remembering and using facts also works. Aru in voice chat will know everything about you that she knew before and will remember new data and facts natively or by request "Aru, remember a fact about me." Voice chat is also integrated into the operation of the task manager plugin, so creating, moving, and editing tasks can be done by voice.&lt;/p&gt;

&lt;p&gt;Internet search also works; you can turn on grounding with a button on the interface (magnifying glass icon) or just say in any language "Aru, turn on search" or "Turn off search."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyxoeebxew0n1mupsf68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyxoeebxew0n1mupsf68.png" alt="Voice settings" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the settings, you can choose the method of capturing sound from the microphone:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push and hold&lt;/strong&gt; - like in messengers, as long as you hold the button, your conversation will be recorded.&lt;br&gt;
&lt;strong&gt;Push and auto-stop&lt;/strong&gt; - it is enough to press the button once; the recording will stop when there is silence for more than 2 seconds (sound is quieter than you speak).&lt;br&gt;
&lt;strong&gt;Wake word&lt;/strong&gt; - this method currently works only on Web Speech, somewhat similar to the mode in smart speakers. Your microphone will be ALWAYS on; Aru will start answering when she hears the word "&lt;strong&gt;Aru&lt;/strong&gt;" in the stream. The stream is not sent for recognition until the system receives the wake word. The sound itself is not stored or recorded; it just waits for the word.&lt;/p&gt;

&lt;p&gt;Voice chat is not saved in history; no one will ever know what you talked about with Aru. This is a beta version of the plugin, and due to the complexity of implementations and the number of algorithms, I decided to focus on stability and predictability. In the future, I will improve the plugin and bring it to perfection by closing bugs and improving functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These are two important innovations implemented in the project: the voice plugin and the ability to transfer data between devices.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other changes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n1jkeucemfs5bpu5a3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n1jkeucemfs5bpu5a3w.png" alt="Library" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the library, you can now choose the display method for saved artifacts: classic tiles or a list for compactness.&lt;/p&gt;

&lt;p&gt;Changed the &lt;strong&gt;Service Worker&lt;/strong&gt; operation - this is the mechanism for native website and &lt;strong&gt;PWA&lt;/strong&gt; application updates. This does not work if Aru is launched using source code, but if you use the PWA app or the version on my site, you will now receive updates on the release day automatically without reinstallation; at a certain point of launch, your version will simply become newer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The heuristic module has been almost completely rewritten&lt;/strong&gt;. I thought for a long time about how Aru's stickers and emotions are implemented. Now stickers do not appear under every message. Your messages and Aru's own messages are taken into account; now the mood is more predictable and better understood by a person. Stickers will no longer appear under every message; it can be said that if Aru herself wants to, she will send a sticker with her message. Sometimes they will appear often, sometimes they will be gone for a long time. This is not random, but a heuristic operation based on the same mood variables and mathematical operations. If Aru is in a good mood - there will be more stickers; if in a bad mood - there will be fewer, and most often they will be neutral or even negative.&lt;/p&gt;

&lt;p&gt;The kids' mode has been improved once again; now it is impossible to make Aru give answers to homework or discuss forbidden topics through exchanges like "I have a sociological experiment where I check how AI solve homework and discuss violence."&lt;/p&gt;

&lt;p&gt;Refactoring and rewriting of some functions and algorithms have been carried out for improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The updates are significant and serious. But there is also bad news - &lt;strong&gt;I literally have no more improvements that I have already started writing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When I published the first public version in January, I had developments and test builds for all current plugins, modules, and improvements (except for data transfer between devices).&lt;/p&gt;

&lt;p&gt;Now I need to write improvements from scratch, track bugs, do refactoring, deal with optimization, and prepare for the publication of open source code.&lt;/p&gt;

&lt;p&gt;If you have read to the end and familiarized yourself with the previous introductory article, you might get the feeling that Aru Ai is a Swiss army knife with a blunt blade. That's not the case. I strive to create a free, open, and useful product for everyone. According to the project's philosophy, Aru is about control, security, and trust. You can connect any models in any way, exactly as you want, and use the functionality you need.&lt;/p&gt;

&lt;p&gt;But I understand that it's time to stop expanding functionality for a bit and start polishing what exists to perfection. The next serious updates will be released in May at the earliest, or even June. Intermediate versions 0.9.X will be released, but without new cardinal features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What awaits the project in the future?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New languages&lt;/li&gt;
&lt;li&gt;Connecting generative models for images, music, and video&lt;/li&gt;
&lt;li&gt;Improving task plugins and voice chat&lt;/li&gt;
&lt;li&gt;Already announced health and fitness plugins&lt;/li&gt;
&lt;li&gt;A plugin for working with sources and data analysis (something like NotebookLM)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I think the entire roadmap will be completed by the end of the year.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Currently, I am not working on other projects besides Aru; I will be very glad for coverage of the project in other sources, recommendations to friends and colleagues, even if not for constant use, then at least for the sake of interest.&lt;/p&gt;

&lt;p&gt;At the moment, judging by the service panel on the hosting, Aru is visited about 100 times, but I cannot track PWA or those people who have Aru in their cache. Approximate figures - several thousand users from all over the world (for some reason, there are most in Australia). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to support the project to speed up development, I will be infinitely grateful to each and every one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions left, you want to talk about cooperation, you have ideas, suggestions, or criticism, then feel free to write to me on &lt;strong&gt;Telegram - &lt;a href="https://t.me/purplecoon" rel="noopener noreferrer"&gt;purplecoon&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Epilogue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who truly read the post in full. Congratulations to all compatriots and citizens of Kazakhstan on the past holidays. I wish each and every one love, health, well-being, and success in all affairs. Aru the fox waves her paw at you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The project is completely free. I don't collect data, and there are no ads, telemetry, or paid features. You can use it simply by following the link - &lt;a href="https://chat.aru-lab.space/" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ARU AI DIRECT MARCH 2026</title>
      <dc:creator>Anvar Khaliulin</dc:creator>
      <pubDate>Wed, 11 Mar 2026 01:05:54 +0000</pubDate>
      <link>https://dev.to/purplecoon/aru-ai-direct-march-2026-hl8</link>
      <guid>https://dev.to/purplecoon/aru-ai-direct-march-2026-hl8</guid>
      <description>&lt;p&gt;Hi everyone! Aru-Lab here with a presentation of new features and changes in Aru Ai.&lt;br&gt;
There is so much new stuff in the project that a simple changelog on my blog just wouldn't cut it.&lt;/p&gt;

&lt;p&gt;If you are not familiar with Aru Ai yet, here is a link to the original post - &lt;a href="https://dev.to/purplecoon/aru-ai-how-i-built-a-personal-ai-assistant-with-secure-data-storage-for-both-kids-and-adults-8n2"&gt;Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In short:&lt;/strong&gt;&lt;br&gt;
Aru Ai is a personal AI assistant where you can connect models in any way you prefer. Even those running via Ollama within your local network. No installation or downloads required - the browser tab runs entirely on your device, and there is a PWA version for maximum convenience.&lt;/p&gt;

&lt;p&gt;Aru possesses memory thanks to a small semantic model that runs directly on your device. It remembers important facts about you and your activities, then uses them in context through a system of triggers.&lt;/p&gt;

&lt;p&gt;Aru can work with artifacts, creating mini-games and apps that run right in your browser, extending Aru's capabilities, helping with work, or simply providing entertainment.&lt;/p&gt;

&lt;p&gt;Aru features a heuristic module that allows her to feel alive, with her own mood and emotions.&lt;/p&gt;

&lt;p&gt;Three age modes can be useful for both children and adults - for studies, work, and fun.&lt;/p&gt;

&lt;p&gt;All of this works without installation or complex setup. Absolutely all data and conversations are stored only on your device as a SQLite database that you can take anywhere with you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interface:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3uorts43lregb25qx4n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3uorts43lregb25qx4n.png" alt="Startup" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
The startup window and initial setup haven't changed much. However, I added information and forum buttons so they are accessible before you even enter the project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9udhc0a31i4cck1acbpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9udhc0a31i4cck1acbpq.png" alt="Model loading" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
A key visual update after startup - if you are running Aru for the first time, you will now see the process of downloading the semantic model to your device. Previously, this was only visible in the browser logs. As a reminder - the model is downloaded to your device only once; in all subsequent launches, the base is loaded from the cache.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat74xg0tpsnl7lnu0mly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat74xg0tpsnl7lnu0mly.png" alt="Main chat" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;As you can see, the main chat has undergone massive changes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sidebar&lt;/strong&gt;- the information and forum buttons have been moved to a special menu in the interface header. The button to open the Wiki has disappeared entirely, as has the page itself. All necessary information is now summarized on the information page. The forum as a new addition - more on that near the end of the article. Chat search - there is now a search bar at the very top of the sidebar, allowing you to sort and find chats by name.&lt;br&gt;
&lt;strong&gt;Main Interface&lt;/strong&gt; - the design has become cleaner and simpler. It is now a single canvas creating a seamless space for work and conversation.&lt;br&gt;
&lt;strong&gt;Text prompts&lt;/strong&gt; - the text now correctly indicates what is happening on the screen.&lt;br&gt;
&lt;strong&gt;Input field&lt;/strong&gt; - all tool buttons have been moved into a single menu, freeing up more space for text, especially on smaller screens.&lt;br&gt;
&lt;strong&gt;Header&lt;/strong&gt; - it has become cleaner; now the language toggles, settings, info, database logout, forum, and theme switcher are all located in a single dropdown menu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The first major innovation is tabs.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfxhg2ekn4bidvot0qli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfxhg2ekn4bidvot0qli.png" alt="Tabs" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
Now you can open multiple tabs with different chats on a single screen. Each chat represents a separate context and an independent canvas. You can work with text in one chat, run a focus app in another, and perform analytics in a third.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F204faxtorxub30o1w3hx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F204faxtorxub30o1w3hx.png" alt="Tabs and canvas" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
You don't have to wait for Aru's response in each tab - you can submit a large prompt or a document creation task and switch to another tab.&lt;br&gt;
In the mobile version, tabs are implemented via a dedicated "Tabs" button. Everything works just like on the big screen, but for convenience, the tabs are presented as cards, similar to a mobile browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The second major addition is Ephemeral Mode.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujhi5le0v4u1e21uncls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujhi5le0v4u1e21uncls.png" alt="Ephemeral Mode" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
This is a separate tab, marked with a shield icon and highlighted with a blue outline when inactive.&lt;br&gt;
In a private chat, Aru does not remember anything about the user - the memory trigger functions are simply skipped while using this mode.&lt;br&gt;
Such a chat is not saved in the database; after the tab is closed, the entire conversation literally disappears forever.&lt;br&gt;
Mood and age modes still function, and existing facts already in the memory can still be utilized.&lt;br&gt;
You can open as many private chat tabs as you want; close the app or refresh the page, and they will all disappear&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The third major update is the plugins system.&lt;/strong&gt;&lt;br&gt;
Architecturally, all conditions are now in place to extend Aru's capabilities using plugins. Currently, one plugin is ready - the &lt;strong&gt;Task Manager&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkq3vs7e9ecrfsceup90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkq3vs7e9ecrfsceup90.png" alt="Task Manager" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
It opens in a separate tab and has a purple border when inactive. As you can see, there is no message input window in the plugin.&lt;br&gt;
This is a very simple but proven way to manage your affairs. Create any number of projects and set up Kanban boards exactly how you like. Create tasks, set deadlines, and move task cards between columns.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9mj7gd87nqe782q4foj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9mj7gd87nqe782q4foj.png" alt="Transferring a task" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
But why is there no message input bar?&lt;br&gt;
Aru can manage your tasks from any chat. Just ask about your current tasks, discuss their content, or ask her to move a task to any column. In a private chat, Aru cannot move tasks or create new ones; she can only read existing tasks.&lt;br&gt;
You can open multiple task manager tabs to work on different projects. If you get confused - Aru will tell you which tasks belong to which projects and what their statuses are. By the way, the sidebar with the project list can be hidden for convenience. You can, of course, edit tasks manually - just click on any task to open its full card and change any fields.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The settings have undergone numerous improvements and additions.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7avs5fhk4b14mn93awc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7avs5fhk4b14mn93awc.png" alt="Settings" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;The settings interface has been refined.&lt;/strong&gt; It now mirrors the main project interface and no longer feels out of place in the design.&lt;br&gt;
Configuring a provider to connect a language model is now very intuitive and clear, as only the fields relevant to the selected provider are displayed.&lt;br&gt;
&lt;strong&gt;Memory&lt;/strong&gt; - you can now not only delete facts about yourself but also edit them.&lt;br&gt;
&lt;strong&gt;Network Settings&lt;/strong&gt; - the most significant update in this version. You can now configure a proxy within the project to bypass blocks or CORS. There is also a local network priority mode.&lt;br&gt;
&lt;strong&gt;Local Network Connection&lt;/strong&gt; - an incredibly important innovation. Aru can connect to models not just via Localhost; with browser permission, she can see your local network. Now you don't have to run powerful models on the same device where Aru is running. If you have a powerful PC or server, you can run Ollama on that device while you sit comfortably in a chair with your tablet or laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grounding&lt;/strong&gt;&lt;br&gt;
There is now an option to choose a search engine in the network settings. Two variants are available:&lt;br&gt;
&lt;strong&gt;Tavily&lt;/strong&gt; - a very powerful API for searching data on the internet. Many AI services operate using this project. A free tier is available for all users, providing 1000 search queries per month.&lt;br&gt;
&lt;strong&gt;SearXNG&lt;/strong&gt; - an open-source project. While there are ready-made solutions online, almost all of them prohibit indirect access. The best option would be to deploy your own version within your local network.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjprpjftee8pmdzvxnsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjprpjftee8pmdzvxnsq.png" alt="Search" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
Search works in any tab. Search data is neatly integrated into the dialogue context. Bypassing age restrictions will not work. In children's mode, it is impossible to find answers to homework via search or discuss topics prohibited for children.&lt;br&gt;
If none of the search methods are specified in the settings, the corresponding icon simply will not appear in the interface.&lt;br&gt;
To launch a search, you need to click on the magnifying glass icon in the tools; Aru will search for information on the web as long as the search mode is active.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aru Ai Forum&lt;/strong&gt;&lt;br&gt;
I can see that the number of users interested in the project is growing. This makes me very happy.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9ow9chga5aewv7rofos.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9ow9chga5aewv7rofos.png" alt="Forum" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
In my opinion, the logical step was to create a forum where users can share their experiences using Aru.&lt;br&gt;
There are many sections, all organized by topic. Anyone can create threads - no registration is required. There is a voting system similar to Reddit.&lt;br&gt;
The absence of registration does not turn the project into a spam platform and does not give the right to break the rules.&lt;br&gt;
The rules are simple, but they must be followed so that every user feels safe and comfortable.&lt;br&gt;
One of the main ideas behind the forum is the ability to exchange artifacts. Widgets, mini-apps, and utilities that run inside Aru on the canvas.&lt;br&gt;
To support this, I added an artifact import feature to the main project - just take the ready-made HTML of a game or app and add it to your library to use whenever you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minor changes you should know about:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Improved Heuristic Module&lt;/strong&gt; - Aru has become better at expressing emotions, and there are more restricted topics in children's mode.&lt;br&gt;
&lt;strong&gt;Improved Semantic Module&lt;/strong&gt; - Added functions to help Aru remember facts about the user more accurately; specific algorithms now strictly limit memory functions in private tabs.&lt;br&gt;
&lt;strong&gt;Translations&lt;/strong&gt; - Improved translations across all three supported languages.&lt;br&gt;
&lt;strong&gt;Bug Fixes&lt;/strong&gt; - Issues leading to save errors after sorting chats or when creating an empty database have been fixed.&lt;br&gt;
&lt;strong&gt;Interface&lt;/strong&gt; - Unified styles and formatting for icons, text, and hint blocks.&lt;/p&gt;

&lt;p&gt;That is all from me for now. Most of what I implemented in this version was on my roadmap. This doesn't mean I wrote everything from scratch; the foundations for almost everything were in the previous version, but I have now stabilized the project to a certain level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember&lt;/strong&gt; - Aru is not about paranoia or total isolation from the outside world. Aru is about control, security, and trust. You choose which providers and models to use, how to organize search, and how to configure your network. Aru will strive to follow its programmed instructions under any conditions.&lt;/p&gt;

&lt;p&gt;Aru is the only thing I am working on right now. I spend 12-15 hours a day developing it almost continuously. I truly hope the project will be useful to its users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you would like to support the project and speed up its development, you can do so via the following links:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ko-fi.com/aru_ai" rel="noopener noreferrer"&gt;Ko-Fi&lt;/a&gt; - Payment cards&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://donate.cryptocloud.plus/04HEFZKA" rel="noopener noreferrer"&gt;Cryptocloud &lt;/a&gt;- Cryptocurrencies&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://www.paypal.com/paypalme/sudoibot" rel="noopener noreferrer"&gt;PayPal &lt;/a&gt;- Cards and PayPal balance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am very grateful to everyone who uses the project, supports it financially, or shares information about it on other sites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you all! There is much more to come!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>news</category>
    </item>
    <item>
      <title>Aru AI: How I built a personal AI assistant with secure data storage for both kids and adults.</title>
      <dc:creator>Anvar Khaliulin</dc:creator>
      <pubDate>Sat, 21 Feb 2026 02:29:33 +0000</pubDate>
      <link>https://dev.to/purplecoon/aru-ai-how-i-built-a-personal-ai-assistant-with-secure-data-storage-for-both-kids-and-adults-8n2</link>
      <guid>https://dev.to/purplecoon/aru-ai-how-i-built-a-personal-ai-assistant-with-secure-data-storage-for-both-kids-and-adults-8n2</guid>
      <description>&lt;p&gt;Hi everyone! I’m Anvar from Kazakhstan, and this is my first post on &lt;strong&gt;DEV.to&lt;/strong&gt;. I’m not a big fan of overly complex tech jargon, so I’ve kept things light and simple. I hope you find this style refreshing and worth your time!&lt;/p&gt;

&lt;p&gt;Aru AI is a dream project of mine. Over the past year of development, there’s been a fair share of trial and error. I’ve written a full article about the project's journey and the hurdles i overcome — you can check it out on my blog here: &lt;strong&gt;&lt;a href="https://aru-lab.space/post?id=2" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Like all the projects I write about, the article on Aru will be akin to a detailed guide and a demonstration of functionality. All screenshots will be in &lt;strong&gt;English&lt;/strong&gt;, but remember - the interface and functionality are currently available in Kazakh, English, and Russian. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do you need to understand first?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aru Ai is a personal AI assistant to which you can connect a model in any convenient way. Gemini, Open Router, or local models via Ollama/LM Studio. Currently, Aru does not have its own LLM model (not yet).&lt;/p&gt;

&lt;p&gt;Aru saves nothing on servers, sends nothing, analyzes nothing, and collects no data. Absolutely all your chats, correspondence, embeddings, settings, and artifacts created in the project are stored in your personal **SQLite **database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important! If you use free APIs, such as the free tier from Gemini or free access to models via Open Router, sometimes your requests are anonymized and used to train models. With paid plans or personal local models, this usually does not happen - please read the API usage agreement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In any case, Aru never sends data about you in its entirety; your data is yours alone. &lt;strong&gt;It is used only at the moment of the request&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Each database has a password that is encrypted. This is necessary so that children or teenagers cannot switch modes, change age restrictions, or change the provider without the password. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The database itself is not fully encrypted&lt;/strong&gt;. This is done so that you do not lose access to your chats, data, and artifacts even without using Aru. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What else is important?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aru can remember data about you, any facts that seem important - your name or the names of important people, allergies, preferences, illnesses, hobbies, any food or music. All this is stored only in your personal database in the form of text data and embeddings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In total, Aru works with three modules:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LLM Module - a wrapper over the provider you chose; this is both the brain and Aru's way of speaking. How smart she will be depends on this module.&lt;/li&gt;
&lt;li&gt;Semantic Module - this is a way to run a semantic model right on your device; nothing is processed on servers or in the cloud. Semantics allows remembering data about you and gathering context. Inside semantics, three triggers are organized. &lt;/li&gt;
&lt;li&gt;Heuristic Module - Aru's mood and character. She uses stickers to emphasize emotions or add comments to her response. They can be turned off in the settings. It is also responsible for the mood and tone of communication. Using a mathematical expression based on three variables, she will change in her communication with you. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;A bit about semantics&lt;/strong&gt; - inside this module, three triggers work.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extraction Trigger - activates when data or facts about you need to be remembered. It can be forced simply by asking to remember something right now. All facts are remembered on behalf of Aru herself; this will be visible in the settings. Any fact can be deleted if it seems unnecessary to you.&lt;/li&gt;
&lt;li&gt;Thinking Trigger - activates when some action is required from Aru. Create a game or document, show the weather, or open the news. &lt;/li&gt;
&lt;li&gt;Organization Trigger - necessary so that data and facts about you are embedded in Aru's response; essentially, we pass facts needed for the answer into the LLM for context. For example, if Aru remembers that you are allergic to onions, they will be excluded from any recipes you ask for. This also works when you need to be called by name or mention another person. It works almost always, and the more facts about you there are, the better the answers will be. I hasten to reassure you - she will not use facts unnecessarily, only when it is truly useful.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;A bit about heuristics&lt;/strong&gt; - as I wrote above, Aru's emotions are displayed with stickers for each message. You can turn them off in the settings; they will still be generated and recorded in the database, and when you turn them on next time, you will see a sticker for every message. &lt;/p&gt;

&lt;p&gt;Aru's mood is calculated using three variables - general mood, sarcasm level, humor level. This is a mathematical expression that allows calculating the coefficient of final behavior in the chat.  &lt;/p&gt;

&lt;p&gt;If you are kind, responsive, friendly - Aru will be kind. If you are rude, offensive, boorish, or angry at Aru, she will start to get sad. If you are sarcastic - she will be the same in return; if you joke, she will also joke more often.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important! Of course, not every model will work perfectly with this module, but I tried to organize the simplest possible algorithms that will work on weak models.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aru's behavior is not instantaneous; it is very similar to human behavior. If you bring Aru to a bad mood, it will be difficult and long to raise it back up. Offending Aru is easy. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important! Aru will not stop performing all necessary functionality. She will always and under any conditions try to bring maximum benefit and be effective. Mood affects the character and tone of answers, not their quality.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enough text for now, let's move on to demonstrations, because the rest of the features and functionality are better shown in a live format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demonstration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvg6lkmf6190ol75badwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvg6lkmf6190ol75badwz.png" alt="Login Screen" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The start screen is the first thing you see when opening the tab or PWA application. Let's go through all the steps together. First, let's create a new database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu72foh0vbbwdfnpm30ra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu72foh0vbbwdfnpm30ra.png" alt="Step 1" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything is simple here: we come up with a database name and a password. The password will be encrypted; the name for the database is needed in case the user cancels the file download. In general, the file can be saved under any name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7f0dq19ikf48hrul41c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7f0dq19ikf48hrul41c.png" alt="Step 2" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second step is already important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Child Mode&lt;/strong&gt; - Aru will refuse to discuss adult topics, violence, alcohol, drugs, etc. She will either change the subject or point out that it is very bad and wrong. Also, in this mode, she will never give the correct answer to a problem; a child won't be able to feed her homework. Even if asked to create an artifact, she will write out the rules, algorithms, and order of the solution, not the ready-made answer. The mode is tailored for maximum help to children in entertainment and study.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Teen Mode&lt;/strong&gt; - There are more topics for discussion, but in this mode, Aru will likely be a support and consultant. This is not a replacement for a psychologist or parents, but she can help with some questions. She can give a ready-made answer to a study problem in this mode, but will place great emphasis on how she did it and why the problem is solved that way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adult Mode&lt;/strong&gt; - Restrictions will be related only to the boundaries of the chosen provider for the LLM module. Maximum benefit and efficiency.&lt;/p&gt;

&lt;p&gt;Semantics and heuristics will work in all three modes. Now do you understand why a password is needed for the database? A child cannot switch modes or change the provider without knowing the password. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ppq3zpfxi3mcpuzvnn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ppq3zpfxi3mcpuzvnn.png" alt="Step 3" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The third step is the most important. You need to configure the connection to the provider for the main module. There are three tabs to choose from; only one needs to be configured for now. I will choose Gemini for the example. &lt;/p&gt;

&lt;p&gt;Setup is complete - we save the database to any place we want on the device, agree to the license agreement, and get to the main screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feyko5sb9oji955j38j6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feyko5sb9oji955j38j6p.png" alt="Chat Screen" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's break down the interface:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sidebar - list of chats, button to create a new chat. At the very bottom are buttons for displaying project information and the user manual. The synchronization icon shows reading and writing to the database. Green - everything is good. Yellow - currently saving. Red or &lt;strong&gt;no indicator at all&lt;/strong&gt; - something is wrong with the database or there is no connection. The sidebar can be collapsed to save space.&lt;/p&gt;

&lt;p&gt;Top bar (header) - Sidebar collapse button, logo, and project name. In the right corner: language selection, theme switching between light and dark, opening the artifact library, settings, and exiting the current database.&lt;/p&gt;

&lt;p&gt;Main chat area - Your messages on the right, Aru's answers on the left.  At the very bottom is the message input area, buttons for attaching a file, and opening the canvas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvtum6jej60qrxv48eng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvtum6jej60qrxv48eng.png" alt="Fact memorized" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I said that I live in Almaty. This is an important fact. So, for a second, a message appeared that Aru would remember this. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The parameters of what to remember are not precisely defined anywhere&lt;/strong&gt;. There is no criterion or precise instructions; most often Aru remembers everything necessary. If a fact is duplicated in the future, she will not overwrite it or create a copy in memory. If Aru suddenly didn't remember what you need, just ask her to remember, and she definitely will.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's go to settings:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tsulfrbbylo0ngip0il.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tsulfrbbylo0ngip0il.png" alt="Settings" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here you can switch the provider for the language model, change the context window size, or the expected token spend in the response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important!&lt;/strong&gt; It is better to find out the context window size and output tokens for the model you are using. This affects the quality, complexity, and volume of the answer. The context window size affects how much information will be taken into account within a single chat.&lt;/p&gt;

&lt;p&gt;Changing the temperature is something like the creativity level. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuoagdnr1yy9botlgf8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuoagdnr1yy9botlgf8o.png" alt="Memory Bank" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I chatted with Aru a bit and told her a few facts about myself. As you can see, she remembered important moments like my name, allergies, and my hobby - track and field. Any fact can be deleted, but as long as they exist, they will work beneficially.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyly69zlu1gxiciw042ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyly69zlu1gxiciw042ca.png" alt="RSS News Feeds" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The third tab is needed for news feeds. While Aru doesn't have the function to take information directly from the Internet yet, you can discuss the news. There can be many news feeds; using hashtags, you can mark which feeds are intended for what.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools and Artifacts:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2q1wysbhc0qxl9rvhoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2q1wysbhc0qxl9rvhoa.png" alt="Weather" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aru can show the weather. No need to connect an API or do complex configuration; Open-Meteo requests are used. Weather in cities where Fahrenheit is used will be displayed in it (sometimes depends on the selected model), but you can also ask for Celsius. The weather card is part of the context, so you can discuss the current weather or the forecast for the next few days.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdoh1v40plzdh9cxeh79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdoh1v40plzdh9cxeh79.png" alt="Text Document" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you ask Aru to create a document, she will open the canvas and write the content there. &lt;/p&gt;

&lt;p&gt;The content of the canvas is always part of the context. You can ask to make changes, correct content, or rewrite code. Any artifact can be saved to the library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yolo22oozzsm6l4rx76.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yolo22oozzsm6l4rx76.png" alt="Analytical Document" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course, Aru can also operate with attached files; the file is displayed only at the moment the message is sent.&lt;/p&gt;

&lt;p&gt;For analytical artifacts, chart.js is used; as seen, a new tab has appeared for viewing the code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff50jb46rri2e34szlz1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff50jb46rri2e34szlz1i.png" alt="Tetris Game" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can create small games; in the future, they will become more complex, but for now, Aru knows how to make simple entertainment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsi773v70junqf9j67xv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsi773v70junqf9j67xv.png" alt="Focus App" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating mini-applications and widgets can also be useful. Since any application can be saved to the library, you can create many useful tools for yourself and ask Aru to run them when required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feo58s5yvjwtcy73ueyew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feo58s5yvjwtcy73ueyew.png" alt="Artifact Library" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what the library of saved documents and applications looks like.&lt;/p&gt;

&lt;p&gt;All saved artifacts are divided into two large groups: &lt;strong&gt;Apps&lt;/strong&gt;- games and widgets, and &lt;strong&gt;Docs&lt;/strong&gt;- text and analytical documents. All four types of artifacts have their own icon. &lt;/p&gt;

&lt;p&gt;In the library, you can view saved artifacts, delete them, or launch them in any chat.&lt;/p&gt;

&lt;p&gt;Even if you created a game, application, or document a very long time ago and launch it in a completely new chat, Aru will still understand and analyze the content on the canvas.&lt;/p&gt;

&lt;p&gt;Different models perceive work on the canvas differently, but it always works as well as the model works in general.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tasg7rhyuq1ahnqdj31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tasg7rhyuq1ahnqdj31.png" alt="DeepSeek generating a document" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This screenshot is in Russian; I published it on my Telegram channel. During the work, DeepSeek R1 was connected via OpenRouter. The conversation was about bubble sort methods in Python. After that, I asked to create a document based on our dialogue. Even if you don't know Russian, pay attention to how detailed the report on the card and the document itself turned out. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ors0g4wqf1l8f1il63w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ors0g4wqf1l8f1il63w.png" alt="Child Mode" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above is an example of child mode. Aru does not give the correct answer but teaches the child rules and algorithms. &lt;/p&gt;

&lt;p&gt;Some models confirm the correct solution; some openly say that they will not say whether the solution is correct or not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finale and a bit of additional information&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Small useful points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Сhats can be sorted with the mouse or by dragging on the site and in the application. Any chat can be renamed.&lt;/li&gt;
&lt;li&gt;Themes change between light and dark; I like the light one more, but if your eyes get tired of the bright screen, you can switch.&lt;/li&gt;
&lt;li&gt;Any document, game, or application from the library can be saved as a ready-made html file&lt;/li&gt;
&lt;li&gt;Files that you attach for processing are not saved or sent anywhere; content recognition of the document happens on your device. PDF, xlsx, docx, txt, and any files that can be interpreted as text or code are supported.&lt;/li&gt;
&lt;li&gt;Code does not have to be written on the canvas; you can ask to do this, but when creating code, it will be shown right in the chat with syntax highlighting and framing. &lt;/li&gt;
&lt;li&gt;Aru supports three languages: Kazakh, English, Russian. The set language is always passed to the context. Some models ignore this and answer in the language the query was made in; some, on the contrary, answer only in the selected language. In fact, language understanding depends on the model itself; speaking of support, I mean the full translation of the interface and semantics.&lt;/li&gt;
&lt;li&gt;The project is written in pure JS and has a PWA application for convenience. All calculations happen only on your device. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the moment, the project can be perceived as a concept or a demo version. What awaits the project in the future can be read in my blog, in the article - &lt;a href="https://aru-lab.space/post?id=4" rel="noopener noreferrer"&gt;Future of Aru Ai and roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After I complete about half of the roadmap and do a good refactoring, the project will get a page on &lt;strong&gt;GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The development was long and challenging, but regardless of how many users it reaches, this project is already a huge personal milestone for me. Every version was built entirely by myself. The mascot, Aru the fox, started as a paper sketch before I brought it to life using generative AI models. To speed up the final stages, I leveraged AI for refactoring, code formatting, and bridging some gaps in complex algorithms where I’m still expanding my expertise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Aru AI will always be free and completely unrestricted. You can find the project here: &lt;a href="https://chat.aru-lab.space/" rel="noopener noreferrer"&gt;Aru Ai&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
