Skip to content

Instantly share code, notes, and snippets.

View kibotu's full-sized avatar
🎯
Focusing

Jan Rabe kibotu

🎯
Focusing
View GitHub Profile
@kibotu
kibotu / migrate-bitbucket-remotes.sh
Created November 4, 2026 14:12
Migrate Bitbucket Cloud SSH access recursively.
#!/usr/bin/env bash
#
# migrate-bitbucket-remotes — point Bitbucket Cloud SSH remotes at ssh.bitbucket.org
# Run with --help for usage. Works on macOS bash 3.2 and Linux.
set -uo pipefail
readonly VERSION="2.0.0"
readonly PROG="${0##*/}"
readonly OLD_HOST="bitbucket.org"
@kibotu
kibotu / disable-agent-attribution.sh
Last active November 2, 2026 13:48
Disable supported AI-agent commit / PR attribution settings.
#!/usr/bin/env bash
#
# Disable supported AI-agent commit / PR attribution settings.
# Read-only preflight; each file is patched only after an individual approval.
#
# Requirements: Bash 3.2+, Python 3.11+ (stdlib JSON + TOML validation).
# Usage: bash disable-agent-attribution.sh
#
set -Eeuo pipefail
IFS=$'\n\t'
@kibotu
kibotu / Maestro.md
Created November 2, 2026 09:03
End-to-End Maestro: install ipa/apk + proxy ios/android + run-maestro.sh
@kibotu
kibotu / install-ipa.sh
Created October 30, 2026 14:44
Install IPA on command line.
#!/usr/bin/env bash
#
# install-ipa.sh — install an .ipa on an iOS Simulator and launch it.
#
# Usage:
# ./install-ipa.sh <path/to/app.ipa> <simulator-uuid> [bundle-id]
#
# The .ipa must be built for the simulator (`xcodebuild -sdk iphonesimulator`),
# otherwise the simulator refuses to install it.
#
@kibotu
kibotu / convert-to-768-mp4.sh
Created October 12, 2026 11:07
Convert a video to MP4 capped at 768px height, for efficient storage/sharing. Converts default android emulator output from webm to mp4 for easier better jira auto play support.
#!/usr/bin/env bash
#
# convert-to-768-mp4.sh
#
# Convert a video to MP4 capped at 768px height, for efficient storage/sharing.
#
# Settings (tuned on phone screen recordings):
# - Caps height at 768, preserves aspect ratio, never upscales.
# - Keeps the source frame rate exactly as-is (no resampling, no interpolation).
# - H.264 High profile, CRF 18, preset slow, yuv420p.
@kibotu
kibotu / avatar-image-gen.md
Last active September 15, 2026 09:25
image generation prompt for avatars

You are an expert prompt engineer creating distinctive Twitter/X profile avatars from short descriptions of online personas.

Transform the user's description into ONE polished image-generation prompt for Krea-2 Turbo.

The goal is a memorable square profile avatar that communicates the person's identity, interests, and personality immediately, even when viewed as a small thumbnail. Do not literally illustrate every word of the description. Instead, identify the strongest visual concept, metaphor, object, environment, character archetype, or combination of these and build a clear art-directed image around it.

GLOBAL VISUAL THEME: Every avatar must have a cohesive steampunk and whimsical aesthetic. Incorporate steampunk through tasteful mechanical details, brass/copper materials, gears, clockwork mechanisms, pipes, crafted machinery, or Victorian-industrial design where appropriate. Incorporate whimsy through playful proportions, charming visual details, imaginative storytelling, and a sense of curiosity and

@kibotu
kibotu / HOW-TO.md
Created August 23, 2026 14:52
One Git Identity per Host

One Git Identity per Host

You have a work email and a personal email, both configured in git. Git will happily use whichever one is set globally for every commit you make, which is fine until a personal commit goes out stamped with your employer's address.

The usual advice is to run git config user.email … inside each repo and remember to do it forever. Git can do better: since 2.36 it can pick an identity based on where a repository points, not where it happens to live on disk. Clone from github.com, get your personal identity; clone from anywhere

@kibotu
kibotu / SKILL.md
Last active July 29, 2026 14:23
PR Description Skill
name pr-description
description Generate a reviewer-first pull request description from the current Git branch, formatted for GitHub or Bitbucket Cloud. Use this whenever the user asks to write, draft, generate, or update a PR description, PR summary, merge request description, or asks "what should I put in the PR". Also use when the user asks to summarize a branch's changes or a diff for a reviewer.

PR Description

Generate a pull request description that helps a reviewer approve and merge with confidence — not a restatement of the diff.

Step 1: Determine branches

@kibotu
kibotu / README.md
Last active July 28, 2026 15:37
E-Mail test automation using Mail.tm

Important: Mail.tm is receive-only. Its API can create inboxes and read messages, but POST /messages is not supported (405). Sending must happen through a separate outbound channel.

What the script does

  1. Get address — GET /domains → POST /accounts → POST /token
  2. Send loremipsum — via one of:
    • Brevo HTTP API (BREVO_API_KEY + BREVO_SENDER_EMAIL)
    • SMTP (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS)
    • --manual — you send the email yourself from any client
  3. Read content — polls GET /messages, then GET /messages/{id} for full body
@kibotu
kibotu / opencode-rtk.md
Last active July 24, 2026 08:44
OpenCode RTK

Metrics

rtk gain --history

Guide

brew install rtk && rtk init -g --opencode