{"id":34605884,"url":"https://github.com/johnjallday/ori-agent","last_synced_at":"2026-05-13T02:15:04.955Z","repository":{"id":310204103,"uuid":"1037765191","full_name":"johnjallday/ori-agent","owner":"johnjallday","description":"A local-first agent manager for running and orchestrating multiple AI agents.","archived":false,"fork":false,"pushed_at":"2026-05-09T11:52:54.000Z","size":758463,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-09T13:29:46.180Z","etag":null,"topics":["ai-agent","ai-assistant","aiagent","aiagents","aiagentsframework","go-ai","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnjallday.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-14T04:59:11.000Z","updated_at":"2026-05-09T11:45:51.000Z","dependencies_parsed_at":"2025-09-09T04:36:03.296Z","dependency_job_id":"4c794f05-f609-4977-b7c7-a07c334766bc","html_url":"https://github.com/johnjallday/ori-agent","commit_stats":null,"previous_names":["johnjallday/dolphin-agent","johnjallday/ori-agent"],"tags_count":65,"template":false,"template_full_name":null,"purl":"pkg:github/johnjallday/ori-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjallday%2Fori-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjallday%2Fori-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjallday%2Fori-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjallday%2Fori-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnjallday","download_url":"https://codeload.github.com/johnjallday/ori-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjallday%2Fori-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32964522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T23:30:32.555Z","status":"online","status_checked_at":"2026-05-13T02:00:07.132Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-agent","ai-assistant","aiagent","aiagents","aiagentsframework","go-ai","golang"],"created_at":"2025-12-24T13:45:07.399Z","updated_at":"2026-05-13T02:15:04.949Z","avatar_url":"https://github.com/johnjallday.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"assets/logo-readme.svg\" alt=\"Ori Agent logo\" width=\"36\" height=\"36\" style=\"vertical-align: text-bottom;\" /\u003e Ori Agent\n\n\u003c!-- AUTO:VERSION --\u003e\n![Version](https://img.shields.io/badge/Version-v0.0.65-blue)\n\u003c!-- AUTO:VERSION_END --\u003e\n\u003c!-- AUTO:GO_VERSION --\u003e\n![Go](https://img.shields.io/badge/Go-1.25.10-00add8)\n\u003c!-- AUTO:GO_VERSION_END --\u003e\n\n**Ori Agent** is a local-first AI agent management platform. Spin up multiple named agents, each with its own model, prompt, and tool loadout, and run them through a browser UI or API. Agents use MCP (Model Context Protocol) servers and Skills for tool capabilities—everything stays on your machine unless you opt into cloud LLMs.\n\nIf you want to keep your information local, this is a way to go.\n\nI don't plan on promoting this until Q426 or Q127 (This date may change).\nIf you are here early, then welcome! Hope you enjoy this. \nLet me know, how this is.\n\n## Open-Core Boundary\n\nOri Agent core is open-source and can be used commercially. Web3/token and marketplace payment services are not included in this repo and are operated privately.\n\nOpen-source core includes:\n- Agent runtime, orchestration, MCP integration, and skills system\n- UI, settings, and workspace management\n- Web3 wallet UI for local metadata only (no on-chain operations)\n\nPrivate services (not included):\n- Ori Token issuance, daily credits, cashout, and anti-cheat\n- Marketplace payments and Ori-specific monetization flows\n\nDetails: `docs/architecture/open-core-boundaries.md`\n\nAdditional terms:\n- `ORI_SERVICES.md` (private services access)\n- `TRADEMARKS.md` (branding and trademark use)\n\n\n## 🤖 Supported Providers\n\nOri Agent supports multiple AI providers, giving you flexibility in choosing your preferred AI model:\n\n### Cloud Providers\n- **OpenAI**\n  - Requires: `OPENAI_API_KEY`\n  - Best for: Production use, latest models, reliable performance\n\n- **Anthropic Claude**\n  - Requires: `ANTHROPIC_API_KEY`\n  - Best for: Long context windows, detailed reasoning\n\n### Local Providers\n- **Ollama** - Run models locally on your machine\n  - Requires: Ollama installed and running (http://localhost:11434)\n  - Best for: Privacy, offline use, cost savings\n  - Supports: Llama 3, Mistral, Phi-3, and other Ollama models\n\n## 🚀 Quick Start\n### For Mac Users\nDownload and install the DMG from the latest release:\n- https://github.com/johnjallday/ori-agent/releases/latest\n\nOpen the DMG and drag `OriAgent.app` to Applications.\n\n\n### For Devs\n\n### Prerequisites\n- Go 1.25 or later\n- An API key from one of the supported providers (OpenAI, Claude) **OR** Ollama installed locally\n\n### Installation\n\n#### Option 1: macOS DMG Installer (Recommended for macOS)\n\n1. **Download the DMG** from the [latest release](https://github.com/johnjallday/ori-agent/releases/latest)\n\n2. **Open the DMG** and drag `OriAgent.app` to Applications\n\n3. **Handle macOS Security Warning**\n\n   When first opening OriAgent, macOS may show one of these warnings:\n   - *\"OriAgent is damaged and can't be opened\"* (most common)\n   - *\"Apple cannot verify OriAgent is free of malware\"*\n\n   **This is normal for open-source apps not notarized by Apple.** To install safely:\n\n   **Method 1 - Right-Click (Easiest):**\n   1. Drag `OriAgent.app` to Applications folder\n   2. Right-click (or Control+click) `OriAgent.app` in Applications\n   3. Select \"Open\" from the menu\n   4. Click \"Open\" in the dialog that appears\n\n   **Method 2 - Terminal Command:**\n   ```bash\n   xattr -rc /Applications/OriAgent.app\n   open /Applications/OriAgent.app\n   ```\n\n   After the first launch, you can open normally by double-clicking.\n\n4. **Configure your API key** through the Settings panel in the app, or export it:\n   ```bash\n   export OPENAI_API_KEY=\"your-api-key\"\n   ```\n\n5. **Access the interface** at `http://localhost:8765`\n\n#### Option 2: Build from Source\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/johnjallday/ori-agent.git\n   cd ori-agent\n   ```\n\n2. **Install dependencies**\n   ```bash\n   go mod tidy\n   ```\n\n3. **Set up your API key** (choose one)\n   ```bash\n   # For OpenAI\n   export OPENAI_API_KEY=\"your-openai-api-key\"\n\n   # For Claude\n   export ANTHROPIC_API_KEY=\"your-anthropic-api-key\"\n\n   # For Ollama - just make sure it's running\n   # No API key needed!\n   ```\n\n4. **Build and run**\n   ```bash\n   ./scripts/build.sh\n   ./bin/ori-agent\n   ```\n\n5. **Open your browser**\n   ```\n   http://localhost:8765\n   ```\n\n#### Option 3: Linux Package Installer\n\n1. **Download the package** from the [latest release](https://github.com/johnjallday/ori-agent/releases/latest):\n\n   **Debian/Ubuntu:**\n   ```bash\n   # Download .deb file\n   wget https://github.com/johnjallday/ori-agent/releases/latest/download/ori-agent_{version}_amd64.deb\n\n   # Install\n   sudo dpkg -i ori-agent_{version}_amd64.deb\n   ```\n\n   **Red Hat/Fedora/CentOS:**\n   ```bash\n   # Download .rpm file\n   wget https://github.com/johnjallday/ori-agent/releases/latest/download/ori-agent_{version}_amd64.rpm\n\n   # Install\n   sudo rpm -i ori-agent_{version}_amd64.rpm\n   ```\n\n2. **Configure API key** via environment variable or `/etc/ori-agent/settings.json`\n\n3. **Start the service**:\n   ```bash\n   sudo systemctl start ori-agent\n   sudo systemctl enable ori-agent  # Auto-start on boot\n   ```\n\n4. **Access the interface** at `http://localhost:8765`\n\n#### Option 4: Windows Archive\n\n1. **Download** `ori-agent_{version}_windows_x86_64.tar.gz` from the [latest release](https://github.com/johnjallday/ori-agent/releases/latest)\n\n2. **Extract** the archive to a folder (e.g., `C:\\Program Files\\OriAgent`)\n\n3. **Set API key** via Environment Variables or create `settings.json` in the same folder\n\n4. **Run** `ori-agent.exe`\n\n5. **Access the interface** at `http://localhost:8765`\n\n## 🧩 Skills\n\nOri Agent supports per-agent Skills compatible with the Claude/OpenAI skill format.\n\n### Skill Locations\n\n- `agents/\u003cagent_id\u003e/skills` (agent-scoped)\n- `agents/skills` (repo-scoped)\n- `.agents/skills` (compatibility; lowest priority)\n\nEach Skill is a directory containing `SKILL.md` with YAML frontmatter (`name`, `description`) and a prompt body. Optional `agents/openai.yaml` provides UI metadata and dependency hints.\n\n### Naming Rules\n\n- `name`: lowercase letters, numbers, hyphens only; max 64 chars; must not include `anthropic` or `claude`; no XML tags.\n- `description`: required; max 1024 chars; no XML tags.\n\n## 💬 Session Management\n\nOri Agent includes a comprehensive session management system for organizing and managing your chat conversations.\n\n### Features\n\n- **Persistent Chat Sessions**: All conversations are automatically saved and can be resumed anytime\n- **Folder Organization**: Group related sessions into folders for better organization\n- **Multi-Tab Support**: Work with multiple sessions simultaneously in separate browser tabs\n- **Full-Text Search**: Quickly find messages across all your sessions\n- **Tagging System**: Add tags to sessions for easy categorization and filtering\n- **Automatic Cleanup**: Optionally clean up old, inactive sessions to manage storage\n\n### Session Storage\n\nSessions are stored in a SQLite database with an in-memory LRU cache for fast access:\n\n- **Cache**: Recently accessed sessions are kept in memory for instant retrieval\n- **Database**: All sessions are persisted to SQLite with full-text search support\n- **Hybrid Architecture**: Automatic cache warming and write-through for optimal performance\n\n### Storage Management\n\nConfigure session storage limits via the Settings page or `settings.json`:\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `session_cleanup_enabled` | `true` | Enable automatic cleanup of old sessions |\n| `session_cleanup_days` | `30` | Days of inactivity before a session is eligible for cleanup |\n| `session_max_count` | `1000` | Maximum number of sessions to keep (0 = unlimited) |\n\n**Via Settings Page:**\n1. Navigate to Settings → Session Management\n2. Configure cleanup options and limits\n3. View current storage statistics\n4. Run manual cleanup if needed\n\n**Via settings.json:**\n```json\n{\n  \"session_cleanup_enabled\": true,\n  \"session_cleanup_days\": 30,\n  \"session_max_count\": 1000\n}\n```\n\n### Session API Endpoints\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/api/sessions` | GET | List all sessions (with pagination, filtering) |\n| `/api/sessions` | POST | Create a new session |\n| `/api/sessions/{id}` | GET | Get a specific session |\n| `/api/sessions/{id}` | PUT | Update session metadata |\n| `/api/sessions/{id}` | DELETE | Delete a session |\n| `/api/sessions/{id}/messages` | GET | Get messages for a session |\n| `/api/sessions/{id}/messages` | POST | Add a message to a session |\n| `/api/sessions/search` | GET | Search across all sessions |\n| `/api/sessions/storage/stats` | GET | Get storage statistics |\n| `/api/sessions/cleanup` | POST | Trigger manual cleanup |\n\n## 🔐 Private Vault\n\nOri Agent now includes a local encrypted vault for sensitive records that should not live in normal session history.\n\n### What Goes In The Vault\n\n- Connector secrets and API credentials\n- Saved email snippets or private personal notes\n- Sensitive identifiers or structured personal records\n\n### What Does Not Go In The Vault\n\n- Normal chat/session history by default\n- Theme, onboarding, or general preference settings\n- Global search indexes\n\n### Storage Model\n\n- New API-key writes prefer the configured secure secret store instead of persisting raw values in `settings.json`\n- Existing installs still read legacy keys from `settings.json` for backward compatibility\n- Vault records are encrypted with a per-install data encryption key stored in the secure secret store\n- Free-form vault tags are encrypted at rest and are excluded from standard session search\n\n### Platform Behavior\n\n- macOS: uses Keychain when available\n- Linux desktop: uses Secret Service when available\n- Linux/headless fallback: requires `ORI_VAULT_PASSPHRASE`\n- Windows: secure-store plumbing is present, but the vault should be treated as unavailable until a writable backend is configured\n\nOri Agent does not silently fall back to plaintext secret storage when secure storage is unavailable.\n\n### Settings UI\n\nUse **Settings → Private Vault** to:\n\n- check vault status and backend mode\n- unlock passphrase fallback mode\n- create, browse, update, and delete saved vault entries\n- review or revoke workspace-scoped persistent grants\n- export encrypted vault bundles with explicit confirmation and a vault password\n\n### Performance\n\nThe session system is optimized for handling many sessions efficiently:\n\n- **100+ Sessions**: Tested to handle 150+ sessions with sub-millisecond list operations\n- **Concurrent Access**: Thread-safe operations support multiple tabs and clients\n- **Efficient Search**: Full-text search returns results in under 500µs for typical workloads\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 💬 Support\n\n- 🐛 **Issues**: [GitHub Issues](https://github.com/johnjallday/ori-agent/issues)\n- 💡 **Feature Requests**: Open an issue with the \"enhancement\" label\n- 💬 **Discussions**: [GitHub Discussions](https://github.com/johnjallday/ori-agent/discussions)\n\nWhile this app is very functional, there will be a lot of breaking changes. Feel free to give feedback.\n\nbuymeacoffee.com/johnjallday\n\n---\n\nMade with ❤️ using Go and modern web technologies\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnjallday%2Fori-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnjallday%2Fori-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnjallday%2Fori-agent/lists"}