Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nomihq/nomi
Versatile and privacy-focused AI runtime.
https://github.com/nomihq/nomi
action ai automation data devtools llm multimodal privacy productivity realtime reinforcement-learning security taskrunner voice
Last synced: 7 days ago
JSON representation
Versatile and privacy-focused AI runtime.
- Host: GitHub
- URL: https://github.com/nomihq/nomi
- Owner: nomihq
- License: mit
- Created: 2024-09-30T20:51:26.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-03T13:22:33.000Z (11 days ago)
- Last Synced: 2024-11-03T14:20:45.761Z (11 days ago)
- Topics: action, ai, automation, data, devtools, llm, multimodal, privacy, productivity, realtime, reinforcement-learning, security, taskrunner, voice
- Language: Go
- Homepage:
- Size: 2.41 MB
- Stars: 42
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Nomi
Nomi enable people to use computer more simply.
You can ask your computer what you want it to do, and it will do it for you. Itβs that simple.We believe this will become the new norm and simplify peopleβs lives, as itβs already simplifying ours.
To support our work, feel free to star the repo and reach us.Thank you,
Swan and Ethan.> **Note:** This project is under active development and isn't ready for full use yet. We're working hard to make it stable and reliable.
>
> We welcome any feedback, suggestions, or contributions. Thank you for trying Nomi!## π₯ Demo
https://github.com/user-attachments/assets/22586363-37f6-4168-8b4e-f8daecfcde15- [β¨ Introduction](#nomi)
- [π Features](#-features)
- [π€ Why Nomi?](#-why-nomi)
- [πΌ Use Cases](#-use-cases)
- [π οΈ Get Started](#%EF%B8%8F-get-started)
- [π» Linux & MacOS](#-linux--macos)
- [π Windows](#-windows)
- [π§ Compile from Source](#-compile-from-source)
- [π Enable Providers](#-enable-providers)
- [π Ollama](#-ollama)
- [π€ OpenAI](#-openai)
- [π OpenRouter](#-openrouter)
- [πΊοΈ Roadmap](#%EF%B8%8F-roadmap)
- [π License](#-license)
- [π Acknowledgments](#-acknowledgments)### π Features
- **Versatile AI Runtime:** Lightweight and highly configurable for seamless integration.
- **Privacy-Focused:** Maintains local archives of your data, ensuring you stay in control.
- **Multi-Modal Interface:** Accepts text and voice inputs (image support coming soon).
- **Provider Integration:** Connects with AI services like OpenAI, OpenRouter, and Ollama.
- **Conversation Management:** Create, load, and organize conversations.
- **Prompt Engineering:** Add, edit, and manage system prompts.
- **Code Interpreter:** Run code on the fly within Nomi.
- **Voice Interaction:** Enable real-time voice interactions.
- **Terminal Experience:** Enjoy markdown-formatted output and easy command-line usage.Explore additional features and use cases in the [Roadmap](#roadmap) section.
### π€ Why Nomi?
In a world where data ownership is challenging and AI is changing how we communicate, Nomi acts as a bridge between your private data and AI capabilities. It supports both local and external providers, including OpenAI, OpenRouter, and Ollama.
While external providers involve sending data externally, Nomi also works with local providers like Ollama, ensuring you retain control over your data. Our aim is to democratize AI by making it more accessible and user-friendly for everyone.
**Looking Ahead**
We're building the Nomi runtime quickly, but our journey doesn't stop there. Soon, we'll expand Nomi into a full AI platform designed to bridge the gap for non-technical users. Our goal is to make advanced AI accessible and easy to use for everyone, enabling you to benefit from AI without the need for technical expertise.
### πΌ Use Cases
- **Personal AI Assistant**
- **Voice-Controlled AI Interaction**
- **Workflows and Automation**
- **Privacy-Focused Data Analysis**And many more! With Nomi's flexible and extensible architecture, you can create your own use cases.
List your installed use cases using the `nomi usecases list` or `nomi u list` command.
- [Auto Commit Message](https://github.com/nullswan/nomi/tree/main/usecases/commit)
- [Browser Automation](https://github.com/nullswan/nomi/tree/main/usecases/browser)
- [Copywriting & Brainstorming Assistant](https://github.com/nullswan/nomi/tree/main/usecases/copywriter)
- **Software Architecture Assistant** β *Coming soon!*## π οΈ Get Started
### Supported Platforms
- **Linux**: x86_64, ARM64, i686
- **MacOS**: ARM64
- **Windows**: x86_64, i686### π» Linux & MacOS
```shell
curl -sSL https://raw.githubusercontent.com/nullswan/nomi/refs/heads/main/install.sh | bash
```### π Windows
> **Note:** Windows support is experimental. Please report any issues you encounter.
```shell
curl -sSL https://raw.githubusercontent.com/nullswan/nomi/refs/heads/main/install.bat | cmd
```### π§ Compile from Source
```shell
git clone https://github.com/nullswan/nomi.git
cd nomi
./hack/install-deps.sh
make build
```## π Enable Providers
We recommend using Ollama is you are concerned about privacy. OpenAI if you are not concerned about privacy and pricing but rather want high performance and have decent internet connection. OpenRouter if you want to switch between providers easily and maintain an efficiency balance.
### π Ollama
You can install Ollama from [https://ollama.com/download](https://ollama.com/download) or it will be automatically installed with Nomi.
For now, we support text LLM through Ollama. Voice and other features are coming soon.
### π€ OpenAI
Every feature supports OpenAI. You can enable it by setting the `OPENAI_API_KEY` environment variable and launch Nomi.
You can create an API key from the [OpenAI dashboard](https://platform.openai.com/api-keys).
```shell
export OPENAI_API_KEY="your-api-key"
```### π OpenRouter
OpenRouter is a multi provider API. We recommend using it for ease of provider switching.
For now, we support text LLM through OpenRouter. Voice and other features are coming soon.
You can enable it by setting the `OPENROUTER_API_KEY` environment variable and launch Nomi.
You can create an API key from the [OpenRouter dashboard](https://openrouter.ai/settings/keys).
```shell
export OPENROUTER_API_KEY="your-api-key"
```## πΊοΈ Roadmap
These features are planned for future updates. They may be partially or not implemented yet.
- **Full AI Platform Development**
- User-friendly GUI
- Intuitive interfaces for non-technical users
- Expanded use case library
- **CLI Enhancements**
- Auto-update (Update command is already available)
- Editor mode
- Sound on completion
- **Engine Improvements**
- Metrics tracking
- Daemon mode
- HTTP Interface
- Scheduled tasks
- **Provider Support**
- Local Whisper
- Vision Support
- Anthropic Support
- Transcript memory
- **Actions**
- Easy transcription command
- Presets/Projects
- Memory tools for scripted decisions
- Memory tools for general decisions
- **Conversation Features**
- Markdown backup
- New conversation types
- **Memory Enhancements**
- Integrations
- Use of embeddings API
- **Interpreter Updates**
- Ask for feedback
- Machine safety
- **File Management**
- Real-time file management## π License
This project is licensed under the MIT License.
> See the [LICENSE](LICENSE) file for details. We believe in the power and fairness of open-source software.
## π Acknowledgments
Thank you to all the libraries and tools used in this project:
- [Bubbletea](https://github.com/charmbracelet/bubbletea)
- [Ollama](https://github.com/ollama/ollama)
- [SQLite/SQLC](https://modernc.org/sqlite), [Golang-Migrate](https://github.com/golang-migrate/migrate/)
- [PortAudio](https://github.com/gordonklaus/portaudio)
- [go-openai](https://github.com/sashabaranov/go-openai)
- [Gohook](https://github.com/robotn/gohook)
- [Cobra](https://github.com/spf13/cobra)Big thanks to the open-source community and every maintainers for making this project possible.