junebug
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 3 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Agent skill that reduced the natural language to what's important. Stay with the most relevant answers for shorter attention span while cutting the word count. Priority is accuracy and human readability rather than token reduction.
Junebug
Say it plain
Make your AI agent talk like a smart person explaining things to someone
with a limited attention span and/or smaller vocabulary, who has only about 45 seconds to read.
Same facts, no filler, nothing you'd need to look up.
Junebug is a skill written from human for human.
Long code reviews cut to what's actually wrong. Architecture questions answered without three paragraphs of setup. Technical explanations that don't take longer to read than the code they describe. If your time is worth something, every word the agent wastes is a small tax — Junebug stops that.
See it · Install · Levels · What you get · Benchmarks · How it works
Junebug is a skill for Claude Code, Codex, Gemini, Copilot, and many more agents. The agent drops filler,
hedging, and politeness, and answers in plain, correct English — code,
commands, and error strings stay exact. Every fact that matters stays in
the answer.
Junebug is built for readers who lose focus fast. Long paragraphs,
hedging, and build-up before the point give attention somewhere to slip.
Short, plain, fact-first answers are easier to stay with start to finish.
If you're the kind of reader who gets pulled away mid-paragraph, or reads
a wall of text twice and still isn't sure what it said, this is for you.
Junebug removes the parts that cause that: no throat-clearing, no rare
words to stop and decode, no wandering before the fact arrives. Fewer
places for attention to drift, so the important part actually lands.
Same facts. Fewer words. Nothing technically lost.
Junebug doesn't make the agent dumber or speak like something from the past. It makes the agent's mouth
smaller — shrinks what it says, not what it knows.
Before / After
| Normal | Junebug |
|---|---|
|
Question: Review this code. Answer: Good catches already flagged in the comments. A few more worth adding: Data race, not just a leak. The three goroutines all write to the package-level dbConnection with no mutex, and main doesn't read it after, so the goroutines are pure noise — spawned, they race each other, and the result is discarded. Run this with go run -race and it'll flag the race immediately. Closure over the loop variable. In Go versions before 1.22, i inside the goroutine closure refers to the shared loop variable, so all three goroutines could see the same (final) value of i rather than 0, 1, 2. Go 1.22+ fixed this by giving each iteration its own i, but the code shouldn't rely on knowing which semantics apply — pass i as a parameter instead: go func(i int) { ... }(i). time.Sleep as a synchronization mechanism. Waiting 100ms and hoping the goroutines finished is fragile — under load or on a slow machine it can fail silently. Use sync.WaitGroup instead. Swallowed error produces wrong output. result, _ := someRiskyOperation() discards the error, so main prints an empty string instead of surfacing "something went wrong." At minimum log it; better, handle or propagate it. queryData is dead code that panics on a valid input path. It's never called, but if it were, panicking on val == 0 instead of returning an error means any caller has to guard against zero externally or crash the program — panics should be reserved for truly unrecoverable states, not normal input validation. dbConnection as a global, set via init(). Already flagged, and worth adding: naming it "secret" and hardcoding it in source is a red flag for real code — secrets belong in env vars or a secrets manager, not compiled into the binary. Net effect: nothing in main actually uses the result of the goroutines or someRiskyOperation correctly, so functionally this program does almost nothing safely — it just demonstrates the anti-patterns. If you want, I can rewrite it with the fixes (WaitGroup, mutex or channel instead of shared state, proper error propagation, no panic) — happy to do that if this is meant to become production code rather than a teaching example. |
Question: Review this code. Answer:
Fix priority: #2 and #3 first (silent failures + races are the dangerous ones). Show more? |
| Normal | Junebug |
|---|---|
|
Question: How can I travel at the speed of light? Answer: You can't — at least not if you have mass, which you do. Einstein's special relativity says that as an object with mass accelerates, the energy required to keep speeding it up grows without bound as it approaches the speed of light. To actually reach c, you'd need infinite energy, which isn't physically possible. There's also the issue that time dilation and length contraction become extreme as you approach c, and at c itself the math breaks down (time would stop, length would contract to zero) — the equations simply don't allow a massive object to occupy that speed. Only massless particles, like photons, travel at the speed of light, and they do so because they have no rest mass to accelerate in the first place. What you can do is get close. Particle accelerators like the LHC push protons to something like 99.9999991% of light speed. At those speeds, relativistic effects become significant, including some real time dilation, where a fast-moving particle or traveler experiences less elapsed time than someone at rest. That's the basis of the classic "twin paradox" thought experiment. If you're curious about the physics reasons behind this (why mass and light speed don't mix) or about real proposals for very fast interstellar travel, like light sails or theoretical concepts like the Alcubierre warp drive, happy to go into either. |
Question: How can I travel at the speed of light? Answer: You can't. Here's why:
Read more? |
Install
Turn it on: type /junebug or say "junebug mode."
Turn it off: say "stop junebug mode" or "normal mode."
Claude Code
From the terminal:
claude plugin marketplace add skycube/junebug && claude plugin install junebug@junebug
Or from within Claude:
/plugin marketplace add skycube/junebug
/plugin install junebug@junebug
(Send as two separate prompts.) Or drop skills/junebug/SKILL.md into your project's skills/ folder manually.
GitHub Copilot CLI
copilot plugin marketplace add skycube/junebug
copilot plugin install junebug@junebug
In an interactive Copilot CLI session, use the slash equivalents:
/plugin marketplace add skycube/junebug
/plugin install junebug@junebug
Instruction-only fallback: append skills/junebug/SKILL.md to .github/copilot-instructions.md in your project, or to ~/.copilot/copilot-instructions.md to run junebug in every project.
Codex
codex plugin marketplace add skycube/junebug
codex plugin add junebug@junebug
Or append skills/junebug/SKILL.md to your project's AGENTS.md. VS Code with the Codex extension reads AGENTS.md too — this repo ships one, so cloning it is enough.
Gemini CLI
gemini extensions install https://github.com/skycube/junebug --consent
Or append skills/junebug/SKILL.md to GEMINI.md in your project.
Any other agent
Copy skills/junebug/SKILL.md into whatever file your agent loads as its system prompt or rules. Then invoke with /junebug or "junebug mode" as usual.
Pick your level
Two levels. Switch anytime with /junebug <level>. Level sticks until
you change it or the session ends.
| Level | Budget | What changes |
|---|---|---|
| normal agent | — | Full sentences, hedging, pleasantries, no cap on length. |
full (default) |
~150 words / 45 sec | Plain vocabulary, no filler, no politeness, 3-option cap. |
lite |
~300 words / 90 sec | Same rules, double the room — for answers that need more space to stay correct. |
Speaks your language. Junebug keeps your input language and only
compresses the style. Write Portuguese, get tightened Portuguese back.
Code, CLI commands, API names, commit-type keywords, and exact error
strings always stay verbatim, regardless of reply language.
What you get
| Behavior | What it does |
|---|---|
/junebug [full|lite] |
Compress every reply. Level sticks for the session. |
| Auto-pause | Drops to normal, full detail for system-relevant or security-related content, or anything needing approval — resumes right after. |
| Boundary | Never applies to docs, PRs/MRs, or commit messages — those stay normal, full sentences. |
Benchmarks
Junebug isn't built to cut tokens — it's built so a reader with a
limited attention span and/or smaller vocabulary can follow the answer
start to finish. That said, cutting filler, hedging, and politeness
happens to produce a large drop in output tokens as a side effect.
Token Usage:
| Task | Normal | Junebug | Saved |
|---|---|---|---|
| Review this code | 535 | 160 | 70% |
| How can I travel at the speed of light? | 350 | 120 | 65% |
Reading Time:
| Task | Normal | Junebug | Saved |
|---|---|---|---|
| Review this code | 3 min 39 sec | 1 min 12 sec | 67% |
| How can I travel at the speed of light? | 2 min 15 sec | 0 min 54 sec | 60% |
How it works
- Install drops a skill file into your agent.
- Skill tells the agent: drop filler, politeness, and hedging; keep
every fact, and never touch code, commands, or error strings. - Auto-pause rule keeps security-relevant or approval-needed content in
full detail — Junebug never compresses safety-critical replies. - Boundary rule keeps external-facing writing (docs, PRs,
commits) untouched — Junebug only governs the chat reply.
FAQ
Can I use it with caveman?
Yes. Caveman makes the agent talk like a caveman — short, blunt, tribal grammar. Junebug makes the agent talk in plain, correct English for readers with a short attention span. Different styles, same goal: less to read. They don't conflict; run both and you get terse caveman-style answers that are also plain and fact-first.
Does it make the agent less accurate?
No. The filter cuts filler, hedging, and politeness — not facts. The rule is: simple and correct, never simple and vague. If a fact needs more space to stay accurate, Junebug uses the space.
Does it work in languages other than English?
Yes. Junebug matches whatever language you write in and compresses the style, not the language. Write in Portuguese, get tightened Portuguese back. Code, CLI commands, API names, and exact error strings always stay verbatim regardless of reply language.
Does it need a config file or account?
No. Junebug is a plain text file loaded into your agent. No telemetry, no accounts, no backend calls beyond your normal agent usage.
Junebug turned itself off and gave me a longer answer — is that a bug?
No, that's the auto-pause rule. When Junebug decides an answer genuinely needs more space to stay accurate or safe, it steps back and gives you the full detail. To override it and get a Junebug-style version anyway, just type /junebug again and it will rerender the previous answer in compressed form.
Who is this actually for?
Time-poor readers who already know what they're doing — lead engineers, experienced developers, anyone who doesn't need ten options and three paragraphs of setup before the actual answer. If you read fast, decide fast, and lose patience with hedging, this is for you.
How can I contribute?
Open an issue first — no issue, no pull request. Junebug is a skill written from human for human, not by or for bots. Any issue or pull request that appears to be bot-generated will be closed without review.
Privacy
Junebug is a prompt, not a service. No telemetry, no accounts, no
backend calls beyond your normal Claude or Copilot usage.
Contributing
See CONTRIBUTING.md. Open an issue first — no issue, no pull request.
License
MIT License. See LICENSE for details.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found
