Skip to content

MicrosoftWindows96/zagrosi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Zagrosi

One open-source, self-hosted, AI-native platform for project management, issue tracking, and incident response.

License: AGPLv3 Status Backend: Rust Frontend: React MCP Spec


Zagrosi unifies the work that today is fractured across ClickUp, Jira, and incident.io into a single platform you can run yourself. Action items from a postmortem land in the same backlog as your sprint work. Issue severity drives on-call paging. Every surface is reachable from your AI editor through a first-party MCP server.

One platform. One source of truth. Zero per-seat fees.

🚧 Pre-alpha. Designing in public. Not yet usable. ⭐ Star to follow along.


Why Zagrosi

The modern engineering org runs three siloed tools to do one connected job:

Tool category Examples What it owns
Project management ClickUp, Asana, Linear Day-to-day tasks, projects, docs
Issue tracking Jira, Shortcut Sprints, epics, agile workflow
Incident response incident.io, PagerDuty, FireHydrant On-call, response, postmortems

Each charges per seat. Each owns a slice of the same context. The action items born from a postmortem in tool C have to be retyped into tool A so they actually get worked. The status of a customer-impacting bug lives in tool B, but its incident timeline lives in tool C. There is no shared identity, no shared permissions, no shared search.

And none of them speak fluently to AI editors.

Four coherent surfaces, one platform

πŸ“‹ Tasks

Work management with custom fields, multiple views (list / board / calendar / gantt), nested hierarchies, dependencies.

πŸ”„ Issues

Agile workflow on top of tasks: sprints, epics, story points, kanban / scrum boards, JQL-style filtering.

🚨 Incidents

Severity-driven response with on-call schedules, escalation policies, runbooks, status pages, and postmortems.

πŸ€– AI-Native

Every surface as MCP tools, resources, and prompts. Declare incidents from Claude Code. Page on-call from Codex.

All four share users, permissions, search, comments, audit log, and integrations. First-class Slack and Microsoft Teams bridges ship in-box: slash commands, auto-created incident channels, threaded action items, on-call paging, and notification routing, both directions. Self-hosted by default. AGPLv3 so it stays that way.


Stack

Layer Choice
Backend Rust: axum, tokio, sqlx
Frontend React + TypeScript: Vite, TanStack Router/Query, Tailwind
Database PostgreSQL 18: row-level security for multi-tenancy
Event bus NATS JetStream: realtime, event sourcing, durable streams
Cache Valkey: BSD-licensed Redis fork, OSI-approved (Redis Inc. relicensed to non-OSS in 2024)
Search Tantivy: embedded, no Elasticsearch dependency
MCP server rmcp v1.5+: stdio + Streamable HTTP, MCP spec 2025-11-25
Auth Built-in email/password + OIDC / SAML SSO
Deploy Docker Compose (single-node) + Helm chart (Kubernetes)
License AGPLv3

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    React Web App     β”‚  β”‚  AI editors: Claude Code, Codex CLI,     β”‚
β”‚                      β”‚  β”‚  Cursor, Zed, Claude Desktop             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚ HTTPS + WS                          β”‚ MCP (stdio / HTTP)
           β–Ό                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      API Gateway (axum)      │◄──►│     zagrosi-mcp (rmcp)      β”‚
β”‚    REST + WS, NATS bridge    β”‚    β”‚ tools / resources / prompts β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β”‚  Bounded-context Rust crates routed via NATS JetStream:
               β”‚  identity, RBAC, work-item core, tasks, agile,
               β”‚  incidents, alerts, oncall, docs, chat, postmortems...
               β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β–Ό          β–Ό          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Postgresβ”‚ β”‚NATS JS β”‚ β”‚ Valkey β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Each bounded context is its own Rust crate inside a Cargo workspace. Cross-service calls go through NATS request/reply or shared Postgres tables, never direct HTTP. The MCP server is a thin translator from MCP primitives to api-gateway REST calls; same auth, same permission model, same audit log as the web UI.


Roadmap

A solo build. Dates aspirational, not commitments. The product track and AI-Native track ship in parallel; every product phase lights up matching MCP capabilities.

Phase Status Product AI-Native (MCP + plugins) Target
0 πŸ“‹ Planned Foundation: monorepo, CI, identity, RBAC, multi-tenant, Docker/Helm zagrosi-mcp skeleton (rmcp, stdio + HTTP, auth handshake) ~2 mo
1 πŸ“‹ Planned Tasks: work items, custom fields, list / board / calendar views MCP v0.1: create_task, list_tasks, update_task, task://<id> resource ~5 mo
2 πŸ“‹ Planned Agile: sprints, epics, scrum / kanban boards, story points MCP v0.2: sprint / board tools + sprint_planning prompt ~7 mo
3 🎯 MVP Incidents: severity, on-call, escalation, runbooks MCP v0.3: declare_incident, page_oncall, ack_incident, incident_kickoff prompt ~10 mo
4 πŸ“‹ Planned Docs: wiki with Yjs realtime collab MCP v0.4: doc resources, full-text search tool ~12 mo
5 πŸ“‹ Planned Chat + notifications n/a ~14 mo
6 πŸ“‹ Planned Postmortems: timeline, action items β†’ tasks, analytics MCP v0.5: timeline resource + postmortem_template prompt ~16 mo
7 ♾️ Ongoing Integrations marketplace (WASM plugin runtime), mobile, polish Cursor extension, Zed plugin, Codex skill marketplace listing ongoing

Open issues for ideas, complaints, prior art.


Quick start

Self-host

🚧 TBC: installation instructions will be published once Phase 0 ships.

Use from your AI editor

🚧 TBC: zagrosi-mcp distribution (Cargo, Docker, prebuilt binaries) and per-client config snippets (Claude Code, Claude Desktop, Codex CLI, Cursor, Zed, Continue.dev) will be published with MCP v0.1 (Phase 1).

Use as a Claude Code plugin

🚧 TBC: slash commands (/zag-incident, /zag-sprint, /zag-task, /zag-postmortem) and a guided skill on top of the MCP tools will be published alongside MCP v0.3 (Phase 3).


How Zagrosi compares

Feature Zagrosi ClickUp + Jira + incident.io
Self-hosted βœ… Always ❌ SaaS only
Open source βœ… AGPLv3 ❌ Proprietary
Unified data model βœ… Tasks ↔ issues ↔ incidents linked at the DB ❌ Three databases, three APIs, three webhooks
Single permission model βœ… One RBAC across all surfaces ❌ Three separate RBAC systems
MCP / AI-native βœ… First-party MCP server ❌ None ship MCP today
Per-seat pricing πŸ†“ Zero πŸ’° ~$30 to $80 / user / month combined
Vendor lock-in πŸ†“ Run anywhere πŸ”’ Triple lock-in

Contributing

This is currently a solo project in early design. The fastest way to help right now:

  • ⭐ Star the repo: signals interest
  • πŸ’¬ Open a Discussion: share use cases, complaints about your current tools, or design feedback
  • πŸ› File issues on the design notes once they land

Code contributions will open up after the foundation phase ships. See CONTRIBUTING.md for the full workflow: branch and commit conventions, code review checklist, testing requirements, and DCO sign-off.


License

GNU Affero General Public License v3.0

Zagrosi is AGPLv3 by design. You can self-host it freely. If you modify it and offer it as a service, you must publish your changes. This keeps the project a true commons rather than fuel for someone else's closed-source SaaS.


Zagrosi takes its name from the Zagros mountains that run through Kurdistan.

Layered ridges, layered modules.

About

Open-source, self-hosted, AI-native platform for project management, issue tracking, and incident response.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors