Install any skill in seconds. Free to start, no credit card required.
Get Started Free →mims-harvard/tooluniverse-cs-setup
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.
Passed 16 of 19 test cases with the skill, and 3 of 19 without it.
and 12 more in the full report
15 fixed4 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
Because ~/.tooluniverse is read-only in the sandbox, what environment variable does the get_tu() helper configure internally to redirect the cache?
| Checked | Without skill | With skill |
|---|---|---|
| The environment variable used for cache redirection is TOOLUNIVERSE_CACHE_DIR. | Missed | Passed |
The instructions your model reads when the skill loads.
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):
res = 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):
import 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))
test cases passed, vs 3 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.