---
name: workspace-commands
description: Use when running commands in this workspace - which commands exist, what they can do, and what the interpreter supports.
---
# Available commands
Python (`python` or `python3`), Perl, JavaScript/Node.js, and TypeScript
runtimes are unavailable. Use the shell commands and task CLIs documented
below; do not probe for or attempt to install other runtimes.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq
with pipes, `>` redirection and `$(...)` substitution.
Do not probe the machine with `which`, `type`, `--version`, `env`, `ps`,
`echo $PATH`, `ls /usr/bin` or `cat /usr/bin/<command>`: they tell you
nothing about the task.
A filename with a space in it needs quoting, as it would in any shell.
## slack
Use `slack <command> '<JSON arguments>'`. Run `slack <command> --help` to
get more information.
```sh
slack channels-list '{"channel_types":"public_channel,private_channel"}'
```
| Command | Arguments | Description |
|---|---|---|
| `slack channels-list` | `{channel_types: str, cursor?: str, limit?: number = 100, sort?: str}` | Get list of channels |
## airtable
Use `airtable <command> '<JSON arguments>'`. Run `airtable <command> --help`
to get more information.
```sh
airtable list-bases '{}'
airtable list-tables '{"base_id":"BASE_ID"}'
airtable list-records '{"base_id":"BASE_ID","table_name":"TABLE","max_records":10}'
airtable search-records '{"base_id":"BASE_ID","table_name":"TABLE","field_name":"FIELD","value":"VALUE"}'
airtable get-record '{"base_id":"BASE_ID","table_name":"TABLE","record_id":"RECORD_ID"}'
```
| Command | Arguments | Description |
|---|---|---|
| `airtable list-bases` | `{}` | List all accessible Airtable bases |
| `airtable list-tables` | `{base_id: str}` | List all tables in a base |
| `airtable list-records` | `{base_id: str, table_name: str, max_records?: number}` | List records in a table |
| `airtable search-records` | `{base_id: str, table_name: str, field_name: str, value: str}` | Search for records in a table |
| `airtable get-record` | `{base_id: str, table_name: str, record_id: str}` | Get a single record by its ID |
## calculator
Use `calculator <command> '<JSON arguments>'`. Run
`calculator <command> --help` to get more information.
```sh
calculator calculate '{"expression":"2 * (3 + 4)"}'
```
| Command | Arguments | Description |
|---|---|---|
| `calculator calculate` | `{expression: str}` | Calculates/evaluates the given expression. |
## memory
Use `memory <command> '<JSON arguments>'`. Run `memory <command> --help` to
get more information.
```sh
memory read-graph '{}'
memory search-nodes '{"query":"QUERY"}'
memory open-nodes '{"names":["NAME"]}'
```
| Command | Arguments | Description |
|---|---|---|
| `memory read-graph` | `{}` | Read the entire knowledge graph |
| `memory search-nodes` | `{query: str}` | Search for nodes in the knowledge graph based on a query |
| `memory open-nodes` | `{names: list[str]}` | Open specific nodes in the knowledge graph by their names |
## weather-data
Use `weather-data <command> '<JSON arguments>'`. Run
`weather-data <command> --help` to get more information.
```sh
weather-data weather-history '{"q":"CITY","dt":"2025-06-01"}'
weather-data weather-astronomy '{"q":"CITY","dt":"2025-06-01"}'
weather-data weather-search '{"q":"CITY"}'
```
| Command | Arguments | Description |
|---|---|---|
| `weather-data weather-history` | `{q: str, dt: str}` | Get historical weather for a location on a given date (YYYY-MM-DD). Args: q (str): Location query. dt (str): Date in YYYY-MM-DD format. Returns: dict: WeatherAPI history JSON. |
| `weather-data weather-astronomy` | `{q: str, dt: str}` | Get astronomy data (sunrise, sunset, moon) for a date (YYYY-MM-DD). Args: q (str): Location query. dt (str): Date in YYYY-MM-DD format. Returns: dict: WeatherAPI astronomy JSON. |
| `weather-data weather-search` | `{q: str}` | Search for locations matching query. Args: q (str): Location query. Returns: dict: WeatherAPI search JSON. |
## e2b-server
Use `e2b-server <command> '<JSON arguments>'`. Run
`e2b-server <command> --help` to get more information.
```sh
e2b-server run-code '{"code":"print(1 + 1)"}'
```
| Command | Arguments | Description |
|---|---|---|
| `e2b-server run-code` | `{code: str}` | Run python code in a secure sandbox by E2B. Using the Jupyter Notebook syntax. |
## pubmed
Use `pubmed <command> '<JSON arguments>'`. Run `pubmed <command> --help` to
get more information.
```sh
pubmed search-pubmed-key-words '{"key_words":"QUERY","num_results":5}'
pubmed search-pubmed-advanced '{"term":"QUERY","num_results":5}'
pubmed get-pubmed-article-metadata '{"pmid":"PMID"}'
```
| Command | Arguments | Description |
|---|---|---|
| `pubmed search-pubmed-key-words` | `{key_words: str, num_results?: int = 10}` | |
| `pubmed search-pubmed-advanced` | `{term?: str = null, title?: str = null, author?: str = null, journal?: str = null, start_date?: str = null, end_date?: str = null, num_results?: int = 10}` | |
| `pubmed get-pubmed-article-metadata` | `{pmid: str \| int}` | |
| name | workspace-commands |
|---|
| description | Use when running commands in this workspace - which commands exist, what they can do, and what the interpreter supports. |
|---|
Available commands
Python (python or python3), Perl, JavaScript/Node.js, and TypeScript runtimes are unavailable. Use the shell commands and task CLIs documented below; do not probe for or attempt to install other runtimes.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq
with pipes, > redirection and $(...) substitution.
Do not probe the machine with which, type, --version, env, ps, echo $PATH, ls /usr/bin or cat /usr/bin/<command>: they tell you nothing about the task.
A filename with a space in it needs quoting, as it would in any shell.
slack
Use slack <command> '<JSON arguments>'. Run slack <command> --help to get more information.
slack channels-list '{"channel_types":"public_channel,private_channel"}'
| Command | Arguments | Description |
|---|
slack channels-list | {channel_types: str, cursor?: str, limit?: number = 100, sort?: str} | Get list of channels |
airtable
Use airtable <command> '<JSON arguments>'. Run airtable <command> --help to get more information.
airtable list-bases '{}'
airtable list-tables '{"base_id":"BASE_ID"}'
airtable list-records '{"base_id":"BASE_ID","table_name":"TABLE","max_records":10}'
airtable search-records '{"base_id":"BASE_ID","table_name":"TABLE","field_name":"FIELD","value":"VALUE"}'
airtable get-record '{"base_id":"BASE_ID","table_name":"TABLE","record_id":"RECORD_ID"}'
| Command | Arguments | Description |
|---|
airtable list-bases | {} | List all accessible Airtable bases |
airtable list-tables | {base_id: str} | List all tables in a base |
airtable list-records | {base_id: str, table_name: str, max_records?: number} | List records in a table |
airtable search-records | {base_id: str, table_name: str, field_name: str, value: str} | Search for records in a table |
airtable get-record | {base_id: str, table_name: str, record_id: str} | Get a single record by its ID |
calculator
Use calculator <command> '<JSON arguments>'. Run calculator <command> --help to get more information.
calculator calculate '{"expression":"2 * (3 + 4)"}'
| Command | Arguments | Description |
|---|
calculator calculate | {expression: str} | Calculates/evaluates the given expression. |
memory
Use memory <command> '<JSON arguments>'. Run memory <command> --help to get more information.
memory read-graph '{}'
memory search-nodes '{"query":"QUERY"}'
memory open-nodes '{"names":["NAME"]}'
| Command | Arguments | Description |
|---|
memory read-graph | {} | Read the entire knowledge graph |
memory search-nodes | {query: str} | Search for nodes in the knowledge graph based on a query |
memory open-nodes | {names: list[str]} | Open specific nodes in the knowledge graph by their names |
weather-data
Use weather-data <command> '<JSON arguments>'. Run weather-data <command> --help to get more information.
weather-data weather-history '{"q":"CITY","dt":"2025-06-01"}'
weather-data weather-astronomy '{"q":"CITY","dt":"2025-06-01"}'
weather-data weather-search '{"q":"CITY"}'
| Command | Arguments | Description |
|---|
weather-data weather-history | {q: str, dt: str} | Get historical weather for a location on a given date (YYYY-MM-DD). Args: q (str): Location query. dt (str): Date in YYYY-MM-DD format. Returns: dict: WeatherAPI history JSON. |
weather-data weather-astronomy | {q: str, dt: str} | Get astronomy data (sunrise, sunset, moon) for a date (YYYY-MM-DD). Args: q (str): Location query. dt (str): Date in YYYY-MM-DD format. Returns: dict: WeatherAPI astronomy JSON. |
weather-data weather-search | {q: str} | Search for locations matching query. Args: q (str): Location query. Returns: dict: WeatherAPI search JSON. |
e2b-server
Use e2b-server <command> '<JSON arguments>'. Run e2b-server <command> --help to get more information.
e2b-server run-code '{"code":"print(1 + 1)"}'
| Command | Arguments | Description |
|---|
e2b-server run-code | {code: str} | Run python code in a secure sandbox by E2B. Using the Jupyter Notebook syntax. |
pubmed
Use pubmed <command> '<JSON arguments>'. Run pubmed <command> --help to get more information.
pubmed search-pubmed-key-words '{"key_words":"QUERY","num_results":5}'
pubmed search-pubmed-advanced '{"term":"QUERY","num_results":5}'
pubmed get-pubmed-article-metadata '{"pmid":"PMID"}'
| Command | Arguments | Description |
|---|
pubmed search-pubmed-key-words | {key_words: str, num_results?: int = 10} | |
pubmed search-pubmed-advanced | {term?: str = null, title?: str = null, author?: str = null, journal?: str = null, start_date?: str = null, end_date?: str = null, num_results?: int = 10} | |
pubmed get-pubmed-article-metadata | `{pmid: str \ | int}` | |