{"id":48142857,"url":"https://github.com/xkiwilabs/urika","last_synced_at":"2026-05-31T04:00:45.812Z","repository":{"id":346479831,"uuid":"1172577195","full_name":"xkiwilabs/Urika","owner":"xkiwilabs","description":"Multi-agent scientific analysis platform. It creates experiments, tries different methods, evaluates results, searches relevant literature, builds custom tools when needed, and generates detailed reports and presentaions.","archived":false,"fork":false,"pushed_at":"2026-05-31T00:55:47.000Z","size":20723,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-31T02:28:30.554Z","etag":null,"topics":["agentic-ai","analysis","artificial-intelligence","forcasting","machine-learning","modeling","statistics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xkiwilabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T13:19:21.000Z","updated_at":"2026-05-31T00:55:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xkiwilabs/Urika","commit_stats":null,"previous_names":["xkiwilabs/urika"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/xkiwilabs/Urika","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkiwilabs%2FUrika","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkiwilabs%2FUrika/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkiwilabs%2FUrika/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkiwilabs%2FUrika/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xkiwilabs","download_url":"https://codeload.github.com/xkiwilabs/Urika/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkiwilabs%2FUrika/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33718446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","analysis","artificial-intelligence","forcasting","machine-learning","modeling","statistics"],"created_at":"2026-04-04T16:54:27.763Z","updated_at":"2026-05-31T04:00:45.802Z","avatar_url":"https://github.com/xkiwilabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/header.png?v=0.5.0.1\" alt=\"Urika\" width=\"580\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"docs/01-getting-started.md\"\u003eGetting Started\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/11-agent-system.md\"\u003eAgent System\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/13a-models-and-privacy.md\"\u003eModels \u0026amp; Privacy\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/19a-notifications-channels.md\"\u003eNotifications\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/16a-cli-projects.md\"\u003eCLI Reference\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/17-interactive-tui.md\"\u003eInteractive TUI\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/18a-dashboard-pages.md\"\u003eDashboard\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Early Development** — Urika is under active development. Expect frequent updates, bug fixes, and new features. Check back regularly or run `urika setup` to see if a new version is available. Bug reports and feedback welcome at [GitHub Issues](https://github.com/xkiwilabs/Urika/issues).\n\nUrika uses multiple AI agents to autonomously explore analytical approaches for your dataset and research question. It creates experiments, tries different methods, evaluates results, searches relevant literature, and builds custom tools when needed. Everything is documented automatically — experiment labbooks, project-level reports, key findings, and slide presentations you can view in any browser. Each experiment's methods, metrics, and observations are tracked in structured records that agents use to plan the next step.\n\nCurrently supports the **Claude Agent SDK** (Anthropic), including local models via Ollama. Adapters for **OpenAI Agents SDK**, **Google Agent Development Kit (ADK)**, and **PI** are planned for upcoming releases.\n\n**Runs on Linux, macOS, and Windows 11.** For local/private model setups (Ollama, vLLM, LiteLLM), see [Models \u0026 Privacy](docs/13a-models-and-privacy.md).\n\n## Three interfaces\n\nUrika has three first-class interfaces — CLI, TUI, and dashboard. They share the same project state on disk, so anything you do in one shows up in the others.\n\n| Interface | Command | When to use |\n|-----------|---------|-------------|\n| **CLI** | `urika \u003ccommand\u003e` | Scripting, batch jobs, CI, remote sessions, `--json` output for tooling |\n| **TUI** | `urika` | Exploratory orchestrator chat, watching a run with rich activity feedback, slash commands with tab completion |\n| **Dashboard** | `urika dashboard [project]` | Monitoring long runs, sharing results in a browser, settings forms, sessions tab |\n\nSee [Interfaces Overview](docs/02-interfaces-overview.md) for a full task-by-task cheat sheet across all three.\n\n## Installation\n\n### Prerequisites\n\n1. **Python 3.11+** (required) — see [Getting Started → Step 1](docs/01-getting-started.md#python-311-required) for per-OS install commands.\n2. **Anthropic API key** (required) — set up in step 3 below. Per Anthropic's Consumer Terms §3.7 and the April 2026 Agent SDK clarification, a Claude Pro/Max subscription cannot be used to authenticate the Claude Agent SDK that Urika depends on. v0.3 ships with the Anthropic adapter only; adapters for OpenAI, Google ADK, and PI are planned for upcoming releases.\n3. **Claude Code CLI on PATH** *(recommended, not required)* — `npm install -g @anthropic-ai/claude-code`. The Claude Agent SDK ships its own bundled `claude` binary, so you can skip this and Urika will fall back to the bundled one. Install your own to use `claude-opus-4-7` or any future Anthropic model — the bundled binary lags. See [Getting Started → Claude Code CLI](docs/01-getting-started.md#claude-code-cli-recommended) for the why.\n\n### Install Urika\n\n**Recommended: install from source** in a Python virtual environment. Urika is under active development with frequent updates.\n\nOn Ubuntu 22.04+, Debian 12+, Fedora 38+, and recent macOS, system Python refuses `pip install` with `error: externally-managed-environment` (PEP 668), so a venv is the simplest path:\n\n```bash\npython3 -m venv ~/.venvs/urika\nsource ~/.venvs/urika/bin/activate    # Windows PowerShell: ~\\.venvs\\urika\\Scripts\\Activate.ps1\n\ngit clone https://github.com/xkiwilabs/Urika.git\ncd Urika\npip install -e \".[dev]\"\nurika setup                     # check installation, detect hardware, optionally install DL\n```\n\nTo update: `cd Urika \u0026\u0026 git pull`.\n\n**Alternative: install from PyPI** (pre-release — may lag behind source):\n\n```bash\npip install urika\n```\n\n`pipx`, `conda`, and `uv` work too. Deep learning (`torch`, `transformers`) is optional: `pip install \"urika[dl]\"`.\n\n### Set up API key\n\n1. Get a key at [console.anthropic.com](https://console.anthropic.com) → Settings → API Keys.\n2. Set a monthly spend limit in Settings → Billing.\n3. Save the key (Urika is now installed, so the CLI is available):\n\n   ```bash\n   urika config api-key             # interactive — saves to ~/.urika/secrets.env\n   urika config api-key --test      # verify the key works against api.anthropic.com\n   # or: export ANTHROPIC_API_KEY=sk-ant-...\n   ```\n\nSee [Getting Started](docs/01-getting-started.md) for the full walkthrough including verification, troubleshooting, and per-OS notes. See [Provider compliance](docs/20-security.md#provider-compliance) for the full Anthropic policy rationale.\n\n## Quickstart\n\n```bash\nurika new my-study --data ./my_data.csv    # create a project (interactive)\nurika run my-study --dry-run                # preview the planned pipeline first\nurika run my-study                          # run experiments\nurika finalize my-study                     # produce final report\nurika                                       # launch the interactive TUI\nurika --classic                             # or use the classic REPL\n```\n\nSee the [Getting Started](docs/01-getting-started.md) guide for a full walkthrough. **Agent-generated code runs as you** — see [Security Model](docs/20-security.md) before running unfamiliar projects.\n\n## How It Works\n\n```mermaid\nflowchart TD\n    A[\"urika new\\nProject Builder\"] --\u003e B[\"Scans data, profiles,\\ningests knowledge\"]\n    B --\u003e C{\"How to run?\"}\n\n    C -- \"Single experiment\\n(guided)\" --\u003e D[\"urika run\"]\n    C -- \"Multiple experiments\\n(autonomous)\" --\u003e META[\"urika run --max-experiments N\\nAutonomous Mode\"]\n\n    D --\u003e LOOP\n    META --\u003e LOOP\n\n    subgraph LOOP [\"Experiment Loop (per experiment)\"]\n        direction TB\n        P[\"Planning Agent\\ndesigns method\"] --\u003e TA[\"Task Agent\\nwrites code, runs tools\"]\n        TA --\u003e EV[\"Evaluator\\nscores against criteria\"]\n        EV --\u003e Q{Criteria met?}\n        Q -- No --\u003e ADV[\"Advisor Agent\\nanalyzes, proposes next\"]\n        ADV --\u003e P\n        Q -- \"Yes\\n(--review-criteria)\" --\u003e RC[\"Advisor reviews\\ncriteria\"]\n        RC -- \"raises bar\" --\u003e P\n        RC -- \"confirms\" --\u003e REPORT\n        Q -- Yes --\u003e REPORT[\"Generate Reports\"]\n    end\n\n    D -- \"after experiment\" --\u003e REVIEW[\"User reviews results\\ndecides next step\"]\n    REVIEW -- \"run again\" --\u003e D\n\n    META -- \"advisor decides\\nnext experiment\" --\u003e LOOP\n\n    REPORT --\u003e FIN[\"urika finalize\\nFinalizer Agent\"]\n    FIN --\u003e OUT[\"Standalone methods\\nFinal report \u0026 presentation\\nReproduce scripts\"]\n\n    TA -. \"needs tool\" .-\u003e TB[\"Tool Builder\"]\n    P -. \"needs literature\" .-\u003e LIT[\"Literature Agent\"]\n    TB -.-\u003e TA\n    LIT -.-\u003e P\n```\n\nTwelve agents work together. Each experiment runs autonomously — agents plan, execute, evaluate, and iterate without intervention. You choose how to manage the *between-experiment* flow:\n\n- **Guided** (`urika run`) — agents run one experiment autonomously, then you review results and decide what to try next. Best for exploratory work and complex domains where human judgment matters between experiments.\n- **Fully autonomous** (`urika run --max-experiments N`) — the system runs multiple experiments back-to-back, with the advisor agent deciding what to try next. Best when you've provided detailed context (see [Prompts and Context](docs/05-prompts-and-context.md)).\n\nWithin each experiment, the orchestrator cycles through `planning -\u003e task -\u003e evaluator -\u003e advisor` each turn. When all experiments are complete, the **Finalizer** produces standalone deliverables.\n\nSee [Agent System](docs/11-agent-system.md) for details on each agent role.\n\n## Scriptable CLI\n\nEvery Urika command is fully scriptable -- pass arguments and flags directly, get structured JSON output with `--json`, and chain commands in shell scripts. No interactive prompts when flags are provided.\n\n```bash\n# Create and run a project in one script\nurika new my-study --data ~/data/scores.csv --question \"What predicts outcome?\" --mode exploratory\nurika run my-study --max-turns 5 --instructions \"focus on tree-based models\"\nurika run my-study --max-experiments 3 --auto\nurika finalize my-study --instructions \"emphasize the best model\"\n\n# Get structured output for custom tooling\nurika status my-study --json\nurika results my-study --json\nurika methods my-study --json\n\n# Remote control via Telegram/Slack while experiments run\n# See Notifications docs for setup\n```\n\nThis makes it straightforward to build custom workflows, batch processing scripts, CI pipelines, or wrap Urika in your own research tools. See [CLI Reference](docs/16a-cli-projects.md) for the full command list.\n\n## Privacy and Model Configuration\n\nEach project can configure which models and endpoints its agents use. Three privacy modes:\n\n- **Open** (default) -- all agents use cloud models via API. No restrictions.\n- **Private** -- all agents use private endpoints only. This can be local models (Ollama), a secure institutional server, or any combination -- whatever stays within your data governance boundary.\n- **Hybrid** -- a private Data Agent reads raw data and outputs sanitized summaries; all other agents run on cloud models for maximum analytical power. Raw data never leaves your private environment. The default hybrid split covers most cases, but you can customize which agents use which endpoints to ensure what needs to be private stays private.\n\nPer-agent model routing lets you optimize for cost (Haiku for simple tasks, Opus for complex reasoning) or compliance (institutional servers for data access, cloud for method design). Different projects can have completely different privacy and model settings.\n\nSee above for supported and upcoming SDK adapters.\n\nSee [Models and Privacy](docs/13a-models-and-privacy.md) for configuration details.\n\n## Documentation\n\n| Guide | Description |\n|-------|-------------|\n| [Getting Started](docs/01-getting-started.md) | Installation, requirements, first project |\n| [Interfaces Overview](docs/02-interfaces-overview.md) | CLI, TUI, and dashboard as three peer interfaces — when to use which |\n| [Core Concepts](docs/03-core-concepts.md) | Projects, experiments, runs, methods, tools, agents |\n| [Creating Projects](docs/04-creating-projects.md) | `urika new`, data scanning, knowledge ingestion |\n| [Prompts and Context](docs/05-prompts-and-context.md) | Writing effective descriptions, instructions, knowledge ingestion |\n| [Running Experiments](docs/06-running-experiments.md) | Orchestrator loop, turns, auto mode, resume |\n| [Advisor Chat and Instructions](docs/07-advisor-and-instructions.md) | Standalone advisor conversations, steering agents, suggestion-to-run flow |\n| [Viewing Results](docs/08-viewing-results.md) | Reports, presentations, methods, leaderboard |\n| [Finalizing Projects](docs/09-finalizing-projects.md) | Finalization sequence, standalone methods, reproducibility |\n| [Knowledge Pipeline](docs/10-knowledge-pipeline.md) | Ingesting papers, PDFs, searching |\n| [Agent System](docs/11-agent-system.md) | All 12 agent roles and how they interact |\n| [Tools Overview](docs/12a-tools-overview.md) | Philosophy, ITool / ToolResult API, registry, project-specific tools |\n| [Tools Catalogue](docs/12b-tools-catalogue.md) | Per-category reference for all 24 built-in tools |\n| [Models and Privacy](docs/13a-models-and-privacy.md) | Privacy modes, hybrid architecture, per-agent endpoint assignment |\n| [Local Models](docs/13b-local-models.md) | Ollama, LM Studio, vLLM/LiteLLM proxy setup, tested-models table |\n| [Project Configuration](docs/14a-project-config.md) | Per-project urika.toml, criteria, methods, usage |\n| [Global Configuration](docs/14b-global-config.md) | `~/.urika/settings.toml`, secrets vault, environment variables |\n| [Project Structure](docs/15-project-structure.md) | File layout and what each file does |\n| [CLI Reference — Projects](docs/16a-cli-projects.md) | `urika new`, `list`, `delete`, `status`, `inspect`, `update` |\n| [CLI Reference — Experiments](docs/16b-cli-experiments.md) | `urika experiment` group and `urika run` |\n| [CLI Reference — Results and Reports](docs/16c-cli-results.md) | `dashboard`, `results`, `methods`, `logs`, `report`, `present`, `criteria`, `usage` |\n| [CLI Reference — Agents](docs/16d-cli-agents.md) | `advisor`, `evaluate`, `plan`, `finalize`, `build-tool`, `summarize` |\n| [CLI Reference — System](docs/16e-cli-system.md) | `knowledge`, `venv`, `config`, `notifications`, `setup`, `tools`, env vars |\n| [Interactive TUI](docs/17-interactive-tui.md) | TUI interface, slash commands, tab completion, orchestrator chat |\n| [Dashboard — Pages](docs/18a-dashboard-pages.md) | Pages, modals, live log, advisor chat, sessions, sidebar, theme |\n| [Dashboard — Operations](docs/18b-dashboard-operations.md) | Lockfiles, idempotent spawn endpoints, completion CTAs, project deletion |\n| [Dashboard — Settings](docs/18c-dashboard-settings.md) | Project + global settings, notification test-send, `--auth-token` |\n| [Dashboard — API](docs/18d-dashboard-api.md) | Cross-surface coordination, HTMX/fetch endpoint reference, tech stack |\n| [Notifications — Channels](docs/19a-notifications-channels.md) | Email, Slack, Telegram setup walkthroughs |\n| [Notifications — Remote](docs/19b-notifications-remote.md) | Remote `/commands`, what gets notified, troubleshooting, caveats |\n| [Security Model](docs/20-security.md) | Agent-generated code, permission boundaries, secrets, dashboard auth |\n\n## Reporting bugs and requesting features\n\nFound a bug? Got an idea for a feature? Open an issue at\n[github.com/xkiwilabs/Urika/issues](https://github.com/xkiwilabs/Urika/issues).\nPick the **🐛 Bug report** or **✨ Feature request** template — it\nasks for the version, OS, and a few other details that make the\nissue much faster to act on.\n\n## Coming soon\n\nPlanned features on the road to **v1.0.0**, in order. Bug-fix\nhotfixes (`v0.x.y`) ship in between as issues are reported.\n\n**v0.5 — smarter project memory**\n- Curator agent that organises captured memory, merges duplicates, and flags contradictions\n- Browse archived / superseded memory entries in CLI + dashboard\n- See how a project's memory evolved over time (`urika memory diff`, dashboard timeline)\n\n**v0.6 — GitHub backup**\n- One-command setup of a remote git repo for any project\n- Optional auto-create of a private GitHub repo at project-creation time\n- Auto-push after every successful `urika run` / `finalize` so your work is always backed up\n- Dashboard Git tab showing remote URL, last push, recent commits\n\n**v0.7 — more model choice (OpenAI + Google)**\n- OpenAI Agents SDK as a second LLM backend (run experiments against GPT models)\n- Google Gen AI SDK as a third LLM backend (run experiments against Gemini models)\n- Mix and match: pick the best model per agent role across providers in `urika config`\n\n**v0.8 — publication-ready output**\n- Export reports as PDF or LaTeX\n- Export the final pipeline as a runnable Jupyter notebook\n- Auto-generated model cards (assumptions, data, intended use, limitations) per finalised method\n\n**v0.9 — UX polish**\n- Project templates: `urika new --template behavioral|timeseries|imaging|nlp|ml-baseline` with seeded criteria, recommended tools, and sample knowledge — skips the interactive wizard for common research shapes\n- Dashboard accessibility pass: keyboard navigation, focus states, ARIA labels, light/dark contrast audit\n\n**v1.0 — first stable release**\n- Auto-upgrade tool for v0.x projects → v1.0\n- Comprehensive docs covering every command, agent, and config key\n\nSee [CHANGELOG.md](CHANGELOG.md) for everything already shipped.\n\n## Citation\n\nIf you use Urika in your research or analysis, please acknowledge its use in your publications:\n\n\u003e Urika -- Multi-agent scientific analysis platform. Developed by Michael J. Richardson and colleagues at Macquarie University, Sydney, Australia. https://github.com/xkiwilabs/Urika\n\n## License\n\n[Apache 2.0](LICENSE) -- Free to use, modify, and distribute for any purpose, including commercial use. Includes patent protection for contributors. See the [full license](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxkiwilabs%2Furika","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxkiwilabs%2Furika","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxkiwilabs%2Furika/lists"}