Skip to content

Latest commit

 

History

History
45 lines (28 loc) · 1.98 KB

File metadata and controls

45 lines (28 loc) · 1.98 KB

Acknowledgements

Original Project: brush-shell

kodegen-bash-shell is a permanent fork of brush-shell, a POSIX- and bash-compatible shell implemented in Rust.

Original Author

Reuben Olinsky (@reubeno)

We extend our sincere gratitude to Reuben Olinsky for creating brush-shell and releasing it under the MIT License, making this fork possible.

Original Project

  • Repository: https://github.com/reubeno/brush
  • License: MIT License
  • Version Forked: v0.4.0 (brush-core), v0.3.0 (brush-parser), v0.1.0 (brush-builtins)
  • Fork Date: December 2025

Why We Forked

brush-shell is an excellent POSIX/bash-compatible shell. However, for our use case in kodegen-tools-terminal (an MCP tool for AI code generation agents), we needed the ability to programmatically interrupt running commands via a cancellation token.

The upstream brush-shell executes commands synchronously via run_string(), and while it handles SIGINT gracefully when running as an interactive terminal, there is no mechanism to cancel execution programmatically from an embedding context.

This fork adds:

  • CancellationToken support in ExecutionParameters
  • Cooperative cancellation checking in ChildProcess::wait()
  • The ability to interrupt long-running commands from the embedding application

Original Credits (from brush-shell)

brush-shell relies on excellent OSS crates:

License

This fork maintains the original MIT License. See LICENSE for full terms.

Both the original work by Reuben Olinsky and modifications by KODEGEN.AI are covered under the MIT License.