diff --git a/README.md b/README.md index 84fa6a5..4df600f 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![CI](https://github.com/Escoto/RustifyMyClaw/actions/workflows/ci.yml/badge.svg)](https://github.com/Escoto/RustifyMyClaw/actions/workflows/ci.yml) [![GitHub release](https://img.shields.io/github/v/release/Escoto/RustifyMyClaw)](https://github.com/Escoto/RustifyMyClaw/releases/latest) [![Downloads](https://img.shields.io/github/downloads/Escoto/RustifyMyClaw/total)](https://github.com/Escoto/RustifyMyClaw/releases) +[![crates.io](https://img.shields.io/crates/v/rustifymyclaw)](https://crates.io/crates/rustifymyclaw) [![Chocolatey](https://img.shields.io/chocolatey/v/rustifymyclaw)](https://community.chocolatey.org/packages/rustifymyclaw) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Made with Rust](https://img.shields.io/badge/Made%20with-Rust-orange?logo=rust)](https://www.rust-lang.org) @@ -42,6 +43,10 @@ RustifyMyClaw runs locally. Messages in -> directly to your Agent, responses out 4. **Executor** spawns your CLI tool locally. Prompt passed through unmodified. 5. **Formatter** chunks the output respecting code blocks and UTF-8 boundaries, sends it back. +## Demos + +- [Demo: Install via Cargo](docs/demos/cargo/README.md) — install, configure, and run. + ## Features - Code-block-aware output chunking — fenced blocks never split mid-block, UTF-8 safe @@ -63,6 +68,12 @@ RustifyMyClaw runs locally. Messages in -> directly to your Agent, responses out curl -fsSL https://raw.githubusercontent.com/Escoto/RustifyMyClaw/main/scripts/install.sh | bash ``` +**crates.io (any platform with Rust installed):** + +```bash +cargo install rustifymyclaw +``` + **Windows (Chocolatey):** ```powershell @@ -169,6 +180,7 @@ Each channel connects using the platform's native protocol. No webhooks required | `/status` | Show current workspace, backend, and session state | | `/help` | List available commands | + ## Documentation - [Architecture](docs/architecture.md) — system design, data flow, and extension points diff --git a/docs/demos/cargo/README.md b/docs/demos/cargo/README.md new file mode 100644 index 0000000..08cb4e1 --- /dev/null +++ b/docs/demos/cargo/README.md @@ -0,0 +1,67 @@ +# Demo: Setting Up RustifyMyClaw + +![Demo](rustifymyclaw.gif) + +I began this project to interact with my Claude Code coach `Coach-Claudio`, which I am starting from scratch on [GitHub/Escoto/Coach-Claudio](https://github.com/Escoto/Coach-Claudio). + +## Pre-Requisites + +- Rust +- Cargo +- Claude Code +- Telegram Bot (and token) + 1. **Find and Start BotFather**, open Telegram and search for @BotFather (look for the verified blue checkmark). Click Start to begin the interaction. + + 2. **Generate Your Bot**, send the command /newbot. BotFather will ask you for two things: + - **Display Name**: The name users see (e.g., My Helper Bot). + - **Username**: A unique handle that must end in "bot" (e.g., helper_123_bot). + + 3. **Save Your API Token**, once the username is accepted, BotFather will send a success message containing your HTTP API Token. + +> [!CAUTION] +> Keep this token secret. It is the key to controlling your bot and +> connecting it to any software or code you write. + +## Steps + +Follow these steps to set up your own config file rather than using the system default. + +> This demo uses `cargo install`, but any [install method](../../../README.md#1-install) works — pick whichever you're most comfortable with. + +### 1. Install + +```sh +cargo install rustifymyclaw +``` + +### 2. Verify installation + +```sh +rustifymyclaw --version +``` + +### 3. Generate a config file + +```sh +rustifymyclaw config init -d . +``` + +### 4. Edit the config + +```sh +nano ./config.yaml +``` + +See the example config: [config.yaml](config.yaml) + +### 5. Validate + +```sh +rustifymyclaw --validate -f ./config.yaml +``` + +### 6. Run + +```sh +rustifymyclaw -f ./config.yaml +``` \ No newline at end of file diff --git a/docs/demos/cargo/config.yaml b/docs/demos/cargo/config.yaml new file mode 100644 index 0000000..42a4c77 --- /dev/null +++ b/docs/demos/cargo/config.yaml @@ -0,0 +1,16 @@ +workspaces: + - name: "Coach-Claudio" + directory: "C:\\repos\\apps\\Coach-Claudio" + backend: "claude-cli" + timeout_seconds: 300 + channels: + - kind: telegram + token: "${coach_claudio_token}" + bot_name: "@coach_claudio_bot" + allowed_users: + - "@me" + +output: + max_message_chars: 600 + file_upload_threshold_bytes: 51200 + chunk_strategy: "natural" diff --git a/docs/demos/cargo/rustifymyclaw.gif b/docs/demos/cargo/rustifymyclaw.gif new file mode 100644 index 0000000..0d0b903 Binary files /dev/null and b/docs/demos/cargo/rustifymyclaw.gif differ