# 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
| `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.