Every time I wanted to give my small team some internal tooling - a shared task tracker, a place for documents, a calendar, an assistant that actually knew our files - I ended up wiring together five SaaS subscriptions or a sprawling self-hosted stack: Postgres, Redis, a vector database, a frontend build pipeline, a reverse proxy. Just to get started.
So I built the opposite.
OpenWorkspace
OpenWorkspace is a self-hosted AI workspace that runs as one Node process. No database to provision (state is SQLite/JSON files next to the server), no build step (no webpack, no transpile - open a file, edit, reload). git clone && npm start and you have tasks, documents with real RAG, a calendar, a scheduler, time tracking, a credential vault, and a team of AI agents behind one login.
The part I actually care about: agents that operate apps
Most self-hosted AI tools are a chat box over your documents. OpenWorkspace is built around a different idea:
Every app ships its own tools. So the AI agents don't just talk - they take real actions inside your apps.
When you add an app, you also declare a small tools.json that maps to the app's own HTTP endpoints. The moment that exists, the agents can call it. Tell an agent to add items to the task list, or find a contract in Documents and summarize it, and it actually does the thing - because the app exposed a tool. One LLM config powers both the assistant and these agentic tasks across every app.
Build your own app in minutes
The 20+ apps it ships with are really just examples. The point is how fast you build your own:
- Every app is two files: an API handler + state, and a mount file for routes.
- Copy the template, drop in your logic, add a registry entry. No restart, no build.
- Add a
tools.jsonand your new app is instantly agent-operable.
The agent framework
- Scaffold a new agent in about a minute (a prompt + a tool list).
- Tools come from composable packs - grant capabilities per agent.
- MCP built in - point a pack at any Model Context Protocol server and its tools surface automatically.
- Pick the model per agent - a cheap local model for background work, a frontier model for the assistant.
Point it at any OpenAI-compatible endpoint (OpenAI, Ollama, vLLM, LM Studio), or run the non-AI apps with no model at all.
Built-in RAG, no external vector DB
Drop PDFs / Word / Excel into Documents and they're chunked, embedded, and searchable with hybrid retrieval - BM25 keyword (SQLite FTS5) + semantic vector search (sqlite-vec) fused with reciprocal-rank. The agents answer grounded in your files.
It's early, and I'd love your eyes on it
It's solo and version 0.1 - but it runs, and I use it with my team every day. I'd genuinely love feedback on the architecture, and to hear what would make it useful for your team.
Repo (MIT): https://github.com/avaldesbosch/openworkspace
What would you want your AI agents to actually do in your workspace?
Top comments (0)