{"_id":"@alansynn/hadex","_rev":"2-88cb6dd872603f5f60591046aaee6722","name":"@alansynn/hadex","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@alansynn/hadex","version":"0.1.0","keywords":["codex","cli","launcher","git","worktree"],"author":{"name":"Alan Synn"},"license":"MIT","_id":"@alansynn/hadex@0.1.0","maintainers":[{"name":"alansynn","email":"alan@alansynn.com"}],"homepage":"https://github.com/AlanSynn/hadex#readme","bugs":{"url":"https://github.com/AlanSynn/hadex/issues"},"bin":{"hadex":"dist/index.js"},"dist":{"shasum":"0b0086fc9be5ee8d08de1a4d6e4b5dd9e71606b2","tarball":"https://registry.npmjs.org/@alansynn/hadex/-/hadex-0.1.0.tgz","fileCount":20,"integrity":"sha512-a9Uea2Qg4P4NoDl7GE8W2sMsPu7Iwm5z1japulinlgWLbqZKrlAIG6+Mb7CqSqcsNlq2KMQVTPXo7VgKmtiWLw==","signatures":[{"sig":"MEUCIB4KiSYvVReA2RqcBDnuHboDU5442+gsQFedv0k0yrgqAiEAyJTB/B/I9yv3YFUASQLZNNlzaCEAd4dS1YSNHn3SB2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71745},"type":"module","engines":{"node":">=20"},"gitHead":"092938e0094bc44e317c146ecde2495b0755e47c","scripts":{"lint":"biome check src test","test":"tsx --test \"test/**/*.test.ts\"","build":"rm -rf dist && tsc && chmod +x dist/index.js","check":"biome check src test && tsc --noEmit","prepack":"npm run build && npm test"},"_npmUser":{"name":"alansynn","email":"alan@alansynn.com"},"repository":{"url":"git+https://github.com/AlanSynn/hadex.git","type":"git"},"_npmVersion":"11.17.0","description":"Thin, unsafe-by-default Codex launcher with isolated Git worktrees, direct execution, resumable task records, and explicit verification.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.9.0","@types/node":"^22.7.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/hadex_0.1.0_1784594206939_0.410619043577803","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alansynn/hadex","version":"0.1.1","description":"Thin, unsafe-by-default Codex launcher with isolated Git worktrees, direct execution, resumable task records, and explicit verification.","type":"module","bin":{"hadex":"dist/index.js"},"engines":{"node":">=20"},"scripts":{"build":"rm -rf dist && tsc && chmod +x dist/index.js","test":"tsx --test \"test/**/*.test.ts\"","lint":"biome check src test","check":"biome check src test && tsc --noEmit","prepack":"npm run build && npm test"},"devDependencies":{"@biomejs/biome":"^2.4.4","@types/node":"^22.7.0","tsx":"^4.19.0","typescript":"^5.9.0"},"keywords":["codex","cli","launcher","git","worktree"],"license":"MIT","author":{"name":"Alan Synn"},"homepage":"https://github.com/AlanSynn/hadex#readme","repository":{"type":"git","url":"git+https://github.com/AlanSynn/hadex.git"},"bugs":{"url":"https://github.com/AlanSynn/hadex/issues"},"publishConfig":{"access":"public","provenance":false},"gitHead":"90afd31b4745255059b7642118c2e35d6a9c355e","_id":"@alansynn/hadex@0.1.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-OXilZUelzR86mqXnPSXgxdKbcR/0uG+iXgDYqFWRghL8Vv1WFRCfvQk3PnB43OGwfJce5/1LVC5llBOBzRTvFQ==","shasum":"b8f79c8b0f32d1ffeb13b5640492febcc2c07b4f","tarball":"https://registry.npmjs.org/@alansynn/hadex/-/hadex-0.1.1.tgz","fileCount":20,"unpackedSize":71819,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB1KEemIofVNEKqzfGO/AdXp3C2sUA2me5osywyuVHx4AiEAgJdbv6Qc+nbRn0QQ6uiCk+53xNPtXelnwmQTfMzMgv0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28e9f423-9cd4-45b9-92bf-0d9c00c2d752"}},"directories":{},"maintainers":[{"name":"alansynn","email":"alan@alansynn.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hadex_0.1.1_1784601963167_0.36398759251756885"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T00:36:46.741Z","modified":"2026-07-21T02:46:03.453Z","0.1.0":"2026-07-21T00:36:47.092Z","0.1.1":"2026-07-21T02:46:03.308Z"},"bugs":{"url":"https://github.com/AlanSynn/hadex/issues"},"author":{"name":"Alan Synn"},"license":"MIT","homepage":"https://github.com/AlanSynn/hadex#readme","keywords":["codex","cli","launcher","git","worktree"],"repository":{"type":"git","url":"git+https://github.com/AlanSynn/hadex.git"},"description":"Thin, unsafe-by-default Codex launcher with isolated Git worktrees, direct execution, resumable task records, and explicit verification.","maintainers":[{"name":"alansynn","email":"alan@alansynn.com"}],"readme":"# Hadex\n\nHadex is a personal, local-first launcher and task runtime for the native\nCodex CLI. It trades orchestration ceremony for isolated Git worktrees,\ndirect execution, resumable task records, and explicit verification.\n\n> Hadex is a thin, unsafe-by-default Codex launcher.\n\n## Safety posture (read first)\n\n- Hadex launches Codex with `--yolo` by default. `--yolo` is the native\n  alias for `--dangerously-bypass-approvals-and-sandbox`. It disables\n  native approval prompts and sandboxing.\n- Default Git worktrees isolate source changes from your main checkout.\n  They are **not** an operating-system security boundary. An unsandboxed\n  Codex process can still access anything your user account can.\n- `hadex --safe` omits `--yolo` and leaves all permission behavior to\n  native Codex configuration. It does not invent a second sandbox policy.\n- Hadex is built for one trusted user. It is not a multi-user tool and not\n  a security boundary.\n\n## Commands\n\n| Command | Purpose |\n| --- | --- |\n| `hadex [run] <prompt>` | Start an interactive task (creates a worktree by default). |\n| `hadex resume [task] [prompt]` | Resume native Codex in the recorded worktree. |\n| `hadex status [task]` | Show task records for this repository or one task. |\n| `hadex verify [task] -- <command>` | Run and record an explicit verification command. |\n| `hadex clean [task]` | Remove a clean task worktree and archive metadata. |\n\n## Flags\n\n| Flag | Meaning |\n| --- | --- |\n| `--safe` | Omit the default `--yolo` flag. |\n| `--here` | Use the current checkout; do not create a worktree. |\n| `--force` | Permit an otherwise refused destructive cleanup operation. |\n| `--raw` | Do not prepend the Hadex execution contract to the prompt. |\n| `--` | Forward all remaining flags to Codex or the verification command. |\n\nHadex-owned flags must occur before `--`. Everything after `--` is forwarded\nto Codex unchanged.\n\n## What Hadex owns\n\n```text\nHadex owns:  task naming, worktrees, launch flags, coarse records, verification records\nCodex owns:  reasoning, tools, edits, subagents, session history, permissions, resume\nGit owns:    branches, diffs, history, conflict resolution, recovery\nUser owns:   task intent, risk tolerance, final acceptance, destructive cleanup\n```\n\nHadex never auto-commits, auto-merges, auto-pushes, or deletes a branch. A\ndirty worktree is refused by `hadex clean` unless `--force` is given, and\neven then the branch is retained.\n\n## What Hadex is not\n\nNo tmux, no daemon, no lifecycle hooks, no MCP server, no workflow engine,\nno plugin marketplace, no runtime npm dependencies. Resume delegates to\nnative `codex resume --last`. Verification means a real command and its\nexit code, not a model-generated approval artifact.\n\n## Configuration\n\nUser configuration lives at `~/.hadex/config.json` and is created lazily. A\nrepository may optionally declare verification commands in `hadex.json`.\n\nEnvironment variables (both optional): `HADEX_HOME`, `HADEX_CODEX_BIN`.\n\n## Development\n\n```bash\nnpm ci\nnpm run build      # tsc -> dist/\nnpm test           # node --test via tsx\nnpm run lint       # biome check\nnpm run check      # lint + typecheck\nnpm pack --dry-run # confirm only dist/, README, LICENSE ship\n```\n\n## Origin\n\nHadex is a destructive rewrite of an upstream `oh-my-codex` (v0.20.3) fork.\nMIT attribution is preserved in [`LICENSE`](./LICENSE). The design docs under\n[`docs/`](./docs/) cover the product contract, target architecture, execution\ncontract, and acceptance criteria.\n\nLicense: MIT.\n","readmeFilename":"README.md"}