Click icon

Click

The same test never runs twice. Nothing is skipped by guess.

Problem. You change one function. Your coding agent reruns the whole test suite, reads the whole output again, and does it all over on the next edit. The wait and the context spend repeat every cycle. How it works. Click is an MIT plugin for Claude Code and Codex CLI. It records an exact receipt for every check, decides at execution time which checks must run again, and returns one line for a skipped check instead of its output. A check is skipped only when an exact same-state receipt, a signed observation of the files it read, or a policy the repository owner committed proves it still holds. Anything ambiguous runs. Every decision carries a reason code. Your model and reasoning settings are untouched. Supported suites (unittest, pytest, Vitest, Jest) are split into per-file shards automatically and run concurrently; only the shards whose inputs changed execute again. On Linux, a native observer records which files each check actually read, so reuse does not depend on you writing dependency files. Measured, not estimated. Same three-bug fix task, Opus 5, eight headless sessions, four with Click off and four on: session time 381 s → 123 s (−68%), test executions 20 → 10, all eigh

junseok-pak/click · v1.3.0 · Development & Workflow

Junseok PakOwner verifiedsafe

Trust Score

89

Security

95

Surfaces

2

v1.1.0 Past launch

The same test never runs twice. Nothing is skipped by guess.

Launched
Sep 13, 2026
Pricing
free
Availability
available

What is Click?

Click is a published development & workflow plugin for AI coding agents in the codex ecosystem, developed by Junseok Pak and distributed through the HOL AI plugin registry. Turn software intent into one approved contract, then let AI build and verify in one shot—with traceable evidence for each requirement.

Canonical slug
junseok-pak/click
Version
v1.3.0 · updated Sep 29, 2026

Trust & Reputation

HOL Trust Score
89

Factor Analysis

Per-metric points (0–100 each) combined via a weighted average into the overall score.

Installability
100pts
Maintenance
55pts
MCP Posture
100pts
Plugin Security
95pts
Provenance
70pts
Publisher Quality
75pts

Registry Snapshot

Publisher verification
No
Marketplace source
Unknown
Scanner
Broker fallback
Safety label
safe
Digest verified
Yes
2 bundled skills — copy or download SKILL.mdOpen skills

Trust & reputation

Trust & Reputation

HOL Trust Score
89

Factor Analysis

Per-metric points (0–100 each) combined via a weighted average into the overall score.

Installability
100pts
Maintenance
55pts
MCP Posture
100pts
Plugin Security
95pts
Provenance
70pts
Publisher Quality
75pts

Provenance

Plugin root
.
Source repo
https://github.com/grapefruit0205/click
Source commit
970bd9320b5c…
Publisher verified
No
Owner verified
@grapefruit0205

Continuous scanner CI detected

No action is required. This plugin receives the full trust score.

Verified badge not detected

Add the HOL verified badge to the repository README to score +2% trust. Plugin owners can open that pull request from Guard Plugins.

Security Posture

safe
Safety label
95
Security score
0
High findings
Provider
registry-broker-fallback
Grade
A · safe
Version
Unknown
cisco-skill-scanner: unknown

Findings

lowoperational-securitysupply-chain.lockfile-missing

Repository snapshot does not include a lockfile.

infoskill-securityskill-scan.unavailable

Cisco skill scanner timed out after 60000 ms

infoskill-securityskill-scan.unavailable

Cisco skill scanner timed out after 60000 ms

Click — Frequently asked questions

What is Click?
Click is an AI plugin in the HOL registry. Problem. You change one function. Your coding agent reruns the whole test suite, reads the whole output again, and does it all over on the next edit. The wait and the context spend repeat every cycle. How it works. Click is an MIT plugin for Claude Code and Codex CLI. It…
How do I install Click?
Install Click in your harness: Codex — codex plugin marketplace add grapefruit0205/click; Any agent — npx skills add grapefruit0205/click. Full step-by-step guidance is on the HOL plugin page.
How do I install Click in Codex?
To install Click in Codex, start with codex plugin marketplace add grapefruit0205/click. The complete step-by-step install guide for Codex is on the HOL plugin page.
Is Click free?
Click is listed as free on HOL.
Who publishes Click?
Click is published by Junseok Pak and listed on HOL.
Is Click available now?
Click is currently available according to its latest public launch.

Install Guidance

Install in Codex

Install through the Codex CLI plugin marketplace.

Codex plugin docs
  1. 1

    Register the marketplace

    Run in any terminal. Codex reads the marketplace entry from .agents/plugins/marketplace.json (or the legacy .claude-plugin path) in the repository. If the repository ships none, add the generated entry from the Advanced section below first.

    shell
  2. 2

    Install from the Plugins browser

    Open Codex, open the Plugins browser, choose the click marketplace, and install click.

  3. 3

    Verify the marketplace registration

    shell
