AI Code Review Agent for your code changes
See what your reviewers would miss.
AI code review for your repository that understands your whole codebase, not just the diff.
How it works
From connect to review in three steps.
- Step 1
Connect a GitLab repo
Sign in with GitLab and choose the projects you want CodeOrin to review.
- Step 2
CodeOrin reads the whole codebase
Once your repo is connected, CodeOrin indexes it, so every review understands the full context.
- Step 3
Reviews every code change automatically
On every code change, CodeOrin comments on the exact lines that need attention and generates the change description.
Features
A careful reviewer on every code change.
Repo-aware context
Your codebase is indexed for semantic search, so every review sees the code a change touches, not just the diff.
Inline MR comments
Findings are anchored to the exact file and line, right where your team already reviews.
Severity you can triage
Bugs, security issues, breaking changes and performance concerns, each ranked low, medium or high.
MR descriptions, written
A structured summary of each change: what it does, database changes, and release notes.
Reviews on every push
A webhook starts a review when an MR is opened, reopened or gets new commits. Nothing to trigger.
Polyglot by default
TypeScript, JavaScript, Python, Go, Java, PHP, Ruby, C and C++, parsed into functions and classes.
Pricing
Start free. Scale when your team does.
Pick the plan that fits how many repositories you want reviewed.
Free
Try CodeOrin on a single repository.
$0/month
- 1 project
- 5 merge request reviews per month
- Inline MR comments
- MR descriptions, written
- Popular
Pro
For teams reviewing across a few repositories.
$20/month
- 5 projects
- Repo-aware reviews on every push
- Inline MR comments
- MR descriptions, written
Custom
For organisations with more projects or specific needs.
Custom
- As many projects as you need
- Review volume to match your team
- Priority support
usercan benullhere. The guard on line 14 was removed, so this throws for unknown ids.Suggestion: keep
if (!user) return nullbefore fetching the profile.