Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danielbodnar/claude-cli
๐ค Claude CLI: An elegant interactive CLI for Anthropic's Claude API, built with TypeScript and Bun.js. By claude for claude.
https://github.com/danielbodnar/claude-cli
ai anthropic anthropic-claude bun claude claude-3-5-sonnet claude-ai cli llms
Last synced: 15 days ago
JSON representation
๐ค Claude CLI: An elegant interactive CLI for Anthropic's Claude API, built with TypeScript and Bun.js. By claude for claude.
- Host: GitHub
- URL: https://github.com/danielbodnar/claude-cli
- Owner: danielbodnar
- License: cc0-1.0
- Created: 2024-11-03T19:52:35.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-17T21:11:36.000Z (about 2 months ago)
- Last Synced: 2024-12-21T18:13:30.711Z (15 days ago)
- Topics: ai, anthropic, anthropic-claude, bun, claude, claude-3-5-sonnet, claude-ai, cli, llms
- Language: TypeScript
- Homepage:
- Size: 211 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ค Claude CLI
> An elegant interactive CLI for Anthropic's Claude API, built with TypeScript and Bun.js
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
## ๐ Table of Contents
Click to expand
- [Features](#-features)
- [Installation](#-installation)
- [Usage](#-usage)
- [Basic Commands](#basic-commands)
- [Templates](#templates)
- [Session Management](#session-management)
- [Configuration](#-configuration)
- [Examples](#-examples)
- [Development](#-development)
- [Contributing](#-contributing)
- [License](#-license)## โจ Features
- ๐ฏ Interactive chat sessions with Claude
- ๐ Smart code detection and file saving
- ๐จ Beautiful console interface with syntax highlighting
- ๐พ Auto-save and session replay
- ๐ Rate limiting and error handling
- ๐ฆ Template support for common use cases
- ๐งช Dry-run mode for testing
- ๐ Type-safe configuration with Zod## ๐ Installation
```bash
# Using bun
bun install -g claude-cli# Using npm
npm install -g claude-cli
```## ๐ฎ Usage
### Basic Commands
```bash
# Start a new chat session
claude-cli chat# Use a specific template
claude-cli chat --template rust# Replay a previous session
claude-cli replay# Show help
claude-cli --help
```### Templates
Available Templates
```typescript twoslash
// @filename: templates.ts
const templates = {
rust: {
name: 'Rust Expert',
description: 'Expert Rust development assistance',
systemPrompt: `You are an expert Rust developer...`
},
typescript: {
name: 'TypeScript Expert',
description: 'Expert TypeScript development assistance',
systemPrompt: `You are an expert TypeScript developer...`
}
}
```### Session Management
Sessions are automatically saved in `.claude-sessions` directory as YAML files:
```yaml
id: abc123
startTime: 1234567890
messages:
- role: user
content: Hello
timestamp: 1234567890
- role: assistant
content: Hi! How can I help you today?
timestamp: 1234567891
codeBlocks:
- filename: example.rs
language: rust
content: |
fn main() {
println!("Hello, world!");
}
```## โ๏ธ Configuration
Create a `.claude-cli.config.ts` file in your project root:
```typescript twoslash
// @filename: config.ts
export default {
templates: {
// Custom templates
myTemplate: {
name: 'My Template',
description: 'Custom template',
systemPrompt: 'Your system prompt here',
}
},
defaults: {
outputDir: './output',
model: 'claude-2',
autoSave: true,
sessionDir: './.claude-sessions',
}
}
```## ๐ Examples
Basic Chat Session
```bash
$ claude-cli chat
๐ค Welcome to Claude CLI!
๐ญ Your message: Help me write a Rust function to calculate Fibonacci numbersโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude:
โ I'll help you create an efficient Rust function for calculating Fibonacci numbers.
โ Here's an implementation using dynamic programming:
โ
โ ๐ fib.rs
โ fn fibonacci(n: u64) -> u64 {
โ if n <= 1 {
โ return n;
โ }
โ
โ let mut a = 0;
โ let mut b = 1;
โ
โ for _ in 2..=n {
โ let temp = a + b;
โ a = b;
โ b = temp;
โ }
โ
โ b
โ }
โ
โ Would you like me to save this file?
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```Using Templates
```bash
$ claude-cli chat --template rust
๐ค Rust Expert Mode Activated!
๐ญ Your message: How do I read a large JSON file efficiently?
...
```## ๐ ๏ธ Development
```bash
# Clone the repository
git clone https://github.com/danielbodnar/claude-cli.git# Install dependencies
bun install# Build
bun run build# Run tests
bun test# Run locally
bun run dev
```## ๐ค Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request## ๐ License
MIT License - see the [LICENSE](LICENSE) file for details
---
Made with โค๏ธ using Bun.js and TypeScript