ChatGPT Image 2026년 9월 13일 오전 10 24 20
1 / 3

ChatGPT Image 2026년 9월 13일 오전 10 24 20

Full size
Loading reviews

Plugin Manifest

{
  "name": "click",
  "version": "1.3.0",
  "description": "Incremental verification for coding agents: propose complete test shards, rerun affected checks, and reuse authoritative passing evidence with optional Guarded approval boundaries.",
  "author": {
    "name": "Junseok Pak",
    "url": "https://github.com/grapefruit0205"
  },
  "homepage": "https://github.com/grapefruit0205/click",
  "repository": "https://github.com/grapefruit0205/click",
  "license": "MIT",
  "keywords": [
    "natural-language",
    "intent-compiler",
    "design-language",
    "software-design",
    "engineering-directives",
    "one-shot",
    "anti-loop",
    "verification",
    "vibe-coding"
  ],
  "skills": "./",
  "interface": {
    "displayName": "Click",
    "developerName": "Junseok Pak",
    "shortDescription": "Rerun affected checks; safely reuse the rest.",
    "composerIcon": "./assets/icon.svg",
    "logo": "./assets/icon.svg",
    "screenshots": [
      "./assets/screenshots/reuse-after-one-change.png"
    ],
    "longDescription": "Click provides incremental verification for coding agents. Evidence mode records mutation revisions and exact verification receipts, then deterministically plans which sources must run and which passing results remain reusable. Authority precedence is exact same-revision evidence, complete runtime dependency observation, then an unchanged committed safe-change policy; ambiguous bindings always rerun. Supported JavaScript checks can also use separately attested conditional receipts, with unproven input completeness disclosed and known dynamic inputs excluded. Evidence Shards split a broad suite only when their inventory exactly covers parent discovery. An opt-in setup flow analyzes supported unittest, pytest, Vitest 5, and Jest 30 commands, skips uneconomic small suites, emits reviewable complete policies, and falls back to the parent command when a complete partition cannot be verified. Node, npm, Go, and content profiles retain parent execution with exact runtime and input bindings. Input-fingerprinted cat, sed, and rg caching can reduce repeated inspection but never creates verification authority. A resident Hook worker reduces repeated Python startup while preserving per-event isolation and one-use claims. Actual execution and authoritative reuse stay separate from Shadow telemetry and estimated avoided time. Native observation remains fail-closed when a backend, companion, input, or process tree is incomplete. For higher-risk work, optional Guarded mode binds execution to one plain-language approval contract. Click prevents runner replay, tampering, stale evidence, verification-time repository mutation, and incompatible cache reuse without claiming code correctness or test sufficiency.",
    "category": "Productivity",
    "capabilities": [
      "Lifecycle hooks"
    ],
    "websiteURL": "https://github.com/grapefruit0205/click",
    "privacyPolicyURL": "https://github.com/grapefruit0205/click/blob/main/docs/privacy.md",
    "termsOfServiceURL": "https://github.com/grapefruit0205/click/blob/main/LICENSE",
    "defaultPrompt": [
      "Use Click Evidence mode to work normally and return a revision-aware evidence receipt.",
      "Use Click Guarded mode for a human-readable approval boundary on higher-risk work.",
      "Show Click's technical contract JSON only when I ask for details."
    ]
  },
  "registryIndexVersion": 5
}

Marketplace Source

Repo URL
https://github.com/grapefruit0205/click
Marketplace path
Unknown
Source path
plugins/grapefruit0205/click
Install policy
AVAILABLE

Skills

2 SKILL.md files ship with this plugin. Preview, copy, or download each one, then install them with the Skills CLI.

Share
skills-cli
  • click

    skills/click/SKILL.md

    Record revision-aware evidence for software work by default, or bind higher-risk execution to one human-readable approval contract in Guarded mode. Use when Click Hook context enables Evidence or Guarded mode, or when the user explicitly selects Click. Do not use for questions or explanations.

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

  • fix

    skills/fix/SKILL.md

    When explicitly invoked with a software defect or unwanted behavior, translate the natural-language report and repository evidence into one compact repair contract, explain it plainly, then fix it in one approved shot. Never invoke implicitly.

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

File Inventory

.codex-plugin/plugin.json

plugin-manifest

3,174 bytes

0421722e0ec21fe6…

assets/icon.svg

asset

643 bytes

776f70c77abb5563…

assets/screenshots/reuse-after-one-change.png

