# CI Shell - Workflow node | Docs - nodulz

Source: https://nodulz.com/docs/nodes/ci_shell

Language: en

Runs shell commands in the run workspace

## Usage and specifics

Run commands in the run workspace using the selected execution target. Create or select the workspace first.

Technical type : `ci_shell`. Runtime : `docker`.

## Credentials and prerequisites

This node defines no dedicated external credential. Remote sources or execution targets may still need their own access credentials.

See the [credentials guide](/docs/credentials) if a remote source or execution target requires access.

## Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

| Parameter | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `commands` | `array` | `["echo \"hello\""]` | -; min 1 |
| `workingDir` | `string` | - | - |
| `image` | `string` | - | - |
| `secretCredentialIds` | `array` | `[]` | - |
| `secretFiles` | `array` | `[]` | -; max 20 |
| `secretFiles[].path` | `string` | - | -; min 1, max 1024 |
| `secretFiles[].content` | `string` | - | -; max 1048576 |
| `workspaceSource` | `union` | `{"kind":"upstream"}` | - |
| `workspaceSource.kind` | `literal` | `"upstream"` | `upstream`, `node` |
| `workspaceSource.key` | `string` | - | -; min 1 |
| `executionTarget` | `union` | `{"kind":"host"}` | - |
| `executionTarget.kind` | `literal` | `"host"` | `host`, `remote_server`, `kube`, `swarm` |
| `executionTarget.serverId` | `string` | - | -; min 1 |
| `executionTarget.provider` | `enum` | - | `aws`, `gcp`, `scaleway`, `ovh`, `azure`, `digitalocean`, `hetzner` |
| `executionTarget.clusterId` | `string` | - | -; min 1 |
| `executionTarget.namespace` | `string` | - | - |

## Configuration help

| Setting | Purpose and guidance |
| --- | --- |
| `commands`<br>Commands | e.g. bun install && bun run check |
| `workingDir`<br>Working directory (relative) | Workspace subdirectory where commands run (e.g. apps/backend). |
| `image`<br>Container image (shell) | Image containing the tools your commands need. Defaults: oven/bun:1 for Shell and Verify; node:22-bookworm for Release. |
| `secretCredentialIds`<br>Secrets | Secrets connections injected as environment variables of the script (process.env, os.environ...). The file carrying them is deleted as soon as the container starts. |

## Examples

- e.g. bun install && bun run check
- Default: nearest upstream checkout on this branch

## Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

```json
{
  "commands": [
    "echo \"hello\""
  ],
  "workspaceSource": {
    "kind": "upstream"
  },
  "executionTarget": {
    "kind": "host"
  }
}
```

## Verification

Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.

See also : [Expressions and data](/docs/expressions), [Executions](/docs/executions), [Node catalog](/docs/nodes).

## Explore further

- [Features - nodulz](https://nodulz.com/product/overview)
- [Node catalog - nodulz](https://nodulz.com/product/catalog)
- [MCP server - nodulz](https://nodulz.com/product/mcp)
- [Pricing - nodulz](https://nodulz.com/pricing)
- [Use cases and workflow automation - nodulz](https://nodulz.com/use-cases)
- [Choose what your workflows can do. - nodulz](https://nodulz.com/compare)
- [Documentation - nodulz](https://nodulz.com/docs)
