Install Package
install_packageInstall a software package for a chosen language via its package manager (uv pip, npm, gem, go get, cargo add), requiring confirmation before installation.
Instructions
Install a package for a language (uv pip / npm / gem / go get / cargo add...).
Asks the caller to confirm before installing (a protocol-level gate, not
just the anthropic/requiresUserInteraction _meta hint — see
codecalc/confirmation.py); a declined or malformed confirmation refuses
with no install attempted.
With session_id, executed code in that session can import the result.
NETWORK: yes, always. The package manager fetches from its registry (PyPI, npm, rubygems, crates.io). codecalc opens no socket itself; the child process does.
NOT SANDBOXED: the installer runs as a direct subprocess of the server, so install-time hooks (npm postinstall, Python build backends, Cargo build scripts) execute with the server user's filesystem access. The environment is still restricted to the allowlist, so secrets do not leak, but the filesystem is not confined. Do not point this at untrusted input. See SECURITY.md.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | Package name to install via that language's manager (uv pip/npm/gem/go get/cargo add) | |
| version | No | Exact version to install; omit to install the manager's default/latest | |
| language | Yes | Language whose package manager installs the package, e.g. 'python3', 'node' | |
| session_id | No | Install into this session's workspace instead of the shared cache; omit for the shared cache |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||