asset

121,540 bytes

6d39614b66359c4b…

hooks/__init__.py

file

49 bytes

f32e0bbdb15daa42…

hooks/antigravity_gate.py

file

24,490 bytes

e3c2097472de9e79…

hooks/claude_hook.py

file

10,149 bytes

31f4108e5373f731…

hooks/claude_hook.sh

file

3,852 bytes

3cbd86ccc41ad6ef…

hooks/click_authoritative_observer.py

file

37,405 bytes

adb046c573b9a102…

hooks/click_auto_sharding.py

file

3,776 bytes

3c35ed8d2c0d7227…

hooks/click_automatic_shards.py

file

7,436 bytes

dc5d21d994653d48…

hooks/click_browser_advisory.py

file

4,386 bytes

56c3fcc1405e8e5e…

hooks/click_browser.py

file

19,939 bytes

825884c5ce9b3dcc…

hooks/click_capability.py

file

6,036 bytes

f8d5da85c15a31d9…

hooks/click_change_policy.py

file

28,529 bytes

cdbbfb60c299461e…

hooks/click_claims.py

file

14,506 bytes

4c2b104adbcdcb2f…

hooks/click_collector_runtime.py

file

5,055 bytes

a6bf167e8387696d…

hooks/click_conditional_observer.py

file

24,303 bytes

6099b637ff0b1a59…

hooks/click_conditional_windows.py

file

12,991 bytes

fa12f46bff590a6b…

hooks/click_contract_state.py

file

4,199 bytes

34f6ff8cd32c9e72…

hooks/click_contract.py

file

12,268 bytes

18c5aa12c3b7b7fa…

hooks/click_dashboard_projection.py

file

42,090 bytes

7cc493cdbf735515…

hooks/click_dashboard_server.py

file

7,910 bytes

2e87ebac15572200…

hooks/click_dependency_cache.py

file

52,737 bytes

7a420a7daf66f599…

hooks/click_dependency_candidates.py

file

13,477 bytes

1580d0427e2d3bc8…

hooks/click_dependency_trace.py

file

8,674 bytes

ebbefb6e5006de77…

hooks/click_diagnostics.py

file

32,658 bytes

fce3913f4977481b…

hooks/click_evidence_shards.py

file

31,831 bytes

f5ba62a7e8cec18a…

hooks/click_evidence.py

file

43,573 bytes

e24062995c609ed1…

hooks/click_framework_observer.py

file

10,529 bytes

960b9f3d39e94508…

hooks/click_gate.py

file

77,405 bytes

1ce7f6af3497bac0…

hooks/click_hook_transport.py

file

18,740 bytes

243dc1a64af89ea3…

hooks/click_hook_worker.py

file

9,989 bytes

ee3f95df39777cf6…

hooks/click_hook.py

file

3,550 bytes

d3e2ceb9ea6ab232…

hooks/click_host_coverage.py

file

7,578 bytes

0d0feb298310a8bb…

hooks/click_host_router.py

file

2,386 bytes

89d958423cc05a53…

hooks/click_import_bootstrap.py

file

1,101 bytes

23b282d56b5f903f…

hooks/click_incremental_records.py

file

42,472 bytes

33bd6b9490dd7a56…

hooks/click_incremental.py

file

89,733 bytes

d4a4a347a8293d7f…

hooks/click_input_observer.cjs

file

19,829 bytes

b1006b0f41b7d8ea…

hooks/click_input_policy.py

file

4,697 bytes

85783ad75779239b…

hooks/click_input_records.py

file

30,222 bytes

c3dc93299289edc8…

hooks/click_inspection_policy.py

file

21,689 bytes

d81c61fd580b5e6d…

hooks/click_inspection.py

file

20,996 bytes

9722804633341bec…

hooks/click_lifecycle.py

file

48,010 bytes

f2dc77b3666d9235…

hooks/click_mode.py

file

3,711 bytes

789fd97eab4c8fed…

hooks/click_mutation.py

file

23,351 bytes

484641341c451142…

hooks/click_node_bootstrap.mjs

file

2,875 bytes

e2ee40da726d0c3f…

hooks/click_node_controller.cjs

file

30,707 bytes

eb1455fc54ad76b6…

hooks/click_node_observer.py

file

14,250 bytes

0a9be844fb3a1f78…

hooks/click_node_state.py

file

12,059 bytes

82ff86d88a3de5ce…

hooks/click_node_value_probe.js

file

7,166 bytes

30175443c0ab972d…

hooks/click_observation_cache.py

file

23,216 bytes

6983fffcbf7a4740…

hooks/click_observation_inputs.py

file

