One self-hosted systemthat replaces bothJira and Zendesk.
Tasks, tickets, help desk, docs and time in one place — running on your infrastructure, with your own AI keys. Nothing leaves your network.
Free for 3 users. No credit card.
Jira Data Center support ends March 2029.
One system, not four.
Tasks, tickets, help desk, docs and time share one schema. A ticket becomes a task without an integration, and the time logged against it lands in the same margin report.
tools/list → 140+ tools get_containers get_item_screen get_field_picker_data create_item
tools/list → 140+ tools get_board_cycle get_filter_fields get_time_entries get_user_list
ekso item list --url https://ekso.acme.com
ekso auth login --url https://ekso.acme.com
ekso item list --url https://ekso.acme.com
Every task carries a cost.
Rates, budgets and logged time roll up into margin per cycle, per project, per client. The finance view is not a second product you buy later.
| Project | Budget | Spent | Margin |
|---|---|---|---|
| Acme platform rollout | $120,000 | $86,400 | +28.0% |
| Northwind support retainer | $48,000 | $51,200 | −6.7% |
| Contoso data migration | $75,000 | $41,250 | +45.0% |
Your own AI keys.
Point Ekso at your own model provider. Agents read and write through 140+ MCP tools inside your network. No prompt, no ticket and no document leaves your infrastructure.
Settings → AI
{
"azureActive": true,
"azureEndpoint": "https://acme.openai.azure.com",
"azureKey": "${EKSO_AI_KEY}"
}Migrate in two commands.
Collect from the source into a local cache, then apply into Ekso. Dry-run first so you see exactly what lands. Every comment, worklog and attachment keeps the author it had on the way in.
- Jira
- Linear
- Azure DevOps
- Zendesk
- Countersoft Gemini
Jira Cloud, Data Center and Server are auto-detected.
$ export EKSO_URL=https://ekso.acme.com
$ ekso migrate jira collect --config migration.config.json --project ACME
fetching ACME items... 1247/1247 ok
fetching comments... 4083/4083 ok
fetching worklogs... 891/891 ok
$ ekso migrate jira apply --config migration.config.json --process proc_engineering --dry-run
DRY-RUN — no writes.
would create: 1 container, 47 users, 1247 items, 4083 annotations,
312 files, 89 links, 8 cyclesRun it on your own machinein 2 minutes.
Paste this into your AI. It stands the whole platform up locally — nothing leaves your machine, no account, no card.
Spin up Ekso (open-source self-hosted ops platform — tasks, tickets, time, money, MCP server) on this machine so I can try it. 1. Download https://ekso.app/download/ekso-docker-stack.zip and unzip into a new folder 2. cd into the folder and run: docker compose up -d 3. Wait until http://localhost:6050 responds (1–2 min on first run while images pull from Docker Hub), then open it in my default browser 4. STOP — do not fill in the /startup form yourself. Tell me to pick my own admin username and password 5. After I submit, sample data auto-seeds and the workspace populates To stop later: docker compose down
Works in Claude Code, Cursor, Codex, ChatGPT (terminal access).