Login button overlaps the footer on small screens
On a 375px wide screen the Sign in button sits on top of the footer links, so it cannot be tapped. Screenshot attached.
Labels
Activity
No comments yet.
Geekbot reviews merge requests on GitLab, GitHub and Bitbucket, turns tickets into branches and production errors into fixes. It runs in your pipeline and answers in the thread.
Works with
Retry webhook delivery with backoff
webhook-retry into main
41func deliver(ctx context.Context, hook Hook, body []byte) error {-res, err := client.Post(hook.URL, "application/json", bytes.NewReader(body))-if err != nil {-return err-}-return res.Body.Close()42+for attempt := 0; ; attempt++ {43+res, err := client.Post(hook.URL, "application/json", bytes.NewReader(body))44+if err == nil && res.StatusCode < 300 {45+return nil46+}47+time.Sleep(backoff(attempt))48+}49}
geekbotbotreviewedReading the change…
VERDICT: changes-needed
Two defects to fix before this merges.
Each one does one job, in the tools your team already uses, and stops where a decision belongs to someone on the team.
Reads every push to a merge request and leaves findings on the lines they are about, with a verdict on top.
Picks up a ticket labeled for it, writes the change on a branch and opens a merge request.
Takes a production error from Sentry or Bugsink, finds the cause and proposes the fix as a merge request.
Checks your lockfiles against known vulnerabilities on a schedule and keeps one merge request with the security updates.
Answers questions about your reviews, runs and code, and starts a task when you ask for a change.
The whole loop, as it runs on a real project. Geekbot never merges its own work.
You
Add the label in Jira or Linear. Screenshots and attachments on the ticket go to the agent with the text.
Coder
The Coder reads the ticket and the code, commits on a new branch and opens a merge request. The ticket moves to In progress.
Bug Fixer
The Bug Fixer picks it up from Sentry or Bugsink and joins the loop with a merge request of its own.
Reviewer
Findings land on the lines they are about. Reply with @geekbot to ask why, and the thread gets an answer.
Tester
A comment from someone with the tester role goes back to the same run, on the same branch.
You
Merging is always a person’s call. The ticket moves when the branch does.
The Coder watches Jira and Linear for its label. It says so on the ticket, works on a branch of its own and comes back with a link.
On a 375px wide screen the Sign in button sits on top of the footer links, so it cannot be tapped. Screenshot attached.
Labels
Activity
No comments yet.
Reply under a finding or mention @geekbot anywhere on the merge request. It explains itself, corrects the review when you tell it what it could not see, and hands the fix to the Coder when you ask.
Cache exchange rates at checkout
checkout-rate-cache into main
geekbotVERDICT: verifyOne thing needs a person to check.func NewCache(src Source) *Cache { return &Cache{src: src, ttl: 24 * time.Hour}
geekbotbot
ttl is 24 hours: confirm the rate provider's terms allow caching a rate that long. They are not in this repository.
Pick a reply to see how geekbot answers it.
}Reply as Jana
The first line of every note is a verdict, and on GitLab and GitHub it is also set as a label on the merge request. When the model is unsure, the answer is never a pass.
The Patcher reads your lockfiles, asks the OSV database what is affected and keeps one merge request per repository with the security updates. A clean repository costs nothing to check.
Scanned this morning, from the lockfiles alone.
Django3.2.03.2.25
requirements.txtCVE-2021-31542 +65
semver7.3.27.5.2
package-lock.jsonGHSA-c2qf-rxjj-qqgw
express4.17.14.21.2
package-lock.jsonGHSA-rv95-896h-c2vc +2
cookie0.5.00.7.0
package-lock.jsonGHSA-pxg6-pf52-xh8x
Paste a job into your CI configuration. Reviews run on your own runner, with a model key that exists for that one run.
Prefer no CI changes? Install the GitHub App or the Bitbucket app and reviews run on our workers instead.
Connects to
geekbot:code_review:
image: docker.io/geekcoderscz/geekbot:v2
stage: test # any stage your pipeline defines
id_tokens:
GEEKBOT_ID_TOKEN:
aud: https://broker.geekcoders.space # required: the broker issues the OpenRouter key from this token
variables:
GEEKBOT_BROKER_URL: https://broker.geekcoders.space
script:
- geekbot review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
timeout: 60m
An agent that reads your code has to be boring about where that code goes. These are the rules it runs under.
Every plan includes a monthly allowance of credits, and everyone in your organization is included. A credit is roughly one typical agent action (a review, a task). Heavier tasks and stronger models use more.
Prices during the beta
For a small team trying Geekbot on a few repositories.
$49/ month
100 credits included
For a team that wants every merge request reviewed.
$199/ month
450 credits included
For several teams running all five agents every day.
$749/ month
1,800 credits included
Past your plan, work continues at $0.60 per credit up to a monthly limit your owner sets. A limit of zero is a hard stop.
Prices are per month, in US dollars and exclusive of VAT. Czech VAT of 21% is added where the law requires it, and the checkout shows the final price before you pay.
You pay by card through the GoPay payment gateway as a monthly recurring payment, and you can cancel at any time. Every new organization starts with a free trial and no card. Visa and Mastercard, secured by 3-D Secure.
Frontier models through OpenRouter, chosen per project and per agent. You can also point an agent at an OpenAI-compatible endpoint you run yourself.
Geekbot does not train models. Requests go through OpenRouter only to providers that process data in the EU, keep no copy of it (zero data retention) and do not train on it.
Yes. The review is a CI job, so it runs wherever your runners do, including self-managed GitLab instances.
No. The reviewer only reads. The Coder, the Bug Fixer and the Patcher push their own branches and open merge requests. Merging stays with your team.
Work continues and is billed per credit up to the monthly limit your organization owner sets. With a limit of zero, new work stops until the next period.
In the Czech Republic, by Geekcoders.

We are letting teams in a few at a time during the beta. Tell us where your code lives and we will be in touch.