{"id":42185019,"url":"https://github.com/piratheon/ori","last_synced_at":"2026-01-26T22:24:47.794Z","repository":{"id":312420069,"uuid":"1047447448","full_name":"piratheon/ori","owner":"piratheon","description":"OpenRouter Interactive Assistant for Unix / Unix-like TUI Environments","archived":false,"fork":false,"pushed_at":"2026-01-18T18:11:58.000Z","size":669,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-18T23:24:13.121Z","etag":null,"topics":["ai","assistant","cpp","linux","shell","terminal","tui","uncensored","unix"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/piratheon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-30T12:47:39.000Z","updated_at":"2026-01-18T17:51:38.000Z","dependencies_parsed_at":"2025-08-30T14:36:27.147Z","dependency_job_id":"ea92ccbf-1a06-4f46-bfb4-3b17b0d24bdc","html_url":"https://github.com/piratheon/ori","commit_stats":null,"previous_names":["chafiq-dev/ori","piratheon/ori"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/piratheon/ori","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piratheon%2Fori","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piratheon%2Fori/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piratheon%2Fori/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piratheon%2Fori/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piratheon","download_url":"https://codeload.github.com/piratheon/ori/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piratheon%2Fori/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","assistant","cpp","linux","shell","terminal","tui","uncensored","unix"],"created_at":"2026-01-26T22:24:47.180Z","updated_at":"2026-01-26T22:24:47.787Z","avatar_url":"https://github.com/piratheon.png","language":"C++","readme":"```\n    ███████    ███████████   █████            ███████████ █████  █████ █████\n  ███▒▒▒▒▒███ ▒▒███▒▒▒▒▒███ ▒▒███            ▒█▒▒▒███▒▒▒█▒▒███  ▒▒███ ▒▒███ \n ███     ▒▒███ ▒███    ▒███  ▒███            ▒   ▒███  ▒  ▒███   ▒███  ▒███ \n▒███      ▒███ ▒██████████   ▒███  ██████████    ▒███     ▒███   ▒███  ▒███ \n▒███      ▒███ ▒███▒▒▒▒▒███  ▒███ ▒▒▒▒▒▒▒▒▒▒     ▒███     ▒███   ▒███  ▒███ \n▒▒███     ███  ▒███    ▒███  ▒███                ▒███     ▒███   ▒███  ▒███ \n ▒▒▒███████▒   █████   █████ █████               █████    ▒▒████████   █████\n   ▒▒▒▒▒▒▒    ▒▒▒▒▒   ▒▒▒▒▒ ▒▒▒▒▒               ▒▒▒▒▒      ▒▒▒▒▒▒▒▒   ▒▒▒▒▒\n```\n\nA terminal‑first AI assistant for Linux with both a Text User Interface (TUI) and a web-based Graphical User Interface (GUI). Integrates with OpenRouter (Groq and G4F will be supported soon) to access multiple LLMs. Built for developers, power users, and sysadmins who want to run AI workflows from the terminal or the browser.\n\n## Quick links\n- GitHub: https://github.com/piratheon/ori\n- AUR: https://aur.archlinux.org/packages/ori\n- AUR-GitLab: https://gitlab.archlinux.org/piratheon/ori\n- OpenRouter keys: https://openrouter.ai/settings/keys\n\n## Features\n\n### Core\n- **OpenRouter integration:** Connect to multiple AI models.\n- **Auto-retry:** Automatically retries on transient network errors and rate limiting.\n- **Plugin system \u0026 Orpm:** Extendable architecture with package management.\n- **Secure API key handling:** API key stored at `~/.config/ori/key`.\n- **Automatic update checks** on startup.\n- **Persistent config:** `~/.config/ori/config.json`.\n\n### TUI (Terminal)\n- Interactive conversation with session context.\n- Slash commands: `/help`, `/clear`, `/quit`, `/cat`, `/exec`.\n- Command execution log with `Ctrl+F` toggle.\n- Agentic command execution with confirmation.\n- Multiline input and editor-friendly UX.\n- Keybindings:\n  - `Ctrl+F`: Toggle command execution log.\n  - `Ctrl+C` / `ESC`: Cancel running command or clear prompt.\n\n### GUI (Browser)\n- Web-based chat UI with chat history and model selector.\n- Code canvas for snippets and inline command execution.\n- Runs a local web server (default port 8080).\n\n\n## Prerequisites\n- C++14-compatible compiler (GCC 5.0+ or Clang 3.4+)\n- CMake 3.10+\n- OpenRouter API key\n\n### External libraries \n\n| Distribution | Packages | Install command |\n|---|---:|---|\n| Debian / Ubuntu | libjsoncpp-dev, libcurl4-openssl-dev | sudo apt-get update \u0026\u0026 sudo apt-get install -y libjsoncpp-dev libcurl4-openssl-dev |\n| Fedora | jsoncpp-devel, libcurl-devel | sudo dnf install -y jsoncpp-devel libcurl-devel |\n| Arch Linux | jsoncpp, curl (with libcurl) | sudo pacman -Syu --noconfirm jsoncpp curl \n\n## Install\n\n### Build from source\n1. Clone:\n   ```\n   git clone https://github.com/piratheon/ori.git\n   cd ori\n   ```\n2. Build (automated):\n   ```\n   ./build.sh\n   ```\n   or manual:\n   ```\n   mkdir build \u0026\u0026 cd build\n   cmake ..\n   make\n   ```\n3. Executable will be at `build/ori`.\n\n### Arch (AUR)\n- Install with an AUR helper:\n  ```\n  yay -S aur/ori\n  ```\n\n## Configuration\n\n- Default config: `~/.config/ori/config.json`\n- API key file: `~/.config/ori/key` (or set `OPENROUTER_API_KEY` env var)\n- Common config keys: `port`, `model`, `no_banner`, `no_clear`\n\nExamples:\n- Set a config value:\n  ```\n  ./build/ori --config set model qwen/qwen3-coder:free\n  ```\n- Load a JSON config:\n  ```\n  ./build/ori --config load /path/to/settings.json\n  ```\n - Print a config value or all values:\n   ```\n   ./build/ori --config cat model\n   ./build/ori --config cat all\n   ```\n\n## Usage\n\n### TUI (interactive)\nStart the interactive assistant:\n```\n./build/ori\n```\nUseful flags:\n- `--help` — show CLI help\n- `--version` — print version\n- `/help`, `/clear`, `/quit`, `/cat`, `/exec` — available inside TUI\n\n### Non-interactive\nRun a one-off prompt:\n```\n./build/ori -y \"what is my kernel version?\"\n```\n\n### GUI\nStart the web UI:\n```\n./build/ori --gui\n```\nDefault: http://localhost:8080 (override with `--port`)\n\n### ASCII banner (optional)\nDisable with `--no-banner`.\n\n## Development\n\nProject layout:\n```\n.\n├── build.sh               # build script\n├── CMakeLists.txt   # CMake build file\n├── install.sh             # install script\n├── aur                      # AUR  files\n├── build                   # build output\n├── include               # header files\n│   └── external       # external library headers\n├── src                      # source files\n│   ├── core             # core logic\n│   └──  gui             # GUI server code\n└── www                # GUI assets\n    ├── css\n    ├── lib\n    └── webfonts\n```\n\nBuild \u0026 iterate locally\n\n## Contributing\nContributions, issues, and PRs welcome. Open an issue to discuss larger changes before submitting PRs. Follow standard fork → branch → PR workflow.\n\n## Changelog (1.x.x)\n- 1.1.4 — Remove old plugin manager and files; refactor config, GUI, edits, backup/restore, and streamline main/CMakelists.\n- 1.1.3 — Fix Ctrl+C doesn't work on WebUI mode, and add a new debug option, also improve scripts to detect current distro and install deps for it.\n- 1.1.2 — New cat command to print current configurations values.\n- 1.1.1 — New slash commands, command log, keybindings, auto-retry, and code cleanup.\n- 1.1.0 — Loading spinner, persistent config, new CLI flags.\n- 1.0.0 — Add GUI mode.\n\n## License\nGNU GPL-3.0 — see [LICENSE](LICENSE)  file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiratheon%2Fori","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiratheon%2Fori","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiratheon%2Fori/lists"}