cargo-prompt

Crates.iocargo-prompt
lib.rscargo-prompt
version
sourcesrc
created_at2025-02-15 20:08:04.571452+00
updated_at2025-03-08 06:40:50.243196+00
descriptionRecursively minify and concatenate source code into a markdown document for llm prompting
homepage
repositoryhttps://github.com/timschmidt/cargo-prompt
max_upload_size
id1557060
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Timothy Schmidt (timschmidt)

documentation

README

cargo-prompt

Recursively minify and concatenate source code into a markdown document for llm prompting. Optionally remove comments / documentation. Items in .gitignore are automatically excluded.

This can be useful for LLM assisted development when rapidly prompting with updated code, or when there is too much code to fit in the allowed context window.

install

cargo install cargo-prompt

run

cd my_cargo_project/
cargo prompt

remove comments / documentation

cd my_cargo_project/
cargo prompt -r

redirect to a file

cd my_cargo_project/
cargo prompt > saved_prompt.txt

target specific directory

cargo prompt /path/to/src/

other languages

javascript

cargo prompt -j
cargo prompt --javascript

python

cargo prompt -p
cargo prompt --python

java

cargo prompt --java

c / c++

cargo prompt -c
cargo prompt --c-cpp

csharp

cargo prompt -i
cargo prompt --csharp

php

cargo prompt -q
cargo prompt --php

ruby

cargo prompt --ruby

swift

cargo prompt -s
cargo prompt --swift

typescript

cargo prompt -t
cargo prompt --typescript

kotlin

cargo prompt -k
cargo prompt --kotlin

go

cargo prompt -g
cargo prompt --go

r

cargo prompt -r

matlab

cargo prompt -m
cargo prompt --matlab

vb

cargo prompt -v
cargo prompt --vbnet

perl

cargo prompt --perl

scala

cargo prompt --scala

dart

cargo prompt -d
cargo prompt --dart

groovy

cargo prompt --groovy

julia

cargo prompt --julia

haskell

cargo prompt --haskell

shell

cargo prompt --shell

lua

cargo prompt -l
cargo prompt --lua

all languages

cargo prompt -a
cargo prompt --all

example input

fizzbuzz/fizzbuzz.rs:

// Functions that "don't" return a value, actually return the unit type `()`
fn fizzbuzz(n: u32) -> () {
    if is_divisible_by(n, 15) {
        println!("fizzbuzz");
    } else if is_divisible_by(n, 3) {
        println!("fizz");
    } else if is_divisible_by(n, 5) {
        println!("buzz");
    } else {
        println!("{}", n);
    }
}

example output

# fizzbuzz

## ./fizzbuzz.rs

```rust
fn fizzbuzz(n:u32)->(){if is_divisible_by(n,15){println!("fizzbuzz");}else if is_divisible_by(n,3){println!("fizz");}else if is_divisible_by(n,5){println!("buzz");}else{println!("{}",n);}}
```

todo

Commit count: 23

cargo fmt