====================
uncloseai.
====================
A Public Domain AI Assistant for the Open Web
=============================================
.. image:: https://img.shields.io/badge/license-Public%20Domain-blue.svg
:target: https://creativecommons.org/publicdomain/zero/1.0/
:alt: Public Domain
.. image:: https://img.shields.io/badge/AI-Hermes%203-green.svg
:target: https://nousresearch.com/hermes3/
:alt: Powered by Hermes 3
Overview
--------
uncloseai. is a free, open-source AI assistant that can be embedded into any webpage with a single line of code. It provides users with an intelligent assistant powered by Hermes 3 LLM from Nous Research, offering features like page reading, translation, text-to-speech, and contextual Q&A.
**Key Features:**
* **Page-Aware AI Assistant** - Understands and discusses the content of the current webpage
* **Multi-Language Support** - Supports 19 languages with full UI translation
* **Text-to-Speech** - Convert any text or webpage content to natural speech
* **Smart Translation** - Translate entire webpages while preserving formatting and functionality
* **File Upload Support** - Process PDFs, text files, and documents
* **Privacy-First** - No tracking, no analytics, no user data collection
* **Public Domain** - Completely free to use, modify, and distribute
Quick Start
-----------
Add this single line to any webpage:
.. code-block:: html
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
That's it! Users will see a small robot icon (🤖) in the bottom-right corner that opens the AI assistant.
Repository
----------
The complete source code is available at: https://git.unturf.com/engineering/unturf/uncloseai.com
Project Structure
-----------------
.. code-block::
ai.unturf.com/
├── index.html # Main landing page
├── demo.html # Interactive demo page
├── uncloseai.js # Main entry point
├── src/
│ ├── chat.js # Core chat functionality
│ ├── config.js # Configuration and endpoints
│ ├── content.js # Content extraction utilities
│ ├── language-detection.js # Automatic language detection
│ ├── models.js # AI model management
│ ├── page-reader.js # Page reading functionality
│ ├── storage.js # LocalStorage management
│ ├── token_estimator.js # Token counting utilities
│ ├── translation.js # Translation system
│ ├── translate-modal.js # Translation UI
│ ├── tts.js # Text-to-speech system
│ ├── ui-themes.js # Theme management
│ ├── ui-translations.js # UI translation system
│ ├── uncloseai-embed-modal.js # Main modal UI
│ └── languages/ # Translation files
│ ├── en.js, es.js, zh.js, hi.js, fr.js, ar.js, bn.js,
│ ├── ru.js, pt.js, ur.js, id.js, de.js, ja.js, sw.js,
│ ├── mr.js, te.js, tr.js, zh-tw.js, ko.js
└── tests/ # Jest test suite
Core Technologies
-----------------
* **Frontend**: Vanilla JavaScript ES6+ modules
* **UI Framework**: PicoCSS (optional) with custom theming support
* **AI Model**: Hermes 3 Llama 3.1 8B (via VLLM endpoints)
* **Testing**: Jest with JSDOM
* **Code Quality**: Biome for formatting and linting
* **Markdown**: Marked.js for rendering
* **Syntax Highlighting**: Highlight.js
* **TTS**: OpenAI-compatible speech API
Key Features Explained
----------------------
Page-Aware Intelligence
~~~~~~~~~~~~~~~~~~~~~~~
The AI assistant automatically extracts and understands the content of the current webpage, allowing users to ask questions about what they're reading. It maintains context throughout the conversation.
Multi-Language Interface
~~~~~~~~~~~~~~~~~~~~~~~~
The entire UI is available in 19 languages:
* English, Spanish, Chinese (Simplified & Traditional), Hindi, French
* Arabic, Bengali, Russian, Portuguese, Urdu, Indonesian
* German, Japanese, Swahili, Marathi, Telugu, Turkish, Korean
Language is auto-detected from the page content and can be manually changed.
Text-to-Speech Capabilities
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Two TTS modes are available:
1. **Direct TTS**: Converts text directly to speech
2. **Hermes-Enhanced TTS**: Uses AI to improve pronunciation and clarity
Smart Translation
~~~~~~~~~~~~~~~~~
The translation feature:
* Preserves HTML structure and formatting
* Maintains code blocks and technical content
* Opens translated pages in new tabs with full AI functionality
* Supports both full-page and custom text translation
Development Setup
-----------------
.. code-block:: bash
# Clone the repository
git clone https://git.unturf.com/engineering/unturf/uncloseai.com.git
cd uncloseai.com
# Install dependencies
npm install
# Run tests
npm test
# Format code
npx biome format --write .
# Lint code
npx biome check .
# Run both (recommended before commits)
npx biome format --write . && npx biome check .
Architecture
------------
uncloseai. uses a modular architecture:
1. **Entry Point** (``uncloseai.js``): Detects environment and initializes
2. **Modal System** (``uncloseai-embed-modal.js``): Main UI container
3. **Feature Modules**: Separate modules for chat, TTS, translation
4. **Storage Layer** (``storage.js``): Handles persistent conversation history
5. **Model Management** (``models.js``): Dynamic endpoint selection
6. **Theme System** (``ui-themes.js``): Adapts to page styling
API Endpoints
-------------
uncloseai. connects to these public endpoints:
* **Chat**: ``https://hermes.ai.unturf.com/v1`` (primary)
* **Chat**: ``https://hermes2.ai.unturf.com/v1`` (fallback)
* **TTS**: ``https://speech.ai.unturf.com/v1/audio/speech``
* **File Processing**: ``https://megaparce.ai.unturf.com/v1/file``
All endpoints are OpenAI-compatible.
Customization
-------------
Website owners can customize the assistant:
.. code-block:: javascript
// Set custom system message
window.UNCLOSEAI_SYSTEM_MESSAGE_APPEND = "You are helping users on an e-commerce site...";
// Disable custom styling (use pure PicoCSS)
window.UNCLOSEAI_CUSTOM_STYLING = false;
// Control initialization
window.UNCLOSEAI_SKIP_INIT = true;
Browser Support
---------------
* Chrome/Edge 80+
* Firefox 75+
* Safari 14+
* Mobile browsers with ES6 module support
Performance
-----------
* Initial load: ~50KB (gzipped)
* Lazy loads features as needed
* Caches model lists and translations
* Efficient token counting with upstream API
Privacy & Security
------------------
* **No tracking**: No analytics, cookies, or user tracking
* **No data storage**: Conversations stored only in browser localStorage
* **No authentication**: No user accounts or sign-ups required
* **Public endpoints**: All API endpoints are publicly accessible
* **Content Security**: Sanitizes HTML, escapes code blocks
Contributing
------------
This project is in the public domain. You're free to:
* Use it commercially or non-commercially
* Modify it without attribution
* Distribute it freely
* Create derivative works
We welcome contributions! Feel free to submit issues or pull requests.
Testing
-------
.. code-block:: bash
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with coverage
npm test -- --coverage
The test suite covers:
* Modal creation and interaction
* Translation functionality
* TTS processing
* Storage operations
* UI theme detection
* Language detection
Production Deployment
---------------------
1. Serve files with proper MIME types
2. Enable CORS for module scripts
3. Use HTTPS (required for some features)
4. Set cache headers appropriately
Troubleshooting
---------------
**Modal not appearing:**
* Check browser console for errors
* Ensure JavaScript modules are supported
* Verify CORS headers are set correctly
**Translation/TTS not working:**
* Check network tab for API errors
* Ensure endpoints are accessible
* Verify API key is set (if using custom endpoints)
**Styling issues:**
* Set ``UNCLOSEAI_CUSTOM_STYLING = false`` for pure PicoCSS
* Check for CSS conflicts with page styles
License
-------
This project is released into the public domain under CC0 1.0 Universal.
See: https://creativecommons.org/publicdomain/zero/1.0/
About
-----
uncloseai. is part of the unturf. project, creating open tools for an open web. It's built by fxhp and the carnival hackers who believe AI should be accessible to everyone.
**Why "uncloseai."?**
The name represents keeping AI "unclosed" - open, accessible, and free for all to use and modify.
Links
-----
* **Homepage**: https://uncloseai.com
* **Repository**: https://git.unturf.com/engineering/unturf/uncloseai.com
* **Demo**: https://uncloseai.com/demo
* **Hermes Model**: https://nousresearch.com/hermes3/
Acknowledgments
---------------
* Nous Research for the amazing Hermes 3 model
* The open-source community for the libraries we build upon
* Everyone who believes in an open, accessible internet
Remember: This is your AI assistant. Make it yours!