claude_runner_core 1.0.0

Claude Code process execution with builder pattern
Documentation
# allowed_tools

Allowlist of tools Claude is permitted to use in the session.

## Type

**CLI** — comma or space-separated list

## Syntax

```
claude --allowed-tools <tools...>
claude --allowedTools <tools...>
```

## Default

All built-in tools available

## Description

Restricts Claude to only the specified tools. Tools not in the list are unavailable, even if normally accessible.

Tool names follow the Claude Code tool naming convention:
- Built-in tools: `Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `WebFetch`, `WebSearch`, `Agent`, `NotebookEdit`
- With subcommand restrictions: `Bash(git:*)` — allow only git commands in Bash
- MCP tools: `mcp__server-name__tool-name`

Accepts comma-separated or space-separated lists.

## Builder API

Use `with_allowed_tools()` — Accepts an iterator of tool name strings (space-separated on CLI).

```rust
use claude_runner_core::ClaudeCommand;

let cmd = ClaudeCommand::new()
  .with_allowed_tools( [ "Bash", "Read", "Write" ] )
  .with_message( "Use only these tools" );
```

## Examples

```bash
# Read-only tools only
claude --allowed-tools "Read,Glob,Grep" --print "Analyze the codebase structure"

# Allow bash but only git commands
claude --allowed-tools "Bash(git:*) Read" --print "What's in the recent commits?"

# Allow specific MCP tool
claude --allowed-tools "mcp__github__create_issue Read" --print "File a bug"
```

## Notes

- Empty string `""` disables all tools (see `--tools ""`)
- Use `--disallowed-tools` to block specific tools while keeping all others available
- `--tools` completely overrides the tool set; `--allowed-tools` is additive filtering