Updated README.md

This commit is contained in:
2026-04-21 11:09:51 +02:00
parent eaea8d94b1
commit c5a5356a0d
+48 -19
View File
@@ -1,23 +1,45 @@
# oAI-Web - Personal AI Agent # oAI-Web - Personal AI Agent
A secure, self-hosted personal AI agent. Handles calendar, email, files, web research, and Telegram - controlled by you, running on your own hardware. A secure, self-hosted personal AI agent. Handles calendar, email, files, web research, Telegram, and more - controlled by you, running on your own hardware.
## Features ## Features
- **Chat interface** - conversational UI via browser, with model selector - **Chat interface** - conversational UI via browser, with model selector and markdown rendering
- **CalDAV** - read and write calendar events (per-user credentials, configured in Settings) - **CalDAV** - read and write calendar events (per-user credentials, configured in Settings)
- **CardDAV / Contacts** - search and manage contacts from your CardDAV server - **CardDAV / Contacts** - search and manage contacts from your CardDAV server
- **Email** - read inbox, send replies (whitelist-managed recipients) - **Email** - read inbox, send replies (whitelist-managed recipients)
- **Filesystem** - read/write files in your personal data folder - **Filesystem** - read/write files in your personal data folder
- **Web access** - tiered: whitelisted domains always allowed, others on request - **Web access** - tiered: whitelisted domains always allowed, others on request
- **Browser** - headless Chromium via Playwright; fetch pages, take screenshots, click, fill forms, and interact with web UIs (full image only)
- **Push notifications** - Pushover for iOS/Android (set your own User Key in Settings) - **Push notifications** - Pushover for iOS/Android (set your own User Key in Settings)
- **Telegram** - send and receive messages via your own bot - **Telegram** - send and receive messages via your own bot
- **Webhooks** - trigger agents from external services (iOS Shortcuts, GitHub, Home Assistant, etc.) - **Webhooks** - trigger agents from external services (iOS Shortcuts, GitHub, Home Assistant, etc.)
- **Monitors** - page-change and RSS feed monitors that dispatch agents automatically - **Monitors** - page-change and RSS feed monitors that dispatch agents automatically
- **Scheduled tasks** - cron-based autonomous tasks with declared permission scopes - **Scheduled tasks** - cron-based autonomous tasks with declared permission scopes
- **Agents** - goal-oriented runs with model selection and full run history - **Agents** - goal-oriented runs with model selection and full run history
- **2nd Brain** - personal semantic memory powered by pgvector; capture and search thoughts across sessions
- **MCP Servers** - connect external Model Context Protocol servers and expose their tools to your agents
- **Image generation** - generate images via your configured provider
- **Audit log** - every tool call logged, append-only - **Audit log** - every tool call logged, append-only
- **Multi-user** - each user has their own credentials and settings - **Multi-user** - each user has their own credentials and settings
- **PWA** - installable on iOS and Android home screens; mobile-optimised layout
---
## Docker Images
Four pre-built images are available. Choose the one that matches your architecture and whether you need the browser tool.
| Image | Architecture | Browser tool |
|-------|-------------|--------------|
| `image.gitlab.pm/rune/oai-web:latest` | amd64 | Yes |
| `image.gitlab.pm/rune/oai-web:latest-no-browser` | amd64 | No |
| `image.gitlab.pm/rune/oai-web:latest_arm64` | arm64 | Yes |
| `image.gitlab.pm/rune/oai-web:latest-no-browser_arm64` | arm64 | No |
**Full image** includes Playwright and a Chromium installation. This adds roughly 350 MB to the image size but enables the browser tool - the agent can fetch pages, take screenshots, click elements, fill forms, and navigate web UIs on your behalf.
**No-browser image** is leaner and faster to pull. All other tools and features are identical. Choose this if you don't need the agent to interact with web pages directly, or if you are constrained on disk space.
--- ---
@@ -28,9 +50,10 @@ A secure, self-hosted personal AI agent. Handles calendar, email, files, web res
- A PostgreSQL-compatible host (included in the compose file) - A PostgreSQL-compatible host (included in the compose file)
--- ---
## Documentation ## Documentation
There is a [documentation site](https://docs.jarvis.pm) with in depth information on the project. There is a [documentation site](https://docs.jarvis.pm) with in-depth information on the project.
## Installation ## Installation
@@ -98,7 +121,6 @@ PORT=8080
TIMEZONE=Europe/Oslo TIMEZONE=Europe/Oslo
``` ```
--- ---
### Database * ### Database *
@@ -223,11 +245,11 @@ The file is mounted read-only into the container. Changes take effect on the nex
## Your Settings ## Your Settings
After logging in, go to **Settings** to configure your personal services. Each user has their own credentials nothing is shared with other users. After logging in, go to **Settings** to configure your personal services. Each user has their own credentials - nothing is shared with other users.
### CalDAV / CardDAV ### CalDAV / CardDAV
Set up your personal calendar and contacts server under **Settings CalDAV / CardDAV**: Set up your personal calendar and contacts server under **Settings - CalDAV / CardDAV**:
- Enter your server URL (e.g. `mail.example.com`), username, and password - Enter your server URL (e.g. `mail.example.com`), username, and password
- Optionally specify a calendar name (leave blank for the default calendar) - Optionally specify a calendar name (leave blank for the default calendar)
@@ -235,7 +257,7 @@ Set up your personal calendar and contacts server under **Settings → CalDAV /
- Use the **Test** buttons to verify your connection before saving - Use the **Test** buttons to verify your connection before saving
- Enable **Allow contact writes** if you want agents to be able to create and update contacts - Enable **Allow contact writes** if you want agents to be able to create and update contacts
There is no system-wide fallback if you don't configure it, calendar and contacts tools won't be available to your agents. There is no system-wide fallback - if you don't configure it, calendar and contacts tools won't be available to your agents.
### Pushover ### Pushover
@@ -243,29 +265,33 @@ To receive push notifications on your iOS or Android device:
1. Create a free account at [pushover.net](https://pushover.net) 1. Create a free account at [pushover.net](https://pushover.net)
2. Copy your **User Key** from the dashboard 2. Copy your **User Key** from the dashboard
3. Go to **Settings Pushover** and save your User Key 3. Go to **Settings - Pushover** and save your User Key
The app is already registered by your admin you only need your own User Key. The app is already registered by your admin - you only need your own User Key.
### Webhooks ### Webhooks
Create inbound webhooks under **Settings Webhooks** to trigger your agents from external services: Create inbound webhooks under **Settings - Webhooks** to trigger your agents from external services:
- Assign a name and target agent, then copy the secret token shown at creation (it's shown only once) - Assign a name and target agent, then copy the secret token shown at creation (it's shown only once)
- **POST trigger**: send `{"message": "your message"}` to `/webhook/{token}` - **POST trigger**: send `{"message": "your message"}` to `/webhook/{token}`
- **GET trigger**: visit `/webhook/{token}?q=your+message` ideal for iOS Shortcuts URL actions - **GET trigger**: visit `/webhook/{token}?q=your+message` - ideal for iOS Shortcuts URL actions
- Enable or disable webhooks without deleting them - Enable or disable webhooks without deleting them
### Telegram ### Telegram
Set your personal bot token under **Settings Telegram** (or **Settings Profile Telegram Bot Token**) if you want your own Telegram bot. Your chat ID must be whitelisted by the admin before messages are processed. Set your personal bot token under **Settings - Telegram** (or **Settings - Profile - Telegram Bot Token**) if you want your own Telegram bot. Your chat ID must be whitelisted by the admin before messages are processed.
### Email Accounts ### Email Accounts
Set up your own email accounts under **Settings Email Accounts**: Set up your own email accounts under **Settings - Email Accounts**:
- **Trigger account** dispatches agents based on keyword rules in incoming emails - **Trigger account** - dispatches agents based on keyword rules in incoming emails
- **Handling account** a dedicated AI agent reads and handles each incoming email - **Handling account** - a dedicated AI agent reads and handles each incoming email
### Browser - Trusted Domains
When the agent uses the browser tool to interact with a page (clicking, filling forms), it will ask for confirmation unless the domain is pre-approved. Add trusted domains under **Settings - Browser** to skip the confirmation prompt for those sites.
--- ---
@@ -283,11 +309,14 @@ docker compose up -d
| URL | Description | | URL | Description |
|-----|-------------| |-----|-------------|
| `/` | Chat - send messages, select model, view tool activity | | `/` | Chat - send messages, select model, view tool activity |
| `/chats` | Chat history - browse and resume past conversations |
| `/tasks` | Scheduled tasks - cron-based autonomous tasks | | `/tasks` | Scheduled tasks - cron-based autonomous tasks |
| `/agents` | Agents - goal-oriented runs with model selection and run history | | `/agents` | Agents - goal-oriented runs with model selection and run history |
| `/monitors` | Monitors - page-change watchers and RSS feed monitors | | `/monitors` | Monitors - page-change watchers and RSS feed monitors |
| `/files` | Files - browse, download, and manage your personal data folder | | `/models` | Model browser - all available models, capabilities, and pricing |
| `/files` | Files - browse, view, and manage your personal data folder |
| `/audit` | Audit log - filterable view of every tool call | | `/audit` | Audit log - filterable view of every tool call |
| `/usage` | Usage and costs - token usage and cost tracking across runs |
| `/settings` | Your personal settings: CalDAV, CardDAV, Pushover, Webhooks, Telegram, Email Accounts, and more | | `/settings` | Your personal settings: CalDAV, CardDAV, Pushover, Webhooks, Telegram, Email Accounts, and more |
--- ---
@@ -316,10 +345,10 @@ Contributions are welcome!
## Disclaimer ## Disclaimer
oAI-Web takes real actions on your behalf it can send emails, write files, make calendar changes, and post Telegram messages. Review your whitelist and permission settings carefully before use. Content you send is processed by your configured AI provider (Anthropic, OpenRouter, or OpenAI). oAI-Web is provided "as is" without warranty of any kind the author accepts no responsibility for actions taken by the agent or any consequences thereof. See LICENSE for full terms. oAI-Web takes real actions on your behalf - it can send emails, write files, make calendar changes, post Telegram messages, and interact with web pages. Review your whitelist and permission settings carefully before use. Content you send is processed by your configured AI provider (Anthropic, OpenRouter, or OpenAI). oAI-Web is provided "as is" without warranty of any kind - the author accepts no responsibility for actions taken by the agent or any consequences thereof. See LICENSE for full terms.
--- ---
**Star this project if you find it useful!** **Star this project if you find it useful!**
**🐛 Found a bug?** [Open an issue](https://gitlab.pm/rune/oai-web/issues/new) **Found a bug?** [Open an issue](https://gitlab.pm/rune/oai-web/issues/new)