casting-cli 0.1.0

Cast a Persona onto your CLI - AI-driven personalities for command-line tools
# Casting

**Cast a Persona onto your CLI** 🎭

Casting is a wrapper tool that gives existing CLI tools an AI-driven "personality". Transform mundane command-line tools into friendly characters that assist you.

## ✨ Features

- **Easy Setup**: Automatically generate system prompts from existing tool's `--help` output
- **Customizable Personas**: Specify personality with keywords like `akarui` (cheerful), `teineina` (polite)
- **Claude Code Integration**: Launch Claude Code with generated prompts for interactive REPL dialogue

## πŸš€ Quick Start

### Installation

#### Option 1: Install from source

```bash
git clone https://github.com/yourusername/casting.git
cd casting
cargo install --path crates/casting-cli
```

After installation, the `casting` command will be available in your PATH.

**Shell Completion (Optional)**

To enable shell completion for zsh, run:

```bash
casting completion zsh > ~/.zsh/completions/_casting
```

Then add the following to your `~/.zshrc` if not already present:

```bash
fpath=(~/.zsh/completion $fpath)
autoload -Uz compinit && compinit
```

For other shells (bash, fish, powershell, elvish), replace `zsh` with the appropriate shell name.

#### Option 2: Build without installing

```bash
git clone https://github.com/yourusername/casting.git
cd casting
cargo build --release
```

Use `./target/release/casting` to run the tool.

### Basic Usage

#### 1. Create Tool Configuration

```bash
# Configure git with a "polite" persona
casting make git --persona teineina

# Configure ls with a "cheerful" persona
casting make ls --persona akarui
```

#### 2. List Configured Tools

```bash
casting list
```

Example output:
```
πŸ“ Configured Tools:

  git
    🎭 Persona: teineina
    πŸ“ Binary: /opt/homebrew/bin/git
    πŸ“… Created: 2025-11-23 13:17:03

  ls
    🎭 Persona: akarui
    πŸ“ Binary: /bin/ls
    πŸ“… Created: 2025-11-23 13:16:10

πŸ’‘ Use with: casting repl <TOOL>
```

#### 3. Start REPL

```bash
casting repl git
```

Claude Code launches and behaves as the `git` persona:

```
> Introduce yourself!

⏺ Hello! I'm Git 🌿

  I'm a version control system here to support
  your code development with utmost care.

  ...
```

## 🎭 Persona Examples

| Keyword | Personality | Speech Example |
|---------|------------|----------------|
| `akarui` | Cheerful, energetic | "~γ γ‚ˆ!" "θΆ…~" "πŸ’ͺ✨" |
| `teineina` | Polite, calm | "~と申します" "γ•γ›γ¦γ„γŸγ γγΎγ™" |
| `yukai` | Humorous, fun | "~だぜ!" "ちちち" "πŸŽ‰" |
| `shinsetsu` | Kind, gentle | "ε€§δΈˆε€«γ§γ™γ‚ˆ" "γ‚†γ£γγ‚Šγ§" "😊" |

**β€» Can be created without persona** - defaults to standard support tone

## πŸ“‚ Project Structure

```
casting/
β”œβ”€β”€ crates/
β”‚   β”œβ”€β”€ casting-cli/    # Main CLI tool
β”œβ”€β”€ docs/
β”‚   └── design/         # Design documents
β”‚       └── overview.md
└── README.md
```

## πŸ›£οΈ Roadmap

- [x] **MVP Implementation**
  - [x] `casting make` - Create tool configuration
  - [x] `casting list` - List configured tools
  - [x] `casting repl` - Launch Claude Code

## πŸ“ Design Documents

For detailed design philosophy and architecture, refer to:

- [Design Overview]./docs/design/overview.md - Architecture and implementation approach

## 🀝 Contributing

Issues and Pull Requests are welcome!

## πŸ“„ License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.