Skip to content

The commit message generator that actually understands your code.

CommitBee parses your code with tree-sitter, maps diff hunks to symbol spans, and gives the LLM structured semantic context.

Every other tool just pipes your diff to an LLM and hopes for the best.

What other tools see

- fn validate(&self) -> bool {
-     self.token.len() > 0
- }
+ fn validate(&self) -> Result<(), AuthError> {
+     if self.token.is_empty() {
+         return Err(AuthError::EmptyToken);
+     }
+     self.check_expiry()?;
+     Ok(())
+ }

"update validate function"

What CommitBee sees

Symbol: validate()

Modified signature: bool -> Result<(), AuthError>

Evidence: BREAKING_CHANGE

Public API return type changed

Evidence: BUG_FIX

Error handling added (was ignoring failures)

"fix(auth)!: return Result from validate with expiry check"

A 7-stage pipeline from diff to commit

Watch how CommitBee processes your code, step by step.

Step 1 of 7
Git Service
Tree-sitter
Splitter
Context Builder
LLM
Validator
Sanitizer

Git Service

Reading staged changes...

3 files staged: auth.rs, config.rs, tests/auth_test.rs