Sign inSign up

vulcan365/opencaddis

By vulcan365

•Updated 8 months ago

Personal AI Agent System

Image
Integration & delivery
Machine learning & AI
Developer tools
0

3.1K

vulcan365/opencaddis repository overview

OpenCaddis

AI agent orchestration app with multi-agent chat, configurable plugins, and persistent memory. Built with https://learn.microsoft.com/en-us/aspnet/core/blazor/⁠ and the https://github.com/vulcan365/Fabr⁠ agent framework.

For full documentation see the https://github.com/vulcan365/OpenCaddis⁠.

Quick Start

docker pull vulcan365/opencaddis

Run the container:

Linux / macOS: docker run -d
-p 5000:5000
-v opencaddis-data:/app/data
-v opencaddis-keys:/app/.keys
--name opencaddis
vulcan365/opencaddis

Windows (PowerShell): docker run -d -p 5000:5000 -v opencaddis-data:/app/data -v opencaddis-keys:/app/.keys --name opencaddis ` vulcan365/opencaddis

Open your browser to http://localhost:5000⁠ and go to Settings to configure your AI model endpoint and API key. The app creates its config files automatically when you save.

Persisting Configuration

To persist configuration across docker rm, bind-mount the config files. Create them first on the host from the https://github.com/vulcan365/OpenCaddis/tree/main/src/OpenCaddis⁠:

curl -O https://raw.githubusercontent.com/vulcan365/OpenCaddis/main/src/OpenCaddis/fabr.json.example⁠ curl -O https://raw.githubusercontent.com/vulcan365/OpenCaddis/main/src/OpenCaddis/opencaddis.json.example⁠ mv fabr.json.example fabr.json mv opencaddis.json.example opencaddis.json

Then add them to the run command:

Linux / macOS: docker run -d
-p 5000:5000
-v ./fabr.json:/app/fabr.json
-v ./opencaddis.json:/app/opencaddis.json
-v opencaddis-data:/app/data
-v opencaddis-keys:/app/.keys
--name opencaddis
vulcan365/opencaddis

Windows (PowerShell): docker run -d -p 5000:5000 -v ${PWD}\fabr.json:/app/fabr.json -v ${PWD}\opencaddis.json:/app/opencaddis.json -v opencaddis-data:/app/data -v opencaddis-keys:/app/.keys --name opencaddis ` vulcan365/opencaddis

Volumes

┌──────────────────────┬────────────────────────────────────────────┐ │ Volume │ Purpose │ ├──────────────────────┼────────────────────────────────────────────┤ │ /app/data │ SQLite vector database (persistent memory) │ ├──────────────────────┼────────────────────────────────────────────┤ │ /app/.keys │ ASP.NET data protection keys │ ├──────────────────────┼────────────────────────────────────────────┤ │ /app/fabr.json │ Model endpoint and API key config │ ├──────────────────────┼────────────────────────────────────────────┤ │ /app/opencaddis.json │ Agent and plugin config │ ├──────────────────────┼────────────────────────────────────────────┤ │ /working │ Mount point for plugin working directories │ └──────────────────────┴────────────────────────────────────────────┘

Working Directory for Plugins

Plugins like FileSystem, PowerShell, and TaskManager default to /tmp/OpenCaddis/ inside the container, which doesn't persist. Mount a host directory to /working and configure plugin root paths in Settings > Agents:

Linux / macOS: docker run -d
-p 5000:5000
-v ~/opencaddis-working:/working
-v opencaddis-data:/app/data
-v opencaddis-keys:/app/.keys
--name opencaddis
vulcan365/opencaddis

Windows (PowerShell): docker run -d -p 5000:5000 -v C:\temp\opencaddis-working:/working -v opencaddis-data:/app/data -v opencaddis-keys:/app/.keys --name opencaddis vulcan365/opencaddis

Then set the plugin paths in your agent's Args (container paths, same on every host):

┌─────────────────────────────┬───────────────────────┐ │ Arg │ Example value │ ├─────────────────────────────┼───────────────────────┤ │ FileSystem:RootPath │ /working/files/ │ ├─────────────────────────────┼───────────────────────┤ │ PowerShell:WorkingDirectory │ /working/ │ ├─────────────────────────────┼───────────────────────┤ │ TaskManager:RootPath │ /working/tasks/ │ ├─────────────────────────────┼───────────────────────┤ │ WebBrowser:ScreenshotPath │ /working/screenshots/ │ └─────────────────────────────┴───────────────────────┘

Docker Compose

services: opencaddis: image: vulcan365/opencaddis ports: - "5000:5000" volumes: - ~/opencaddis-working:/working # Linux/macOS # - C:\temp\opencaddis-working:/working # Windows - opencaddis-data:/app/data - opencaddis-keys:/app/.keys restart: unless-stopped

volumes: opencaddis-data: opencaddis-keys:

docker compose up -d

Environment

┌────────────────────────┬───────────────┬─────────────────────┐ │ Variable │ Default │ Description │ ├────────────────────────┼───────────────┼─────────────────────┤ │ ASPNETCORE_URLS │ http://+:5000 │ Listening address │ ├────────────────────────┼───────────────┼─────────────────────┤ │ ASPNETCORE_ENVIRONMENT │ Production │ Runtime environment │ └────────────────────────┴───────────────┴─────────────────────┘

License

https://github.com/vulcan365/OpenCaddis/blob/main/LICENSE⁠. Depends on https://github.com/vulcan365/Fabr⁠ (Apache-2.0).

Tag summary

Content type

Image

Digest

sha256:718aee229…

Size

531.2 MB

Last updated

8 months ago

docker pull vulcan365/opencaddis