Repository navigation
Mascot intro, --yolo and a launch prompt, ~/.agents/skills, and the Omarchy theme - #18
Merged
Merged
Conversation
Codeep.svg (the README logo) was the variant whose four inner chevrons were scaled to ~84% and thinned from 104 to 65 units, so they no longer matched the corner brackets. It is now the same geometry as codeep.dev's logo and the Mac app icon: brackets 312 long and 104 thick, chevrons 104 thick with their tips on the outer edge, on a clean 960 grid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
- components/mascot.ts: the pixel creature from Codeep Maskot.svg in half blocks (one cell = two pixels), 16 columns x 7 lines. Idle, look-left, look-right and blink frames differ only on the pupil row; ▐█▌ moves the pupils by half a cell, so they never touch the eye's rim. - The startup intro (App.renderIntro) draws it left of the wordmark, 3 columns apart, the pair centred, with the wordmark on mascot lines 1..6. The mascot skips the noise/decrypt effect: it is idle from the first frame, then glances centre, left, centre, right, holds centre, and blinks once as the wordmark finishes. The steps scale with the decrypt length (250 ms each over the App's 1.5 s). Below 72 columns the layout is exactly the old wordmark-only one. - The decrypt phase now starts at progress 0: the noise phase's last tick scheduled a render after the switch, which read its random progress as decrypt time (a random first mascot frame, and a glitched first wordmark frame that predates this change). - Intro.ts (showIntro/showLogoStatic, currently unused) follows the same layout so the two don't drift. - No timers added (it reuses the intro's intervals); SPINNER_FRAMES, the agent panel, ACP/Zed and non-TUI output are untouched. - Tests: frames are 7x16 and differ only on line 1; layout centring, gap and the 72/71-column fallback; the glance/blink sequence at 1000 and 1500 ms; and the real startIntro under fake timers yields idle, left, idle, right, idle, blink. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
Codeep Review — Score: 0/100 ❌
|
Owner
Author
|
Re the Codeep Review above: all 18 items are info/suggestion, and they stay as is.
Generated by Claude Code |
The marketplace was trimmed to 9 entries when the catalog was synced (src/utils/mcpMarketplace.ts), but the /help line still said "12 servers", and codeep.dev's command reference, generated from this registry, repeats it next to the site's own "Browse all 9 servers". The description no longer carries a count that can go stale. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
… unattended Launchers like Omarchy start every coding agent unattended, optionally with a task: 'crush --yolo', 'claude --permission-mode auto -- "<prompt>"'. Codeep only took subcommands, so it could not be one of them. - cliArgs.ts parses the launch line in one pure function. `-- <words>` is the prompt (so `-- review` asks the model instead of running `codeep review`); `-p` / `--prompt` take the next argument. A missing or doubled prompt is an error, not a guess. The subcommands, --help and --version route as before. - --yolo pins Agent Confirmation to Never and Agent Interactive Mode to Off for this process only (agentConfirmation.ts). Every runtime reader goes through that pin; nothing is written to the config. It also skips "Set as Project?", the access dialog (read & write, unsaved) and the session picker. Changing either setting in /settings releases the pin. - A YOLO badge leads the status bar for as long as confirmations are off. - A launch prompt goes in through the same path as a phone instruction (submitAsTyped): it shows as the user's message, after every startup question, including the workspace MCP trust question, which no longer replaces "Set as Project?" in plain folders. - Still confirmed under --yolo: writes to files that decide what runs later, and a workspace's own MCP servers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
…ll files Omarchy links its skills (desktop customisation, crash diagnosis, app building) into ~/.agents/skills, the directory agent tools share. Codeep only read .codeep/skills and ~/.codeep/skills, and would have dropped those skills anyway. - ~/.agents/skills is a third, global source. Project .codeep/skills wins a name, then ~/.codeep/skills, then ~/.agents/skills. Global symlinks load; the project rule against links leading out of the repo is unchanged. /skills bundles groups them by directory. - parseFrontmatter reads YAML block scalars for any key (`>` folded, `|` literal, chomping and indentation indicators). Omarchy's descriptions are `description: >` and parsed as ">", so the skill was skipped. js-yaml stays out: it rejects plain values like "Deploy: build, then ship" that SKILL.md files in the wild use. - invoke_skill names the skill's directory and can read a file beside SKILL.md (Omarchy's point at hooks.md, theming.md...), only inside that directory, with the same size and regular-file checks. - The catalog keeps whole descriptions (it cut at 200 characters, mid-word, losing "Triggers:"), and writes to .agents/skills/ are confirmed in every mode, as .codeep/skills/ already were. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
README: two rows in the CLI table and the three skill locations in their precedence order. CHANGELOG: an [Unreleased] entry, per CONTRIBUTING. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
Owner
Author
|
Re the refreshed Codeep Review (0/100): the new ❌ and
The rest is info/suggestion (JSDoc, file and function length), same as before. Generated by Claude Code |
On Omarchy Linux, Claude Code, OpenCode, Pi and Hermes recolour themselves when the user switches the desktop theme; Codeep kept its own truecolor red and One Dark syntax colours. The basic 16 ANSI colours already followed (Omarchy recolours the terminal); only truecolor did not. - palette.ts: one semantic palette for every truecolor use (brand, greys by role, syntax roles), replacing the literals and the five components' own copies of PRIMARY_COLOR. Defaults are today's exact values, pinned byte for byte by a test, so nothing changes off Omarchy. - omarchyTheme.ts reads ~/.local/state/omarchy/current/theme/colors.toml (a minimal, never-throwing TOML reader) and maps it the way Omarchy's own Claude Code template does: accent for the brand, greys mixed from foreground and background so light themes stay readable. - Live: it watches the theme directory (Omarchy swaps it with rm + mv) and handles SIGUSR2 like OpenCode, re-rendering the running TUI. Only the TUI starts it; acp, review, hook and account do not. - Settings: "Follow Omarchy theme" (on by default, applies immediately). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
- Drop the SIGUSR2 handler. conf's exit hook (when-exit) catches SIGUSR2 with SIGTERM/SIGHUP and re-raises it; keeping the process alive left the hook spent, so the next SIGTERM or SIGHUP no longer ended the session. The directory watch already sees every switch, and Omarchy signals only OpenCode by name. README no longer suggests `pkill -USR2`. - While current/ is gone, watch the nearest existing directory above it, so it is picked up again when it comes back without a signal. - Theme the last fixed colours: code punctuation, the YOLO badge (theme yellow with the most readable text colour), the warning toast and the confirm modal / picker prompts. - Place each grey by target contrast instead of a fixed sRGB mix, so light themes keep the greys' order and spacing; sentence text (hint, blockquote, warning) gets a 4.5:1 floor. - A theme whose accent equals its foreground (kanagawa) uses blue for the brand pair, so selected rows still stand out. - Tests: no frame written to the runner output, a theme/ re-watch test, recovery tests without a signal, readable per-entry colour fixture instead of a sha256, shared handle in the stop() test. - CHANGELOG: TL;DR covers the theme; stray blank line removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo
VladoIvankovic
marked this pull request as ready for review
October 2, 2026 23:22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR started as the brand work: the mascot in the intro and the README logo. It now also carries what Codeep needs to sit well on Omarchy as an agent:
omarchy-agentlauncher needs,~/.agents/skillsdirectory, where Omarchy links its skills,The release notes are under CHANGELOG
[Unreleased], and the README has the new flags and the new setting.Brand
fix(brand): the README logo gets full-size inner chevronsCodeep.svgwas the off-brand variant, with its inner chevrons at about 84% and thinned from 104 to 65 units. It now uses the same geometry as codeep.dev and the Mac app icon (VladoIvankovic/Codeep-MacOs#1).feat(intro): the mascot glances around while CODEEP decryptssrc/renderer/components/mascot.ts) is the creature fromCodeep Maskot.svg, drawn in half blocks. It has four frames (idle, look-left, look-right, blink) that differ only on the pupil row.mainthe wordmark was already glitched on its first frame.fix(help):/mcp browseno longer promises 12 serversThe marketplace now has 9 entries, and codeep.dev's command reference repeated the stale count.
Omarchy
feat(cli):--yoloand a launch promptcodeep -- <prompt>(also-pand--prompt) starts a new session with the prompt as its first message, as if typed.--is the prompt, socodeep -- reviewasks the model instead of runningcodeep review.codeep --yoloasks nothing for this launch only:/settingsends the override for that setting.feat(skills):~/.agents/skills, folded descriptions, skill files~/.agents/skillsload. On a name clash the order is project.codeep/skills, then~/.codeep/skills, then~/.agents/skills.description:written as a>or|block (Omarchy's are) is read correctly, instead of loading as ">".invoke_skillgives the skill's directory and reads files inside it, such asreporting.md..agents/skills/is confirmed in every mode, as.codeep/skills/already was.feat(tui): follow the Omarchy theme, live (+ review fixes)How it works
~/.local/state/omarchy/current/theme/colors.toml. They use the same mapping Omarchy's templates use for Claude Code and Pi./settingsturns it off. It is On by default and only shown on Omarchy.palette.defaults.test.tspins the colour escapes of every formatter and component to the pre-change output, andpalette.test.tspins all the defaults.Which colours follow the theme
Readability
Watching for changes
current/andcurrent/theme/, waits 150 ms after a burst of events, then repaints only if a colour changed.current/is removed, it watches the nearest existing parent untilcurrent/comes back.Review: an independent review (regression, visual on 10 themes, tests) raised 17 findings. All of them are addressed in
fc3a579.Checks
npx tsc --noEmit: clean.npx vitest run: 4390 passed, 2 skipped, 2 failed in the sandbox. Both failures are root-only permission tests in files this PR doesn't touch, and they pass on CI:src/config/index.test.ts"not writable"src/utils/git.hardening.test.ts"unreadable submodule"No version bump; that's for the release.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Bp1pRXzJVR8Rb2CsNWzzmo