READ BEFORE WRITING
Kibo inspects the repository before proposing changes.
KiboCode inspects repositories, plans changes, writes patches, runs verification and prepares execution without hiding what it changed.
PLAN → BUILD → VERIFY → EXECUTE
Numbers come from this site’s own build-time verification (scripts/site-facts.mjs). The story is a visual walkthrough; nothing here executes.
Every task moves through the same pipeline, and every stage leaves a record you can read.
You describe the outcome, not the keystrokes.
Kibo decomposes the task into an ordered, visible plan.
It reads the repository before it proposes anything.
Changes arrive as patches you can review line by line.
Lint, tests and builds run for real and produce logs.
Kibo prepares the action. You approve it.
Kibo inspects the repository before proposing changes.
Every modification is presented as a reviewable diff.
Linting, tests and builds produce real execution logs.
Kibo prepares the action. You decide whether it happens.
Inspect, plan, verify. The terminal below replays output recorded when this site was built: KiboCode’s own pipeline inspecting and verifying the kibocode repository. In the console every line comes from the repository you connect and the commands that actually ran.
Replay starts when scrolled into view
Before a single line changes, Kibo maps the structure, the framework and the dependencies, then reports what it actually found. Below: this site's own repository, analysed when it was built.
Findings come from actual repository content. If nothing is wrong, Kibo says ‘No issue detected.’
Kibo pulls the file out of the tree, proposes a change, and shows you exactly what moved. You accept or reject each hunk.
The server rendered the motion wrapper while a reduced-motion client rendered a plain div, so React discarded and rebuilt the tree on load. The reveal now renders identical markup everywhere and simply completes instantly when motion is reduced.
This change was reviewed and shipped in KiboCode’s own source. In the console every patch Kibo proposes is presented exactly like this.
| @@ -1 +1 @@ | ||
| 1 | 1 | 'use client' |
| 2 | 2 | |
| 3 | -import { motion, useReducedMotion } from 'framer-motion' | |
| 3 | +import { motion } from 'framer-motion' | |
| 4 | +import { useReducedMotionSafe } from './useReducedMotionSafe' | |
| 4 | 5 | import type { ReactNode } from 'react' |
| 5 | 6 | |
| 6 | 7 | /** |
| 7 | 8 | * Fade/slide-in when the element scrolls into view. Transform + opacity |
| 8 | - * only; with reduced motion it renders a plain div (everything visible). | |
| 9 | + * only. The markup is identical on the server and the client (no hydration | |
| 10 | + * mismatch); under reduced motion the reveal simply completes instantly. | |
| 9 | 11 | */ |
| 10 | 12 | export function Reveal({ children, className = '', delay = 0, x = 0, y = 18, amount = 0.25 }: { children: ReactNode; className?: string; delay?: number; x?: number; y?: number; amount?: number }) { |
| 11 | - const reduce = useReducedMotion() | |
| 12 | - if (reduce) return <div className={className}>{children}</div> | |
| 13 | + const reduce = useReducedMotionSafe() | |
| 13 | 14 | return ( |
| 14 | - <motion.div className={className} initial={{ opacity: 0, x, y }} whileInView={{ opacity: 1, x: 0, y: 0 }} viewport={{ once: true, amount }} transition={{ duration: 0.45, delay, ease: 'easeOut' }}> | |
| 15 | + <motion.div | |
| 16 | + className={className} | |
| 17 | + initial={{ opacity: 0, x, y }} | |
| 18 | + whileInView={{ opacity: 1, x: 0, y: 0 }} | |
| 19 | + viewport={{ once: true, amount: reduce ? 0 : amount }} | |
| 20 | + transition={reduce ? { duration: 0 } : { duration: 0.45, delay, ease: 'easeOut' }} | |
| 21 | + > | |
| 15 | 22 | {children} |
| 16 | 23 | </motion.div> |
| 17 | 24 | ) |
Linting, tests and builds run in a sandbox and produce logs you can open. Kibo reports what ran, not what it hoped would run. Below: the checks that ran on this site's own repository at build time.
(no output captured)
(no output captured)
ℹ tests 31 ℹ suites 0 ℹ pass 31 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1229.08685
Do not claim a test passed unless it actually ran. If no sandbox is configured, KiboCode says: ‘Execution provider is not configured.’
Kibo can prepare execution, but the user remains in control. Nothing consequential happens until a human says yes.
Pushing a branch, opening a pull request, sending a transaction: each one becomes an Approval record that a human must decide.
Approvals decided: 0 · pending: 0 · tasks: 0 · runs: 0
The gate only opens on an explicit APPROVE. Rejected work stays as a reviewable draft.
Paste an address. Kibo reads the on-chain bytecode and verified source, then lists capabilities in plain language.
PUSH4 0x8da5cb5b owner() in implementation bytecode
PUSH4 0xa217fddf DEFAULT_ADMIN_ROLE() in implementation bytecode
PUSH4 0x3659cfe6 upgradeTo(address) in implementation bytecode
Proxy type EIP-1967 → implementation 0x68184c449e1a8f34fa18d289737129fd27b66f8f
PUSH4 0x40c10f19 mint(address,uint256) in implementation bytecode
+1 more in the full report
Automated inspection is informational and is not a security audit.
Signals come from the chain and the verified source. If the RPC is unreachable, Kibo says ‘RPC unavailable’ instead of guessing.
Open inspectorEach task produces an append-only sequence of RunEvent records. You can read exactly what Kibo saw, changed, ran and waited for.
The timeline on the left was recorded by scripts/site-facts.mjs while it inspected and verified this repository at build time. Console runs write the same RunEvent types to the database, one row per event, as they happen.
Records are never rewritten. A failed command is logged as a COMMAND followed by an ERROR, not quietly dropped. GITHUB and CHAIN events carry the real URL or transaction hash they refer to.
If a provider is missing, the run records the exact error state — for example ‘GitHub disconnected’ — instead of a guess.
Kibo doesn’t just answer questions about your code.
Kibo reads it. Plans the work. Builds the patch. Verifies the result.
Then waits for you to say yes.