Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Install or update ToolUniverse in Claude Science — create the conda env, install the tooluniverse pip package, and (re)build the tooluniverse-research skill by fetching the current workflow library from GitHub. Use for first-time setup, upgrading the ToolUniverse version, refreshing the bundled workflows after an upstream release, or reinstalling on a new machine.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -36% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -17% | 0% |
The upstream ToolUniverse ships a Claude Code plugin (MCP server + uvx + slash commands). Claude Science loads capabilities differently, so this skill installs the equivalent natively: the tooluniverse pip package supplies the 2500+ tools, and the workflow library is packaged into a single dynamically-loaded skill, tooluniverse-research. No uv, no MCP server, no plugin marketplace.
Loading this skill defines tu_build_research_bundle() in the kernel (run cells in the tooluniverse conda env).
1. Create the conda env (skip if it already exists):
manage_environments(mode="create", name="tooluniverse", python_version="3.11", packages=["pip"])2. Install (or upgrade) the tools — the pip package is the tool layer:
manage_packages(mode="install", environment="tooluniverse", packages=["tooluniverse"], use_pip=True)Pin a version for reproducibility with ["tooluniverse==1.3.0"].
3. Stage the workflow bundle — fetch the current repo and rebuild the file tree (run in a python cell, env tooluniverse):
pythonres = tu_build_research_bundle(staging="./tu_staging") res # {out_dir, n_workflows, n_files, dropped, files_head}
This downloads the repo tarball, parses every tooluniverse-* workflow (dropping the plugin/installer entries), and writes ./tu_staging/out/ = SKILL.md, kernel.py, index.json, workflows/*.md.
4. Publish the skill — push the staged tree into the catalog (run in the repl tool; host.skills.* lives there, not in python):
pythonimport os SKILL = "tooluniverse-research" out = os.path.abspath("./tu_staging/out") if any(s["name"] == SKILL for s in host.skills.list()): host.skills.delete(SKILL) # clean rebuild for root, _d, fs in os.walk(out): for f in fs: p = os.path.join(root, f) rel = os.path.relpath(p, out) host.skills.edit(SKILL, rel, open(p, encoding="utf-8").read()) print(host.skills.publish(SKILL, overwrite=True))
(host.skills.publish refuses if kernel.py fails the sidecar gate — the edit result carries the verdict.)
pythonskill("tooluniverse-research") # loads router + injects helpers tu = get_tu() tu.run({"name": "PubChem_get_CID_by_compound_name", "arguments": {"name": "metformin"}}) # -> {'status': 'success', 'data': {'IdentifierList': {'CID': [4091]}}}
~/.tooluniverse, which is read-only here; get_tu() redirects it to the workspace via TOOLUNIVERSE_CACHE_DIR. Nothing to configure.tooluniverse env./tooluniverse:research) and MCP server — replaced by natural-language routing (search_skills → find_tu_workflow). The two *-plugin installer docs are dropped as non-research entries.Other measured skills in the registry, with their headline benchmark lift.