34,956 bytes

18116c425324c0e9…

hooks/click_observation.py

file

25,589 bytes

215a3d0d1e0cefb4…

hooks/click_observed_check.py

file

47,957 bytes

61f4824dfd6a6857…

hooks/click_observer_backend.py

file

4,719 bytes

6438a20666845f13…

hooks/click_observer_bootstrap.py

file

2,809 bytes

07fbfa51a29f0ac0…

hooks/click_observer_common.py

file

9,905 bytes

4b7af8f535ee7d1a…

hooks/click_observer_control.py

file

4,173 bytes

a7838a65cc144018…

hooks/click_observer_linux.py

file

31,160 bytes

c7872cfdc42917f8…

hooks/click_observer_macos.py

file

43,497 bytes

11a20e5a887ddab3…

hooks/click_observer_process_tree.py

file

5,150 bytes

544026631545e80e…

hooks/click_observer_profiles.py

file

3,681 bytes

33a90b07f0a43f4a…

hooks/click_observer_runtime.py

file

27,052 bytes

01acc76aafec13bd…

hooks/click_observer_windows.py

file

49,533 bytes

6f31d5be3378ab24…

hooks/click_process.py

file

13,563 bytes

473258bc8a8aaf77…

hooks/click_prompt.py

file

4,650 bytes

576235f2a9fb553b…

hooks/click_pytest_collector.py

file

7,686 bytes

101065fb3b676113…

hooks/click_receipt_runtime.py

file

16,127 bytes

156b9acfbca795b3…

hooks/click_receipt.py

file

31,456 bytes

66faa04a1c8564c4…

hooks/click_reuse_readiness.py

file

6,979 bytes

8e881a3b90a64099…

hooks/click_runner_transport.py

file

5,617 bytes

34f6545ca8d4bdf6…

hooks/click_runtime_identity.py

file

24,130 bytes

ae14ee25c4f784c8…

hooks/click_runtime_state.py

file

2,437 bytes

1f527d9117bb408d…

hooks/click_runtime_trace.py

file

27,346 bytes

3f9305cb93973354…

hooks/click_service.py

file

29,517 bytes

60fa56c418b3939b…

hooks/click_shadow_dashboard.py

file

15,193 bytes

c9af41c5e7f6896d…

hooks/click_shadow_intelligence.py

file

48,353 bytes

ffdac4b31641ebf2…

hooks/click_shard_proposal.py

file

17,705 bytes

2d5d88104ad51087…

hooks/click_sharding_setup.py

file

79,545 bytes

9dea7aad362db737…

hooks/click_state.py

file

19,158 bytes

fdab73b5a12c4867…

hooks/click_status_summary.py

file

8,227 bytes

cdc2e350ace9a314…

hooks/click_syscall_trace.py

file

31,666 bytes

544ed6843c2eee3a…

hooks/click_test_inventory.py

file

58,913 bytes

f8426d7e2b9a2a13…

hooks/click_unittest_collector.py

file

8,461 bytes

c6ae6c449e6b1a29…

hooks/click_verification_adapters.py

file

38,428 bytes

0938b544f227b786…

hooks/click_verification_bindings.py

file

32,821 bytes

e7d16ac76863f050…

hooks/click_verification_claims.py

file

26,875 bytes

5c9d83489ac2941e…

hooks/click_verification_common.py

file

17,799 bytes

3efd40ef4511bcf9…

hooks/click_verification_inputs.py

file

8,651 bytes

b6e45a700ea7fa6c…

hooks/click_verification_meter.py

file

1,593 bytes

307595658dc9e6e5…

hooks/click_verification_plan.py

file

19,083 bytes

e1c7ff744cd3cb7b…

hooks/click_verification_policy.py

file

973 bytes

6021b44884f01de0…

hooks/click_verification_prepare.py

file

80,126 bytes

fbd670e9c3aea257…

hooks/click_verification_results.py

file

36,142 bytes

730ae74831d7bc9b…

hooks/click_verification_reuse.py

file

32,333 bytes

4abe2cebceaf1c79…

hooks/click_verification_runner.py

file

57,691 bytes

de959821de6db33b…

hooks/click_verification.py

file

13,379 bytes

7b3c3a43cd9a1aea…

hooks/click_windows_job.py

file

15,202 bytes

b36b28362853aafd…

hooks/click_windows.py

file

2,312 bytes

32057ea0414aef1a…

Browse all 129 files

History, reviews, and alternatives

Latest launch

User reviews

—from 0 reviews

The first substantive review can be added on this page.

Read or write reviews

Milestones and alternatives

Makers can publish releases and security milestones after claiming the plugin.