{"_id":"codiva","_rev":"46-9d0f974dede68f441580269f4e3c9eea","name":"codiva","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"codiva","version":"0.1.0","license":"MIT","_id":"codiva@0.1.0","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"031a8f5bc3f2a320a2c3e3ad20de4852416fa96d","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.0.tgz","fileCount":2,"integrity":"sha512-8+YByiLyzsqu85Z7eDJA1et6HRtkFx4wGuqRYgmo70hSA2NHmnnfr2gj8i9hr9BYS8PHdYbEjOJzsKTJo6JneA==","signatures":[{"sig":"MEYCIQC/pgaB7SEe//Ao1ezPhu6aH4U09MgGnu3WzmlULbhIfwIhAK1AXSWyqssMdGTsyhfog3kkfWj+a/SsUHwIGgTy+CT+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83355},"type":"module","engines":{"node":">=20"},"gitHead":"bab43c7f7a41adca8e040daf7b6f5950883b87ef","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"},"_npmVersion":"11.12.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.0_1784438333686_0.5169357077089911","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"codiva","version":"0.1.1","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.1","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"d7ae90cca81f1541cd460e6f4da586a8f447afeb","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.1.tgz","fileCount":4,"integrity":"sha512-fDKXIx4NtpBgeoSY5Luk+X9l3tFIfH7hJTf2OLkTY4219RO2x1MtdVwW2RLPGNIkmDNlpDDUNs1JdbdrE2wqMg==","signatures":[{"sig":"MEYCIQC4bsLg0R+umk5aBNSq1jjOTITLGVudygSdT2pJjYpMSAIhAJAU2EHX6qgq4WB01ZAFAxbAM+q2pfgw1od5uKmMcLgM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88907},"type":"module","engines":{"node":">=20"},"gitHead":"3fbffdde1faa35fc1c1794b860cfd15b6f0cfb0d","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.1_1784438979853_0.5360127682834175","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"codiva","version":"0.1.2","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.2","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"70a720794853850d5bc628d594f21298c6e7a0ae","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.2.tgz","fileCount":4,"integrity":"sha512-lxf1E+RASdLgk17uA6ilY8QlgkZkaZNYbI94qw0RrMcGiCv4hKprS4cNT5QfIjK4OW5tgeSPkeeZp99rHjiPHg==","signatures":[{"sig":"MEUCIQCuMa0DBHRjggB8Sf6pJmX7+SuE/kMSmGCHwEAodsuV1gIgewj31VfrWPGedseMNqtQp2njdpTBs3XNamqtu8RPpIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92540},"type":"module","engines":{"node":">=20"},"gitHead":"7678cc75ad6a6ad2e6ee5396cd07169b891ab31a","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.2_1784447270635_0.3259779025893952","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"codiva","version":"0.1.3","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.3","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"c344b05c87a4dd8dcc6a460140b41b65e2995972","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.3.tgz","fileCount":4,"integrity":"sha512-L7t0GMCV6wTxQRLw6IMyBmQCSqA+4ziiWnMS8Wsg1YkygNW5++rZkaIBNnRDVW6lOO4KZ9kBnAP2x6SkCvGUfg==","signatures":[{"sig":"MEQCIGaW/2QlA3DK1/icHajQzhrVWM1uGZ3YL2AUm/kIWerzAiAwWm+RdRPxMwKCQHq2DZEbByceDEBUurhoYrpaf08ItA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98770},"type":"module","engines":{"node":">=20"},"gitHead":"6b02a785d7120f8a4ec9fcb93b6eaf83c650db50","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.3_1784449963974_0.2200308788121359","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"codiva","version":"0.1.4","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.4","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"b5893af8a7e4c33343cc250cae4d7e7fbe4f5685","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.4.tgz","fileCount":4,"integrity":"sha512-wa5HZFDE9eWCDvM9sHrT214MzWgeIClIORk/cPPFZl4bVLSjgQor6dSXXgQeA40K6D98vOtY+9+hTqHaVF4N/g==","signatures":[{"sig":"MEQCIFFgrywSpz99Nq5I6wOfoPVQRyHAL5ushbbCch3ZOKhBAiBzIeS1VcUzRCXnoH3pt2rbP5uxB2lGwlHHfVujWCHudQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117970},"type":"module","engines":{"node":">=20"},"gitHead":"161c8571e4868c7514aae593faaf899b6fe2e7f7","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.4_1784454994783_0.6796507414838509","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"codiva","version":"0.1.5","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.5","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"1d3f315dbf907996c3f0c95c50e820a7adc4570e","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.5.tgz","fileCount":4,"integrity":"sha512-/Gl613ISQ9SMMF9CN9SAtjCjxKwAG0+GpR+YJkS7RUPidcR8u/mK8HzBg+ye/Ix6O8MWRPT8qaH8vWT+LaJe9g==","signatures":[{"sig":"MEUCIFXysW+rUlYKDgFcVzOMQTfABge31ogB5q6WSc+EsuGGAiEA+55I4a2LsIPHrt92fCG7uK8PEgB63X86nhT6s5aSB1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128651},"type":"module","engines":{"node":">=20"},"gitHead":"55916d5ddb8afca602fab04cb560dc143eb430c9","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.5_1784463752404_0.46297711635534267","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"codiva","version":"0.1.6","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.6","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"9d5aa99a01c162def11a2034c9c6962ed3c6395e","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.6.tgz","fileCount":4,"integrity":"sha512-nVrG1KtvFgmzulMjGmlPy67DmjqD21CZeAH9i6r++x9zaLkF7pY7PIjBJd/71hFTXFb6tGvqyzcyLw9M0YAUJA==","signatures":[{"sig":"MEQCIHF80pglw68L2qsaEKQ11mmHB28qe9AF3W0o1NiCh4+lAiBeuLkqOb49RczCDYiO39L7erHDRQrrfjwDH2kWYc2dHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129072},"type":"module","engines":{"node":">=20"},"gitHead":"3a5fa92725b179462f8606afeeac47ed42eae803","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.6_1784464673963_0.5255647597684463","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"codiva","version":"0.1.7","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.7","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"7089a365b622c14079b2629caaaaa4c62328bc9f","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.7.tgz","fileCount":4,"integrity":"sha512-z/epmyEoeP6+NxKHrAkBbZ3YIVzur4rhHbKxXf3TfEGK32CscjCYIj2Qm5g3wFEMdtzYePXu63NZ3OSHnlGknw==","signatures":[{"sig":"MEQCICpD4jyzicfD6hZv7v8nWcEMaX6uN4pQqwRenaaGO7qCAiAeiew5E8x1suGetCKn7S+jK9YorKdT2BwKRoa8NQl+UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137993},"type":"module","engines":{"node":">=20"},"gitHead":"e4ae57275d4634ba0ebfcf27cc0cb838277099f2","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.7_1784476482660_0.6375954949370188","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"codiva","version":"0.1.8","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.8","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"687360fd2afcc560b4bbf7960ab1cf2f8e65a24f","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.8.tgz","fileCount":4,"integrity":"sha512-Z4Qdqshlo2O4rj8G14XVfkpessQQNGrwzKq0UOuM/0I4cxR1jH52oRJKm8qXIxsbEPocNRS9jFOF0mwZrtly3w==","signatures":[{"sig":"MEUCIQCwrOttmQR+r7p1QXNZ2mV67WM36G32k5i4OSMRHGa3IAIgNAii1QWMRE3LKWO74J/6SyZRx3AZ4Gh4Y43s7jKW5Es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143244},"type":"module","engines":{"node":">=20"},"gitHead":"c4ad1b07c5983bb74b89950bb01e26a854c04aaf","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.8_1784489444696_0.02919775264028668","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"codiva","version":"0.1.9","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.1.9","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"75f2396cc5635dc67bb0782793dcf1013b09329f","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.1.9.tgz","fileCount":4,"integrity":"sha512-oVvSrunM5FyzHLNI/sHfMOXtcbjR4gCH6VpgZJXkcxLqkQNNReG9NwwtrbuwiDLJkwp9if2v0irxJMR5XcLLlQ==","signatures":[{"sig":"MEQCIBUCfqZyfy54rbvTUwGGyTMtRvM4WWNxPT5udBoG7uc5AiAYpJmPWbDxnlcw8NCRYFMZVOJ8Q/fYGRN6ri59qhNovw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147256},"type":"module","engines":{"node":">=20"},"gitHead":"d85eb060c6b4c452cb00983e2131ee0a79066c88","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.1.9_1784526716083_0.7564895493610706","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"codiva","version":"0.2.0","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.0","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"4dfe3e5dee74c70d71a815fac39dd86f53b66e6a","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.0.tgz","fileCount":4,"integrity":"sha512-lj+7QHZND7APeLGLuGr6Cz27tzUURBVFeo5cUpv52EAKNfUWNRpSczjHQASYsXmK2vy1JRSu55dAG22qFD/A0w==","signatures":[{"sig":"MEUCIQCjD/yoB1uggZyzDQxldiZqZURMEgCRRxyXtp5zm/sFIwIgBqmyOYtYpdMwCJ8y8G49JgaTUm6s06dRaX4RxXP4dZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162373},"type":"module","engines":{"node":">=20"},"gitHead":"e8aa7527169766579cd17566a5318207a1fc5c19","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.0_1784604628403_0.36933590282411277","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"codiva","version":"0.2.1","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.1","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"29405b6101a9e496e5e3088ab65f0421b712c3da","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.1.tgz","fileCount":4,"integrity":"sha512-S0z/o15jjyLRHRKea9yqR+7g+kkXuvXJtpn08p9J7K6bRec+5FARUbYfM+kD0ctJcj3+KOzqHJCXW0sXHCrAvQ==","signatures":[{"sig":"MEQCIAiwvz5rlvcTqx4we45yL0pad6GZsRnNXsyEKXXKnKJJAiAjSkXjXhD1+xftF7zRMAdnTrhrvCAFwwuHDtjVsCYzbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":166441},"type":"module","engines":{"node":">=20"},"gitHead":"f31de93cc420db4dc0cc47978cf81db645a5af22","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.1_1784609816043_0.3904981644912793","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"codiva","version":"0.2.2","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.2","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"b358bdc8ed21e264333c822e05c21d35661df324","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.2.tgz","fileCount":4,"integrity":"sha512-Ww6dOVoxwu60Ykk84GeXDbWYpyQXvmEkx5ysSM9jgp+OfiPGWxUZMZekH65bpkOdEzeV0LgssagtnQmS0To9Jw==","signatures":[{"sig":"MEYCIQClNtBZiqH69flTToTum6pB5qD4AZrUM0d7Gj/78t/yLgIhALNG6chAjOo+EuZSPWeocBUFUq0bdtfLn/zKPeO5p686","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":166617},"type":"module","engines":{"node":">=20"},"gitHead":"13a82f0ebfe02067625197d08bc6e1c71c739ea2","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.2_1784624220491_0.19712788893625843","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"codiva","version":"0.2.3","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.3","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"61e6421f7b59d4242ecc14977256227ddd6b63c1","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.3.tgz","fileCount":4,"integrity":"sha512-v8tm7J/5O2r6ENi4RpRD5e2IcciHXPIZae2EPnA4JlRIOioKARGUlI8wiCiJ19i1xp56eCJYzhBOjdxp/LSy4Q==","signatures":[{"sig":"MEYCIQD0eVmugdJ0+orMkvC4waaLyQ7S/4aybzIkI1Nb5tzAzwIhAOrgR/aAFtzMTcSr4GmJQaw8dUH+v2ockFzD37lT8bQT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168228},"type":"module","engines":{"node":">=20"},"gitHead":"c2153ccf203588daca5570651f38c139d2c1719f","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.3_1784633517274_0.4446742137074995","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"codiva","version":"0.2.4","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.4","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"b2ea260289d972a0beb55f4706a36bd84a7fb192","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.4.tgz","fileCount":4,"integrity":"sha512-20RcQ7uRzCpCScTyVemz2rUkgMu6Zr6SpH/624VZ11QCBKozi33mjKhFaVVf50AEnO9FAT9A+vGT5aAzdRbgeQ==","signatures":[{"sig":"MEUCICfoB8PBqsmhfmB4evveOe9nXxvmjtKBHMsYFLXeApB8AiEAqNJJxfTgywvn6hKCjpHgBy2nU3My9c49qNtyRKs6wXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169036},"type":"module","engines":{"node":">=20"},"gitHead":"fe78c4c8b62b97fa3231915592cd2ec31ab05562","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.4_1784636997072_0.7164678350761289","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"codiva","version":"0.2.5","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.5","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"ebb37568ec49b9ab34c31bb6a83904d30edae3df","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.5.tgz","fileCount":4,"integrity":"sha512-415l/dJV17kxHzwfHMkI79o0y4xFnrJdGYWkeMX+ggJPI9a27Uhu0mexx27+RQPpmzASZwB6J/0T39gbiQG8lQ==","signatures":[{"sig":"MEUCIQC/+TIErkbwZSG5u+7I63ggtwmHhaPLc7pOyuml8aBOjgIgGRJtaiviszoDQfYHDn+/KA3VL6Kg1XO6ClfyGydNsKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":179116},"type":"module","engines":{"node":">=20"},"gitHead":"5d244ac4155dca5a8e25ea9f87bb4c96888e8c79","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.5_1784646492695_0.9520703543222016","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"codiva","version":"0.2.6","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.6","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"82aa43d39dedda5918f960415ad7551b2b503366","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.6.tgz","fileCount":4,"integrity":"sha512-vV+RehBHKeKogyiSK+pslFp8iedl2QyrnAxnC7XUz/IzhNV0LA15ZrsmiF/OzOHldFa2yBK8dvpHZn5Ly+s5QA==","signatures":[{"sig":"MEYCIQCT6oD7+m8xbRJpYgUMqP4b8PCBQH7+zOgCHIjiye5NkQIhAOD2H8ULi8F+9vG2UGUHBDx4QPu77URo/y4iuQxhQCUK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187202},"type":"module","engines":{"node":">=20"},"gitHead":"5b51b7166aec8f6ecb31c229e1ccea019b64c77d","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.6_1785218441105_0.7716096141661055","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"codiva","version":"0.2.7","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.7","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"60006a3cccc1e5944f28cb0b130b04627e2871c7","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.7.tgz","fileCount":4,"integrity":"sha512-qo++sUyIC3lZfJ2h4ZKvhMMOZchZW6uM7Yw5ABWvtyQOK84G38ocCGc0Afeo6E5k14mO10k9O4VOVmLIgyhxmw==","signatures":[{"sig":"MEQCIFD1/fhJRJEklcOHXeLtrdhtFxQhUK/1Sh4XuGkgd6/5AiAtGm/2mVRRuoB7iy8xM4KoI+nPofAUjqZJwI32MBZZyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188219},"type":"module","engines":{"node":">=20"},"gitHead":"e6f367b93986200ad0bb1ce4158500605a9a67e8","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.7_1785219875417_0.26160951333022475","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"codiva","version":"0.2.8","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.8","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"eb3de13b786862e6072e04b6fa5492b8655cdcc4","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.8.tgz","fileCount":4,"integrity":"sha512-1rRJ2TT/vWJOiNJOzY5lllBkBDoj+QHwI5R9MKZb3c6W4ynT/LL62Km7l8hVVWuPeNR9QRxBwjF3JD8d4lUdTw==","signatures":[{"sig":"MEUCIQDmCGvs7NymUQzY6uZjYb+MIiG4HPswgn5oWl4XCENq6wIgTbo7curfwmSCxdH7JOecMkfOWHzxpVuVQ7Zx66ayNfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192062},"type":"module","engines":{"node":">=20"},"gitHead":"5c98affb3b38cd368c52840973e4171e767c507a","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.1","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.8_1785228672657_0.20552711442916194","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"codiva","version":"0.2.9","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.2.9","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"abfdcb9b829dc38a9d7083e45edf77d39801759a","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.2.9.tgz","fileCount":4,"integrity":"sha512-uUl12gyVw2F0eHshM9ajtHBMf7u2Z8UufQ0IPrG/ou+0UxpaNCu2vO+0KV0pG2plbuzNn36S+CxZJ/zIsDZSrw==","signatures":[{"sig":"MEYCIQCUwLgpX3VtFZp/WDRQFrnKbj+z8njjbbEz8dLqPMRKAAIhAIJob6Rv8TOAlD2e329MPG2WO4eWjbxo9+iHsIIsR2eB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":206030},"type":"module","engines":{"node":">=20"},"gitHead":"f251852316c33b13b70227cec4de28c669e2d090","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.2.9_1785385252878_0.4726109702511221","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"codiva","version":"0.3.0","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.0","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"8d0294e3b403b23c0ae02b32eba715840a0eadfb","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.0.tgz","fileCount":4,"integrity":"sha512-AmmbwgwE/a0kve/PVk8HCWHIb55nvpBtgaQy08z60dTLWQ618U4gkM/sPw8uiCDBESK6mSM82nUtbRVzShDfAA==","signatures":[{"sig":"MEUCIQDrX/D2QB1UTjPh7j1G8gKE5/Cs2DVckAlkfG+ADF4zvwIgadcq2rMIlLw1w3z3k/2fSAHN/TY02b66jt27uLKMfx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241232},"type":"module","engines":{"node":">=20"},"gitHead":"9f1904c2c6cbe2636cafd06acca2121479548d5c","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.0_1785407733416_0.5231942633120377","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"codiva","version":"0.3.1","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.1","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"1c1e3453d85953c896d8d340471e3eb4b861449b","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.1.tgz","fileCount":4,"integrity":"sha512-Hi/GYxOKEcoVjYIL+YwOHwnUQ7DzZ8LXshCaYsoYKHNZIAAyygt+jXchCici3+wHSY/kif5j0WPkwV9T0i4RdQ==","signatures":[{"sig":"MEYCIQD32SL8oa0iIXaRGnoNtIQd0+9cuwV3JvEry/UzzG9AmgIhAPzEGrEmHfd7IUQxTVkrTZ2r1IO3eTLChXWZ7xVmWLTz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263819},"type":"module","engines":{"node":">=20"},"gitHead":"0e679af0b55b9ccd84af47e51d73c9066dc3dbed","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.1_1785431085597_0.1281627888021053","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"codiva","version":"0.3.2","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.2","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"02df813ceb6a84c04f6aef6b90aecaa61c8c9d56","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.2.tgz","fileCount":4,"integrity":"sha512-4BD4NTaQ2vXpkDAvTBYku+qEGfBWVgR5IV6J1xcnxUQh4xWpL9fuod9UEr2pni86CnkcMYKpCLHMS7nr8PqPDA==","signatures":[{"sig":"MEUCIQC5kGItlb87auGN9l8jxP7yCLVRRpndTIr5yUbYmDz6DwIgM0vHDOfvIytPCRaqk908n8nRjbBJttsk5GWPVJZ7bs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":261573},"type":"module","engines":{"node":">=20"},"gitHead":"116db85bf98961443f269a0a78e90feefc923dc3","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.2_1785434935560_0.15656846506329525","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"codiva","version":"0.3.3","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.3","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"1e11f40131eb0fdfc076ca268bf95793cc3ff6ec","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.3.tgz","fileCount":4,"integrity":"sha512-UWQkyqkYMLxkkwNlqsgwtSu2Ve7rPr4QKaA8MgvtfctdgW3msETucXkCVkOQWlm25EYGoTHGbhT/YJxUgcgU6A==","signatures":[{"sig":"MEYCIQDG/2ytlhfiFl5fOExe9LiA4oWFAo5XCPj64OLXS3AJBgIhAOngzCSRcTgnk59O0SrytMBdaKaFc7fBMC/eW4esGnFB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":267466},"type":"module","engines":{"node":">=20"},"gitHead":"4ea2437310b447544a4dfa2e33da820dc4bffb19","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.3_1785436598903_0.739590267002372","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"codiva","version":"0.3.4","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.4","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"cdbb953d1bfb7529859578dd243171a01e4bc34b","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.4.tgz","fileCount":4,"integrity":"sha512-getj7KFlGEE0Eo75OOmR5OrWYLtURVmhhLlBQSWLj08O3lJHpZbzNmDQmS4ONh581Q7d9YgAs9RWc8Ivhm9o5g==","signatures":[{"sig":"MEQCIE1rD1HL/971oZnLj15VMR0NRGlCG+PpuEWOhTWiCP1AAiBzSbrpzePj6VyFSMtcvP88PLenm6CHZO614Whau1DOvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291294},"type":"module","engines":{"node":">=20"},"gitHead":"f537a8409fee6df0c28263641ba393d8ed2d38d6","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.4_1785461280847_0.03374952443461998","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"codiva","version":"0.3.5","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.5","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"5b77b3dbd1b44536d77493a180899495f87f2338","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.5.tgz","fileCount":4,"integrity":"sha512-bNHSESRWYn++ig39r+wZIwW/xc9sIkRTg+ZsqAKjDdPy+YFi6qkZ7cYGbix2JnKYxC+cAFMzHRsP5g/5uMIjNQ==","signatures":[{"sig":"MEUCIBa3Kqo8cP0NnM8YAZkBjWOSg5SP2vw1HPvelfm41vF2AiEA7KD+sRq0kqc73MZxKx2TSZlIfLtCrD3wD9eDLK6lseM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302473},"type":"module","engines":{"node":">=20"},"gitHead":"734251f1694e67ecc3b72f2997a01967dd3dd87b","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.5_1785515925843_0.39018853498713146","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"codiva","version":"0.3.6","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.6","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"3db56ddcfca3ee619d6475e1b13ddd08f66781b7","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.6.tgz","fileCount":4,"integrity":"sha512-3Q9y+XhkEBWPqz2YD7OF/z2KSDr4o3MI8CNn2yUMOUr+sgo5V+lyFjnG7G0j2hdokgNSvL31Sf+9c+TYyrG06g==","signatures":[{"sig":"MEUCIBpq1HNYzMFHmpQcLU8nkR14EMfYlZ2PCgJaSPYM+q/VAiEAnQxO4IqncmZSa1g9HSXMiVnM7/bxPwVcSO6ikZkHYRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":338639},"type":"module","engines":{"node":">=20"},"gitHead":"0259ac1f0de6d3bfd2381ddc11ac7cc91d4fc316","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.6_1785640374761_0.29835822761952824","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"codiva","version":"0.3.7","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.7","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"efb661a3e3e33891aec577c3e631c03f7a9e525a","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.7.tgz","fileCount":4,"integrity":"sha512-qEdYWs23h4Sn1+EoYGtDk7zLfzGQJan1yJY76kJkIi7jZZGopY6QUAiWw2ujpqCX1ah9YfLBHPXEhhFyLSbwTw==","signatures":[{"sig":"MEUCIFrvyFU/dYvzsvDqxrQpoGeaxyr6JlSqHjRGejQCil5+AiEA/8JwlyKn+XeI848J70pBcPY6wCc4tLL9qOSZNU7oPpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366791},"type":"module","engines":{"node":">=20"},"gitHead":"02ff3fddc030a2a757321cdff2e90e85d7917cb3","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.7_1785837689044_0.6654977913923312","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"codiva","version":"0.3.8","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.8","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"eaa7bcc563932cd5ff6d38b32aeb8844b20a353a","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.8.tgz","fileCount":4,"integrity":"sha512-oKcGz8T8yW2bFhC3Erq4T6nTUsQMT+upT5Ll8KmqxezjuaYfRqO6NkHDu92U99n1NDm899vzfHvY/PA7mXnTbQ==","signatures":[{"sig":"MEYCIQDBthWDDquP3M5amifROHCpt7HDNMLOsRP6el07MYNWFAIhAOk0utpkvKoSeQ7KOtACeQHhJ/5TXZwHPT1noG53IiQo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380910},"type":"module","engines":{"node":">=20"},"gitHead":"22ee4e4fdb30d9d8d1165d410046c730a11bcbe9","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.8_1785868830913_0.6727601629384707","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"codiva","version":"0.3.9","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.3.9","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"0c454d0049a2077b4ed669cd9ead06f4f3f932ef","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.3.9.tgz","fileCount":5,"integrity":"sha512-cwxxmscRvdBzbQlc0QGzgLp6ZFbkPzZxE5ygVgS1/CZ4F5EMQtGoS4pLA4lkpaZWQ2md0vK6ofGjTEL3mefaAw==","signatures":[{"sig":"MEUCIQCnC4NXI4Yh9+KVtCjXEu1zSJAm2hoTEI7TMSZMbm2nxQIgItScM0mZXb/rhxH/xAgU9c/PegY5wElOdnyy24KycJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383476},"type":"module","engines":{"node":">=20"},"gitHead":"f6fe0b9cc872f0fed09ac456e82990ea5d856e70","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.3.9_1785952578521_0.0599392872629021","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"codiva","version":"0.4.1","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.1","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"7a49ffb6681afe57700806317ba01ff5f4a6e27e","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.1.tgz","fileCount":5,"integrity":"sha512-NIQgqERU1wJ+zX1nfYgIHuw1RKq3g7fI5AFcA621B34RgaaEspyL+hsbQ8G+s3xTWtZ/T2B3rdjDshlR2QNI7g==","signatures":[{"sig":"MEQCIHgQXcHMGz3nS9aLBE00qXbmwa1rz2qhzGGHkpY6OyiKAiBWKmcYyRdKtVu5t0VDxnXWn3fRdaAh4IRypoOqF301iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":392498},"type":"module","engines":{"node":">=20"},"gitHead":"e7e95cb9d99053951c815318c385c9f76f819087","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.1_1786097381487_0.994784135414557","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"codiva","version":"0.4.2","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.2","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"72df8fa7276279db1a9898d237cb0baf9ccdb434","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.2.tgz","fileCount":5,"integrity":"sha512-QXj0ju0rRcVti3cwVxMHNlylBS/tp0EBgZo5aQIozvX+/jeTMuePxFPys2Wqmn8aUdo8m6giGsr/HcT1GVzWEA==","signatures":[{"sig":"MEUCIQD2NkARjtDXNUBzedjECWzr/ufdUuWvZFWrVy1Pi69DnQIgM7iCna7U0Jq2mQU9xleFM4wPY6/RfZBK98xPQb1HG58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":407024},"type":"module","engines":{"node":">=20"},"gitHead":"2f8445528a023b622f506d465e133f59289143dd","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.2_1786348302479_0.9940260728107377","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"codiva","version":"0.4.3","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.3","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"b0a4a193341e2a5578657720abd96f323b95712b","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.3.tgz","fileCount":5,"integrity":"sha512-hcqkuWWuu1VonzpdlHc9254sD2pBe45fOSAYX2RQ1I3kjjhzSd1T4xJ2oYhjJL3A5Z7X8GvRY4KtmyL0TnwhEw==","signatures":[{"sig":"MEUCIQDb48L3Ok2ekRJwGEwJm8o92WVRXfdOzyvUlwMGK997pwIgebsn8HMQcHo3vicSR76acpQMbktwGTs8qyfke3BDX80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":468527},"type":"module","engines":{"node":">=20"},"gitHead":"8315f2de8067ad4da3814028e42326d1326431f4","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.3_1786378413058_0.255226088907587","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"codiva","version":"0.4.4","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.4","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"5ae1b6e5800595937455a61e425edfc5daeb2fb6","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.4.tgz","fileCount":5,"integrity":"sha512-8uxSOfoaDzHcRJ1Cor+DaCnxI/JXiSqmGGg9xlokiQn2IlfBpEGpen6nVQiYNInlU4eahMknTYVhniWS1AQhHQ==","signatures":[{"sig":"MEQCIGddI9lESs+c/wr9vmWgUo29w83hV8PBPFfhtzL4WNXkAiB07XrAUqv67EmFeDa65B7Tqs4qfk1bpc+JCYiDvnuGxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489417},"type":"module","engines":{"node":">=20"},"gitHead":"08d78a9461113302ec67bbfc11cff154319770c5","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.4_1786388613202_0.39834711466081063","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"codiva","version":"0.4.5","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.5","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"5b951925e499f98428310db2eb78c61433572d8b","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.5.tgz","fileCount":5,"integrity":"sha512-toD6d6gAe2mc0qiDEq+gmqEUXS1qOZySUrBAkGu4E2cEH9tcID2UisO/scxiLXtBi9Ewz5wl/pbauXTG/smDvw==","signatures":[{"sig":"MEYCIQCMXzvrSeUMshyp9hJ6nRCabYf5R15ZF4Ykgq3kDmQ+GgIhAJPLhKfNkAq6qTHJCBOrlfsqGpJqYVMYsrdgqffGjNcm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492943},"type":"module","engines":{"node":">=20"},"gitHead":"aadb0d517be4379ef479dce8e48ccfc71bacfdca","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.5_1786409279197_0.7448086054061545","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"codiva","version":"0.4.6","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.6","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"ff8115fb0b6548e6f9fa59557e4336ba61b7efc3","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.6.tgz","fileCount":5,"integrity":"sha512-arAaHHTrTYr/dM3MntBmvSgtSKStNHyB6aGdA7Z4Y60gMDgkBMR8Xn8x0fg4Mzu1i42sD4c2jlZHtBmvbylIyg==","signatures":[{"sig":"MEUCIQDhE/PfUfGUJQnaNZ7RRHKTrO0YRkW6pF2Db5Ky4nbbKQIgQUrSVnm7c9Nov5hcEXBm4RKx/upMH3D8QoBHCOjSFe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505003},"type":"module","engines":{"node":">=20"},"gitHead":"01807370556cda6fefeaafd138fef4c05142562a","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.6_1786502276521_0.5123756551763685","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"codiva","version":"0.4.7","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.7","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"67c5c7b0c4a918945362866b82f97163d2fff118","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.7.tgz","fileCount":5,"integrity":"sha512-uQ0vXKTjCDL62Zb/OCFyynWvwa91l4l/1kKNDYIrPx3+f/jaA52qnl5REjPaKa6jDbQz80Sd4BAvFZk+tqH2FA==","signatures":[{"sig":"MEQCIHDHIpbP+tpCs7gQJ4nGYX+yemqtL/3q1zFnZA0Erl7FAiAxld3iziUKB8jtg1X+AcF26+NX+1+CshLXkO3DRPzEuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505003},"type":"module","engines":{"node":">=20"},"gitHead":"508e1f2821b74e7011ad60b0b9eed17d92fa9932","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.7_1786512894451_0.043614061243676394","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"codiva","version":"0.4.8","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.8","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"a0021c157e345fbf7aff45dd0df433af596e013e","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.8.tgz","fileCount":5,"integrity":"sha512-5JHoWBPhQmvNJ1BI1w+YQE+q/Gp7JA2dax7dtr7Ist+7pjnuDeuthOJ7asACipAzqSsibHo4Gxy2jbNYMqmGjg==","signatures":[{"sig":"MEYCIQD5mQITnzGtlX29zKeuMYzZX9+genislt9bL9u9hAY99QIhAPXjHfJjLPNqHXZP9PHRicWj/KHrKVmLsFynq+PNNsvv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505313},"type":"module","engines":{"node":">=20"},"gitHead":"4beaa4b881d80b949196582cd8bb7e95d3433f6d","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.8_1786519053896_0.3881299038036583","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"codiva","version":"0.4.9","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.4.9","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"82a1cf5d8614bdc27ab5c5046939705b39862ade","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.4.9.tgz","fileCount":5,"integrity":"sha512-mf4AYXkpg0dNCmRHldcfkmZ1G5hKS8IlxJ0s9edJfaJXmQJeU8tkwx28VGBgdz2gi/8luLOJ+J8RY6atg5rCSQ==","signatures":[{"sig":"MEUCIQDwfjphQF67WaxHyD8+r0zVguSgCB/wKg1Fo9H0ZTzCOgIgNoQfjQoMc6qOvkCoUHiJ6h/LwbkE+okUFsqd3gwq0J4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.4.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543871},"type":"module","engines":{"node":">=20"},"gitHead":"b588ed0c84eca30873bea473f62a78dbdfd47f5b","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.4.9_1787145650102_0.30164770192469503","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"codiva","version":"0.5.0","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.0","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"2b6b75b572c2bbb5c8691418a8a9bfa72372767b","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.0.tgz","fileCount":5,"integrity":"sha512-s3xrDmXaVZrR1qA0WvNs/w+WDT4wcKu9OCPxkYrY21L4WECcmv/ZGdOQ8jbN5ji9NIh/wb0cA386xP9lrkTrfA==","signatures":[{"sig":"MEUCIAwMtGS8W4eOsSrjtaZsKhvhdZZo0aF/hn2xp0t69VRAAiEAjL2d314pVeOuS+4RJlRWntnjY7MHdqROCHFdsfncnqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":548045},"type":"module","engines":{"node":">=20"},"gitHead":"c783717dfd2e8da30e6d234430855706b8fd43d8","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.0_1787204353974_0.7433281103580924","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"codiva","version":"0.5.1","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.1","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"9e344ccd5a8c96333a4800fa20b391f1e46cf759","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.1.tgz","fileCount":5,"integrity":"sha512-zTj4zAPia0QYO53jt4ZN3f5qOzBvMzruKpyZgVpslKFI1pJu7iHtg0wReB3sCQ0MgGw5BjZzkIL7oWI6e2wl2A==","signatures":[{"sig":"MEUCIEIKI0c2vw55tVIE4xYycwnRg5r45+FTPHOffyjCJZDjAiEAovdMMIVkR/lpRGKgL6cYTfUscw7R/+lpBymoQGj5krU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":557458},"type":"module","engines":{"node":">=20"},"gitHead":"486e5c1487ef00d75c429e81c71397ee0ab8ba05","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.1_1787242223022_0.6923406174009155","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"codiva","version":"0.5.2","keywords":["claude","claude-code","claude-agent-sdk","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.2","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"f5a0b42bd4dcced8e25a6a406c69a30b25c375aa","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.2.tgz","fileCount":5,"integrity":"sha512-aTvXtl6eQWvEh4JI7pUJ57bmy26SGAQ5TDmyjUsUTXyjKNyrejNKLSlxG0VBsOv44Z6ktXxAz0u9jWHM8T2KUA==","signatures":[{"sig":"MEUCIQD6Hv+lK7InJHONdQmPKirpB4HgajVizON2ia03+Z7qIwIgaPX0mOqkqX/nGcRfj9CuP0vkPk80+68i7y8QB0lsqn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":558846},"type":"module","engines":{"node":">=20"},"gitHead":"06bc90aa2c9a5ec69a8ffa0eea5fdc8b4c58df26","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel Claude Code sessions in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.2_1787274107743_0.12198436368761523","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"codiva","version":"0.5.3","keywords":["claude","claude-code","claude-agent-sdk","codex","grok","coding-agent","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.3","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"a4d293c7d7a64cf89f215582c048bfd13b349a56","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.3.tgz","fileCount":5,"integrity":"sha512-OeO9Ny9utxK5e4eyH5+nW3E5cCax30Cir/8TCu6LlH2od26E/IFap16vd4bNVvNFt9W5ktJ0zGs40GhhGxfgag==","signatures":[{"sig":"MEUCICqy+WjLMtvg9T1eh3cdxAhfoCi+Wc65fMdYfahTJtLpAiEA1KS6PuTWlMMRbHQMXMDyjM2nSSG9C265iUueMtI2bys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561031},"type":"module","engines":{"node":">=20"},"gitHead":"e7aaad31b3974223e0b64a47235ebd10357cae69","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel coding-agent sessions (Claude Code / Codex / Grok) in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.3_1787280266088_0.01887597757113424","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"codiva","version":"0.5.4","keywords":["claude","claude-code","claude-agent-sdk","codex","grok","coding-agent","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.4","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"c1ec1567fb0a1dc2196e0c4669851aef62291ed7","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.4.tgz","fileCount":6,"integrity":"sha512-hfWEo+t29Kudu2vv5Qc0OQsYCHqP7gjvWaCoA9LM8wOA3yIoFs98beUAMtUxR6TWfyPV5Epi0EZ/hPWZGhhEEw==","signatures":[{"sig":"MEUCIQCXiPwosc6LwWFktz9FnvO57S20SRi0bq5/33fdvkSIjgIgG5i5owzsGEXNzoEfE/fGMenNbX78ATGEHa8gYFkIRQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":615888},"type":"module","engines":{"node":">=20"},"gitHead":"d3a5475832830946d4e2f80b6b39f685d14dea6a","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel coding-agent sessions (Claude Code / Codex / Grok) in isolated git worktrees","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.4_1787286992359_0.9869087649720352","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"codiva","version":"0.5.5","keywords":["claude","claude-code","claude-agent-sdk","codex","grok","coding-agent","tui","ink","git-worktree","ai","agent","cli"],"author":{"name":"takecchi"},"license":"MIT","_id":"codiva@0.5.5","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"homepage":"https://github.com/takecchi/codiva#readme","bugs":{"url":"https://github.com/takecchi/codiva/issues"},"bin":{"codiva":"dist/index.js"},"dist":{"shasum":"d164ed280cd7a595ae8c58c013ce71eeef9521fe","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.5.5.tgz","fileCount":6,"integrity":"sha512-OewQx6uAkQu7Vv1Pw2SnxY/wZoyZjotn7RzwTTRkXaZHiEINZlmWlERZACAlxUVPoOhvDBd3ztwUlH+Qopcw7Q==","signatures":[{"sig":"MEYCIQDUWZQZU+l2au9fI9dsn+8FdiQefbPzSYBhnVlJaFU1WAIhANWHFAxVHKjG69VB62m+1BB5bMgNUciTXSDDbX6gEYsJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":670912},"type":"module","engines":{"node":">=20"},"gitHead":"7ea0916dc3b6ba14c9f6787055baa5f2df15ed35","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.0.2","description":"TUI app that runs parallel coding-agent sessions (Claude Code / Codex / Grok) in isolated git worktrees","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^16.4.2","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/codiva_0.5.5_1788834961380_0.8880095977388678","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"_id":"codiva@0.6.0","bin":{"codiva":"dist/index.js"},"bugs":{"url":"https://github.com/takecchi/codiva/issues"},"dist":{"shasum":"d0c3af858228aa2cdabd47dd07679511688f09ee","tarball":"https://registry.npmjs.org/codiva/-/codiva-0.6.0.tgz","fileCount":6,"integrity":"sha512-EXEPeoPYUyfxRlgjdldJ7c6czXBYPUFUpx4thzlFx/G/xTBCrqtP1WckCTFmkM+tdYILugY9otUANORwHgq1PQ==","signatures":[{"sig":"MEUCIEMFggF7h6UywpcOQRgUlJ9g7qTAVbdc+NkPAscwpXEmAiEAjmzo6Q7d9elferxJx4FLZ9cfWI3E9WJo/NAVG7oomAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD05hf5Hdm/0XJ/vloCD0nwCPwiNUnjClUgLo2/cBd+IgIgKFC4bzymPmbWebB09xbsWq6gngeMWNISHI+xElocz1A="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codiva@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":730763},"name":"codiva","type":"module","author":{"name":"takecchi"},"engines":{"node":">=20"},"gitHead":"270a2963bf7504f34dbda286087678dfb11df582","license":"MIT","scripts":{"dev":"tsx src/index.tsx","lint":"biome check .","test":"vitest run --coverage","build":"tsup","spike":"tsx scripts/spike.ts","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.6.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d364bcc-9dfa-40c8-a555-617148932da2"}},"homepage":"https://github.com/takecchi/codiva#readme","keywords":["claude","claude-code","claude-agent-sdk","codex","grok","antigravity","coding-agent","tui","ink","git-worktree","ai","agent","cli"],"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"_npmVersion":"12.1.0","description":"TUI app that runs parallel coding-agent sessions (Claude Code / Codex / Grok / Antigravity) in isolated git worktrees","directories":{},"maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"ink":"^7.1.1","react":"^19.2.7","marked":"^18.0.13","string-width":"^8.2.2","@anthropic-ai/claude-agent-sdk":"^0.3.214"},"_hasShrinkwrap":false,"packageManager":"npm@11.14.1","devDependencies":{"tsx":"^4.23.1","tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"^19.2.17","@biomejs/biome":"^2.5.4","@vitest/coverage-v8":"^4.1.10","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codiva_0.6.0_1790276473931_0.6472842475338967"}}},"time":{"created":"2026-07-19T05:18:53.619Z","modified":"2026-09-24T19:01:14.468Z","0.1.0":"2026-07-19T05:18:53.811Z","0.1.1":"2026-07-19T05:29:39.995Z","0.1.2":"2026-07-19T07:47:50.766Z","0.1.3":"2026-07-19T08:32:44.105Z","0.1.4":"2026-07-19T09:56:34.916Z","0.1.5":"2026-07-19T12:22:32.558Z","0.1.6":"2026-07-19T12:37:54.102Z","0.1.7":"2026-07-19T15:54:42.809Z","0.1.8":"2026-07-19T19:30:44.837Z","0.1.9":"2026-07-20T05:51:56.238Z","0.2.0":"2026-07-21T03:30:28.536Z","0.2.1":"2026-07-21T04:56:56.196Z","0.2.2":"2026-07-21T08:57:00.610Z","0.2.3":"2026-07-21T11:31:57.397Z","0.2.4":"2026-07-21T12:29:57.250Z","0.2.5":"2026-07-21T15:08:12.836Z","0.2.6":"2026-07-28T06:00:41.254Z","0.2.7":"2026-07-28T06:24:35.569Z","0.2.8":"2026-07-28T08:51:12.794Z","0.2.9":"2026-07-30T04:20:53.004Z","0.3.0":"2026-07-30T10:35:33.546Z","0.3.1":"2026-07-30T17:04:45.735Z","0.3.2":"2026-07-30T18:08:55.722Z","0.3.3":"2026-07-30T18:36:39.066Z","0.3.4":"2026-07-31T01:28:01.010Z","0.3.5":"2026-07-31T16:38:45.976Z","0.3.6":"2026-08-02T03:12:54.893Z","0.3.7":"2026-08-04T10:01:29.186Z","0.3.8":"2026-08-04T18:40:31.047Z","0.3.9":"2026-08-05T17:56:18.661Z","0.4.1":"2026-08-07T10:09:41.707Z","0.4.2":"2026-08-10T07:51:42.617Z","0.4.3":"2026-08-10T16:13:33.205Z","0.4.4":"2026-08-10T19:03:33.382Z","0.4.5":"2026-08-11T00:47:59.385Z","0.4.6":"2026-08-12T02:37:56.712Z","0.4.7":"2026-08-12T05:34:54.624Z","0.4.8":"2026-08-12T07:17:34.079Z","0.4.9":"2026-08-19T13:20:50.252Z","0.5.0":"2026-08-20T05:39:14.165Z","0.5.1":"2026-08-20T16:10:23.231Z","0.5.2":"2026-08-21T01:01:47.879Z","0.5.3":"2026-08-21T02:44:26.234Z","0.5.4":"2026-08-21T04:36:32.508Z","0.5.5":"2026-09-08T02:36:01.551Z","0.6.0":"2026-09-24T19:01:14.024Z"},"bugs":{"url":"https://github.com/takecchi/codiva/issues"},"author":{"name":"takecchi"},"license":"MIT","homepage":"https://github.com/takecchi/codiva#readme","keywords":["claude","claude-code","claude-agent-sdk","codex","grok","antigravity","coding-agent","tui","ink","git-worktree","ai","agent","cli"],"repository":{"url":"git+https://github.com/takecchi/codiva.git","type":"git"},"description":"TUI app that runs parallel coding-agent sessions (Claude Code / Codex / Grok / Antigravity) in isolated git worktrees","maintainers":[{"name":"takecchi","email":"takecchi.kobayashi@gmail.com"}],"readme":"# codiva\n\n> A TUI app you launch inside a Git repository. Every instruction you type starts a coding-agent session (Claude Code / Codex / Grok / Antigravity) on its own isolated git worktree, and they all run in parallel.\n\n[![npm version](https://img.shields.io/npm/v/codiva.svg)](https://www.npmjs.com/package/codiva)\n[![CI](https://github.com/takecchi/codiva/actions/workflows/ci.yml/badge.svg)](https://github.com/takecchi/codiva/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n\n**日本語のドキュメントは [README.ja.md](./README.ja.md) にあります。**\n\n`codiva` is a terminal UI that spins up a coding-agent session on a fresh git worktree + branch every time you type a plain-language instruction, so several tasks make progress at the same time. The goal is simple: *keep throwing instructions at it and watch the work happen in parallel.*\n\n**It is not Claude Code only.** You can pick any of these four (switch with `/agent` in the session list — see [Choosing and switching agents](#choosing-and-switching-agents-agent)):\n\n| Agent | What it launches |\n|---|---|\n| **Claude Code** | [Claude Agent SDK](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk) (the `claude` CLI) |\n| **Codex** | OpenAI's `codex` CLI |\n| **Grok** | xAI's `grok` CLI |\n| **Antigravity** | Google's [`agy` CLI](https://antigravity.google/docs/cli/) |\n\nYou can choose the default for new sessions, and you can also switch a running session mid-flight (the worktree, working tree and PR all carry over). Where agents differ in what they support (permission dialogs, cost display, …) is spelled out in the capability table below.\n\n## Features\n\n- **Parallel sessions** — every instruction gets its own worktree (`.codiva/worktrees/<slug>`) and branch (`codiva/<slug>`), so file edits never collide.\n- **Pick your agent** — Claude Code / **Codex** (`codex` CLI) / **Grok** (xAI's `grok` CLI) / **Antigravity** (Google's `agy` CLI). Use `/agent` in the list to choose the default for new sessions (saved automatically), and `/agent` in the detail view to switch an existing session mid-flight. Install and login status is shown in `/agent`, and `/login` lets you sign in from inside codiva (Antigravity is the exception — `agy` has no `login` subcommand).\n- **Live progress** — the list view shows every session's state (`Running` / `Step 4/7` / `Question` / `Awaiting permission` / `Completed` / `Failed`) and elapsed time.\n- **Non-blocking submission** — you can type the next instruction the instant you submit one.\n- **Permission replies and follow-ups** — approve/deny tool use and send follow-up instructions to a running session from the detail view.\n- **Merge or discard** — review the diff stat of a finished session, then merge it into the base branch or throw the whole worktree away.\n- **Repo-wide instructions** — anything written in `.codiva/prompt.md` (e.g. \"open a PR when you're done\") is injected into every session. Editable inside the TUI via `/prompt`.\n- **Plan / usage display** (Claude only) — the list header shows your claude.ai plan tier (Pro / Max / Team / Enterprise) and usage limit windows (percentage used, time until reset). Codex / Grok / Antigravity don't report these, so nothing is shown while one of them is the default agent.\n- **Current branch** — the header shows the branch the target repository has checked out (i.e. where new sessions branch from and merge back to). It catches up within seconds even if you switch branches in another terminal.\n- **Training-data warning** (Claude only) — a notice line appears in the startup header only when claude.ai's \"Help improve our AI models\" setting is ON.\n- **Update notification** — codiva checks npm for a newer version at startup and shows one line in the header if there is one. `/update` upgrades in place after a confirmation.\n- **Keyboard-first** — the mouse is optional. You can still drag-select and copy from the input, the header and the session log (dragging past the edge of the log auto-scrolls while the selection keeps growing). URLs in the log open in your browser on click.\n- **Japanese / English UI** — switch via `~/.codiva/config.json` or `CODIVA_LANG`.\n\n## Requirements\n\n- Node.js **>= 20**\n- **At least one of the `claude` / `codex` / `grok` / `agy` (Antigravity) CLIs** installed and logged in (see [Choosing and switching agents](#choosing-and-switching-agents-agent)).\n  codiva starts even with none of them installed, and `/login` lets you sign in from inside codiva (for `agy`, run `agy` on its own to sign in).\n- The target directory is a Git repository with at least one commit\n\n## Installation\n\n```bash\nnpm install -g codiva\n```\n\nJust want to try it once:\n\n```bash\nnpx codiva\n```\n\n### Updating\n\nAt startup codiva queries the npm registry exactly once and, if a newer version exists, shows `↑ v0.3.0 is available · run /update` in the banner (nothing is shown when you're up to date or the check failed).\n\nRunning `/update` re-checks for the latest version and, if there is an update, prints the command it would run and asks `y` / `n`. On `y` codiva runs `npm install` itself and then asks you to restart.\n\n- Global install (`npm install -g codiva`) → runs `npm install -g codiva@latest` (you get a warning first if sessions are still running)\n- `npx codiva` → nothing to update, so nothing happens (the next `npx` picks up the latest)\n- Anything else (a project-local dependency / under a tool manager like volta / Windows / an install layout codiva can't identify) → codiva **does not run anything** and only shows you the command to run\n\nThe set of layouts codiva refuses to handle is deliberately wide. Updating a local dependency rewrites your repository's `package.json` and lockfile and rebuilds `node_modules` (which is symlinked into every worktree by default). And running `npm install -g` against an unidentified layout could install to somewhere other than where codiva actually lives and break your environment. The cost of a misdetection is capped at \"you have to run one command yourself\".\n\nThe check is a single request to `https://registry.npmjs.org/codiva/latest` (~2.3 KB, 3-second timeout) and the only thing sent is the package name — no version, no telemetry. Startup is never blocked, even offline. Set `\"updateCheck\": false` in `~/.codiva/config.json` to disable the request entirely.\n\n## Usage\n\nLaunch it from the root of the target repository.\n\n```bash\ncd path/to/your-repo\ncodiva\n```\n\n1. Type an instruction (e.g. \"implement the login flow\") and hit Enter. A new session is created and you can immediately type the next one.\n2. Watch each session's progress in the list view.\n3. Select a session to open the detail view, where you can read the log, send follow-ups and answer permission requests.\n4. When it's done, review the diff stat and merge or discard.\n\n> codiva writes a `.codiva/.gitignore` containing a single `*` line, which hides everything under `.codiva/` from git (the ignore file matches `*` itself, so it's self-contained). Your repository's `.gitignore` and the contents of `.git/` are never touched.\n\n### The input field\n\nLong instructions **wrap automatically** at the terminal width, so nothing you type is truncated out of view (words aren't broken mid-word when there's whitespace to break at). The field grows to 8 rows and then scrolls internally to follow the caret.\n\n#### Keys\n\nThese are identical in every input field (the list composer, the follow-up field in the detail view, the `/prompt` editor, and the free-text field in question dialogs). There's a single implementation, so behaviour never differs by location.\n\n| Key | Action |\n|---|---|\n| `Enter` | Submit (runs a command when the text starts with `/`) |\n| `Shift+Enter` | Newline (on terminals where that doesn't reach the app, end the line with `\\` and press `Enter`) |\n| `Ctrl+U` | **Clear the draft** (empties the field regardless of caret position) |\n| `←→` | Move the caret |\n| `↑↓` | Move the caret (by **visual row**, i.e. after wrapping). Pressing again at the top/bottom row walks the **input history** (list composer only) |\n| `Backspace` | Delete one character |\n\n#### Input history (list composer)\n\nIn the list view's input field, `↑` recalls **instructions you already sent**, like a shell (last 50; repeated identical instructions collapse into one).\n\n- `↑` only becomes history when the caret is on the top row. While you're writing a multi-line draft, normal caret movement wins, so a draft never turns into history behind your back.\n- `↓` walks back toward the newest entry, and going past the newest restores **the draft you had when you started browsing** (peeking at history never costs you your draft).\n- Recalled text is fully editable (the caret lands at the end). `Ctrl+U` throws it away.\n- In the detail view's follow-up field `↑↓` scroll the log, so history is a list-composer-only feature.\n\n> macOS's `Cmd+Delete` never reaches the app (the `super` modifier only arrives on terminals with the kitty keyboard protocol enabled), which is why \"clear all\" is bound to `Ctrl+U`. To use `Cmd+Delete`, map it to `Ctrl+U` (`\\x15`) in your terminal. On Ghostty, add this one line to your config:\n>\n> ```\n> keybind = super+backspace=text:\\x15\n> ```\n\n### Focus movement in the list (`Tab`) and answering questions\n\nIn the list view, `Tab` cycles focus **input field → question/permission dialog → session list → input field** (`Esc` returns to the input field from anywhere). The dialog only joins the cycle when the selected session is **actually waiting on a question or a permission request**.\n\n| Zone | What `↑↓` does | Main keys |\n|---|---|---|\n| Input field | Caret movement / input history | `Enter` submit |\n| Dialog | Move through the dialog's choices | `Enter` confirm · `Space` toggle (multi-select) · `y`/`n` (tool permission) |\n| Session list | **Select a session** | `Enter`/`→` detail · `m`/`d`/`x` · `p` |\n\n- **Selecting a row that's waiting on a question or permission hands the keys straight to the dialog** (whether you got there with `↑↓` or by clicking the row). Answering is what's blocking progress, so you shouldn't have to press `Tab` to reach it.\n- **`Tab` is the way back to the list** (i.e. to switching sessions with `↑↓`). In the list zone the dialog stays visible — you can still read it — but it doesn't receive keys.\n- **Dialog choices are clickable too** (confirm with `Enter` — the same relationship as clicking a list row and pressing `Enter` to open the detail view). Clicking a wrapped label line or a description line selects that choice as well. Even a dialog that's \"display only\" in the list zone will hand focus back to answering when you click a choice.\n  - A click never confirms a permission (`y`) or a choice. `y`/`n` for tool permissions always require a key.\n- Partial answers (which question you're on, which boxes are checked, a half-written free-text answer) survive `Tab` round-trips and clicking back into \"write your own\".\n- Once you've answered, focus returns to the input field, so the next incoming question **doesn't steal your keystrokes** (one `Tab` gets you back to answering).\n\n> **`Space` toggles checkboxes even with a Japanese IME turned on.** With macOS Japanese input, `Space` during kana composition arrives as a **full-width space** (only `Shift+Space` arrives as a half-width one). codiva treats the full-width space as the `Space` key, so you don't have to disable the IME or add `Shift` just to tick a box. (Letter keys such as `y`/`n` for tool permissions get swallowed by IME conversion, so turn the IME off for those.)\n\n### Focus movement in the detail view (`Tab`) — read back before you answer\n\n**While a question or permission dialog is up** in the session detail view, `Tab` moves between **the dialog and the conversation log**. It exists so you're never shown a question in isolation and forced to answer without knowing what it's about.\n\n| Zone | What `↑↓` / `PgUp` `PgDn` do | Main keys |\n|---|---|---|\n| Dialog (default) | Move through the dialog's choices | `Enter` confirm · `Space` toggle · `y`/`n` (tool permission) |\n| Conversation log | **Scroll the log** | `Tab` back to answering · `Esc` to the dialog |\n\n- When a dialog appears **focus lands on the dialog first** (answering is what's blocking progress, so you don't press `Tab` to get there). Press `Tab` once when you want to read back.\n- In the log zone the dialog **stays on screen** — only the keys go elsewhere. `Tab`, `Esc` or **clicking the dialog** all get you back to answering.\n- Partial answers (question index, checked boxes, half-written free text) survive the round-trip.\n- **Drag-selection and clicking URLs work as usual** in the log zone (wheel scrolling works in both zones).\n- Once you've answered, focus returns to the dialog side so you can answer the next question right away.\n- `Ctrl+C` (interrupt) works in both zones.\n- **The dialog never crushes the log.** When there are many choices or long descriptions, the dialog gets a height cap and **the choices scroll internally** (hidden entries are shown as `↑ 3 more` and follow your cursor as you move with `↑↓`). Previously the dialog grew one row per choice, and on a ~24-row terminal **not a single log line was visible**. The list view's dialog reserves room for session rows the same way.\n\n### Reading and scrolling the log\n\nIn the session detail log, the agent's response **grows downward as it arrives** (rather than a single line being rewritten), so you can read it like a chat.\n\n- **It only follows the tail while you're at the bottom.** While you're back in history via `↑`/`PgUp`/wheel, the view doesn't move a single line even as the response grows (you never get swept along mid-read). \"Viewing history — N lines to latest\" appears at the bottom of the screen; `↓`/`PgDn` returns to the tail and resumes following.\n- While text is still streaming it's rendered plain (no bold, no headings); it's replaced with the formatted body the moment the turn completes.\n\n### Folding tool-call lines (`Ctrl+O` / `/tools`)\n\nAn agent's work log is mostly `⏺ Bash(…)` / `⎿ …` pairs, one after another, so **the actual conversation (its explanations and your instructions) drowns in tool chatter**. codiva **folds each run of consecutive tool calls into a single summary line**.\n\n```\n> Does release/stg work the same way?\n⏺ ▸ Read 3 files, ran 5 shell commands\nYes, stg runs on the same settings.\n```\n\n- **One click opens it** (anywhere on the summary line). An open run is marked `▾` and its lines appear underneath; click again to fold it back.\n- **`Ctrl+O` folds/unfolds everything at once** (the same key as Claude Code). The **`/tools`** command in the palette does the same. Both work while a permission/question dialog is up.\n- **Work in progress is never folded.** The run at the very end of the log stays fully visible and is folded only once the next message or instruction arrives — you never lose sight of what the agent is doing right now.\n- **A run with a single tool call is not folded either.** One `Read src/core/scroll.ts` line reads fine on its own; folding it would only drop the file name.\n- Folding is display-only — nothing is lost. The summary breaks the run down by kind (reads / edits / shell commands / searches …).\n- To change the default, set `collapseToolLogs` to `false` in `~/.codiva/config.json` (or toggle it from `/config`). Even then, `Ctrl+O` folds everything whenever you want.\n\n### Spotting your own messages\n\nYour instructions in the log (the `>` lines) get a **background tint**, so when you scroll back through a long exchange you can see where you spoke without reading a word of it.\n\n### Following subagents (`/subagents`)\n\nWhen the agent spawns a **subagent** (Claude Code's Task tool — delegating research or sub-tasks to a separate agent), the detail view shows one line about it below the log.\n\n```\n⏺ Subagent: general-purpose · running · Writing report.txt · Write · 12s\n```\n\n- The line shows the **type, status, what it is doing right now, the last tool it used, and elapsed time**. \"What it is doing\" is rewritten as the subagent reports progress.\n- **Click that line to open a log view for that subagent** (`Esc` returns to the detail view). Without a mouse, type **`/subagents`**.\n- When several are running the line folds into \"+N more\"; clicking it (or `/subagents`) lets you pick from a list.\n- **Tools the subagent runs internally no longer mix into the parent log** — they are collected in its own log, and the parent log keeps a single line describing what was delegated.\n- Records stick around after a subagent finishes, so you can read back its result and what it did (up to 8 per session; they are dropped when codiva restarts).\n- The subagent log view has **no input field** — you cannot instruct a subagent directly. `Ctrl+C` there interrupts the *parent* session's turn.\n- The subagent log view supports the same **tool-run folding** (`Ctrl+O` / click), text selection and URL clicks as the detail view (there is one log implementation, so behaviour never diverges).\n- Only **Claude Code** reports subagents today (nothing appears with Codex / Grok / Antigravity).\n\n### Interrupting work in progress (`Ctrl+C`)\n\nPressing `Ctrl+C` in the session detail view **interrupts the turn that session is currently running** (the same gesture as `Ctrl+C` in Claude Code). codiva itself does not exit.\n\n- An interrupted session is kept as **\"interrupted\", not \"failed\"**, so `Ctrl+R` (or just sending a follow-up) resumes **the same conversation**. The worktree, branch and work-in-progress code are untouched.\n- **It works while a permission or question dialog is up too.** The dialog's `n` (deny) only refuses that one tool call and work continues, so use `Ctrl+C` when you want to stop *the work itself*.\n- It works while the input field has focus (use `Ctrl+U` if you only want to clear a draft). A hint appears at the bottom of the screen while a turn is running.\n- If you want to **throw the session away** rather than interrupt it, use `d` (discard) / `x` (remove). In the list view `Ctrl+C` does nothing — interrupting is a detail-view-only action, to avoid misfires.\n\n### Copying text\n\n**Every input field** (the list composer, the detail view's follow-up field, the `/prompt` repo-instruction editor, the free-text field in question dialogs), the header (wordmark / plan / model / branch / cwd) and **the session detail log** support **drag to select, release to copy to the clipboard** (via OSC 52, so it works over SSH too). Drag the header's cwd line to paste the path you're working in. Dragging in the header never moves typing focus or the selected row in the list.\n\n- **You can select beyond what fits on screen in the log.** Keep dragging past the visible area (above the top / below the bottom) and the log auto-scrolls in that direction while the selection keeps growing. Scrolling continues even if you hold the mouse still, and only the selected range is copied when you release.\n- What gets copied is **exactly what you see** (wrap points become newlines, and line prefixes like `•` and continuation indents are included).\n- The selection is highlighted in reverse video and cleared by any keypress.\n- Native terminal selection (select anywhere, but no app-side features) is available with **Shift+drag**, or by disabling mouse capture with `\"mouse\": false`.\n\n### Opening URLs in the log\n\nURLs in the session detail log are **underlined and open in your browser on click** (only a press-and-release without dragging opens them, so it doesn't conflict with drag-selection).\n\n- `http(s)` URLs are recognized. For Markdown links (`[label](URL)`), clicking the label follows the link.\n- Even when wrapping splits a URL across two lines, **clicking either line opens the whole URL**.\n- **This is a plain click, not Cmd+click (the terminal's own link handling).** While codiva is full-screen it enables the terminal's mouse reporting, and some terminals disable their own link detection in that state (Ghostty ignores link hover and clicks entirely while the mouse is captured; SGR mouse reports have no bit for Cmd/Super either). So codiva takes the click itself and opens the URL, which behaves the same on every terminal.\n- codiva also emits **OSC 8 hyperlinks**, so on terminals that support them (iTerm2 / GNOME Terminal / Windows Terminal, …) the terminal's own Cmd+click / Ctrl+click works too. On Ghostty / kitty / WezTerm, add Shift — **Shift+Cmd+click** (Shift+Ctrl+click on Linux) — because Shift is the mouse-capture bypass key. Terminals that don't support the escape simply ignore it and the display is unchanged.\n\n### GitHub PR status\n\nThe right edge of each list row shows the state of the PR for that session's branch (detected by running `gh` every 20 seconds; click or press `p` to open it in a browser).\n\n| Display | Meaning |\n|---|---|\n| `⋯` | Checking (the first query hasn't finished) |\n| (blank) | No PR for this branch |\n| `⋯ #12` | PR exists, **state being checked** (e.g. right after a restart) |\n| `? #12` | PR exists, **state could not be checked** (rate limit / offline / `gh` not authenticated) |\n| `✓ #12` | Mergeable (checks are green too) |\n| `● #12` | **Checks running** |\n| `✗ #12` | **Checks failed**, or not mergeable due to conflicts |\n| `⑂ #12` | Merged |\n| `⊘ #12` | **Closed without merging** (not a recovery target — see below) |\n| `✓ #12 +2` | **3 PRs in total** (see below) |\n| `?` | **Could not be checked** (GitHub API rate limit / offline / `gh` not authenticated) |\n\nA dimmed number (`#12`) means a draft PR. On machines without `gh` the PR column is always empty.\n\n#### When one session produces several PRs\n\nWhen a session cuts its own branch and runs `gh pr create`, several PRs end up attached to one session. The list then shows `#12 +2` (the primary number plus the remaining count), and **the full set appears in the detail view (Enter) on the `3 PRs: ✓ #12 · #13 · #14` line**.\n\n- The primary is **the PR for the session's branch (`codiva/<slug>`)**. That's what click / `p` opens, and the glyph (`✓` / `✗` / `●`) is that PR's state. If the branch has no PR, the last PR the session created becomes primary.\n- Once a PR is primary, codiva **queries it by URL and tracks its state** even when its head branch isn't checked out in the worktree (including PRs in another repository), so it gets a glyph. Non-primary PRs (folded into `+n`) aren't tracked, so the detail view shows just their numbers.\n- Conversely, **a reference GitHub answers \"no such PR\" for disappears from the list** (a misdetected URL, or a PR that was deleted). It is *not* dropped when the state merely \"couldn't be checked\" due to rate limiting or being offline (you just get `?`).\n- Detection comes from the command output (the PR URL) of a `gh pr create` run. Merely looking at other PRs with `gh pr list` or `gh pr view` doesn't count (nor do commands that mix reads in, like `gh pr create … || gh pr list …`, to avoid false positives). Detected numbers are persisted, so `+n` survives a restart.\n- Conversely, **PRs created while codiva wasn't running, or before this feature existed, don't show up in `+n`** (the command output happens once and can't be re-derived from a branch name later). PRs on the session branch are still detected via `gh` as always.\n- Rows with multiple PRs widen the PR column slightly, so on narrow terminals (~80 columns) the branch column may be dropped.\n\nA PR's **number** and its **state** are handled separately. The number is immutable for a branch, so it's persisted and `#12` appears immediately on the next launch (the state glyph arrives with the first poll). When only the state can't be fetched, the number stays and `⋯` (checking) / `?` (unknown) takes the glyph's place.\n\nWhen you see `?`, check `gh auth status` and `gh api rate_limit`. GitHub's API rate limit in particular (GraphQL: 5000/hour) is shared with the `gh` calls your sessions make themselves, so heavy parallel work can exhaust it. On detecting this, codiva pauses polling for 5 minutes to let it recover. **The last known PR number and state stay on screen throughout** (vanishing would be more confusing).\n\n### Recovering a stuck PR (base merges / CI fixes)\n\nWhen a PR conflicts (`✗`) or CI goes red, you shouldn't have to enter each worktree by hand to fix it.\n\n| Action | What it does |\n|---|---|\n| `/sync` | **Merges the base branch into** the selected session's worktree (the current session's, in the detail view) |\n| `/fix-ci` | **Asks the selected session to fix the failing CI** |\n| `Ctrl+F` (= `/recover`) | Recovers **every stuck session** at once (shows the count and asks `y` / `n`) |\n\n`Ctrl+F` works regardless of focus. While there are stuck rows, a hint line appears in the list.\n\n**What `/sync` does** (`git fetch origin <base>` → `git merge`):\n\n| Situation | Result |\n|---|---|\n| Base is already included | Nothing happens |\n| Merged cleanly | Merges and **pushes** (the session isn't woken — no tokens spent) |\n| **Conflicted** | Does *not* `git merge --abort`; **leaves the conflict in the worktree** and asks the session to resolve it, with the conflicting file list attached |\n| **Uncommitted changes present** | Doesn't attempt the merge; asks the session to commit/stash first, then take the base in (so it can't get mixed into work in progress) |\n\ncodiva never resolves conflicts on its own with things like `-X ours` (that would silently discard code). The session (the AI) decides, and is instructed to ask when it can't.\n\n**PRs closed without merging (`⊘`) are not recovered.** Unlike a conflict or a red CI, they aren't *stuck* — they're **done** (a human decided to close them). They're excluded from `Ctrl+F`, and even with `autoSync` / `autoFixCi` enabled no base-merge or CI-fix instruction is sent (no tokens on closed PRs). To continue the work, reopen the PR on GitHub (the state glyph comes back on the next poll).\n\n**What `/fix-ci` does**: it pulls **the failing check names and URLs** out of the very same `gh pr view` call that backs the PR status (no extra API calls) and attaches them to an instruction to \"read the logs with `gh run view --log-failed`, fix the cause and push\". Fetching the logs and making the fix is the session's own job.\n\n**Automation** (off by default; the manual commands work regardless of these settings):\n\n```json\n{ \"autoSync\": true, \"autoFixCi\": true }\n```\n\n- `autoSync`: merge the base in automatically once a PR is found to be conflicting.\n- `autoFixCi`: ask for a fix automatically when checks go red.\n- Both only fire **while a session is idle** (completed, failed, interrupted, …). They never interrupt work in progress, and never run `git merge` in a worktree that's being worked on (the manual `/sync` behaves the same).\n- Automatic requests are limited to **2 per session per kind**. The count only resets when the PR **actually goes green** (or gets merged) — not on \"checks running\" right after a push (otherwise a fix that never works would loop turns forever).\n- The default is off because a request means a turn runs, which means you get billed.\n\n### Query frequency (more sessions doesn't mean more load)\n\nInstead of querying every session every 20 seconds, codiva does this:\n\n- **Refresh intervals depend on state** — 20 seconds while checks are running, 60 seconds while GitHub is computing mergeability, 3 minutes for a settled PR. **Merged PRs and discarded/merged sessions are never queried again.** In between, the cached value is displayed as-is.\n- **Batched into one call** — when 3 or more sessions need checking in the same cycle, a single `gh pr list` fetches everything and it's matched up locally. Ten sessions still means one API call.\n- **Backs off when exhausted** — on detecting a rate limit or missing authentication, polling stops for 5 minutes.\n\n### Plan / usage display (when the default agent is Claude)\n\nThe list view's header (banner) shows the claude.ai plan you're logged into and your usage limit windows (Codex / Grok / Antigravity don't report these, so nothing appears while one of them is the default).\n\n```\nCodiva v0.3.1   3 sessions\nPlan: Claude Max   Model: claude-sonnet-5   Branch: main\n/Users/you/projects/your-repo\n\nUsage\n  Current session   ████████░░░░░░░░░░░░  42%  resets in 2h 45m\n  This week         ██████████████████░░  88%  resets in 3d 0h\n```\n\n- Every window (5-hour, weekly, extra usage) is listed as a **gauge + percentage + time remaining**. The plan name, organization name and **the target repository's current branch** appear on the same line as the model (`Plan: Claude Max   Model: sonnet   Branch: main`). The branch is where new sessions branch from and merge back to; it catches up within seconds even if you `git switch` in another terminal, and is hidden on a detached HEAD.\n- Updates come from two sources: running sessions get the latest values Claude sends at the start of each turn, and idle ones get an **automatic fetch every 5 minutes** (both are queries to Claude that run no inference, so there's no token usage or billing). Time-to-reset counts down.\n- Some plans don't get a percentage (`%`) back from Claude. In that case the gauge is omitted and only the time remaining is shown (so 0% isn't misread).\n- With an API key / Bedrock / Vertex there is no subscription limit, so this display doesn't appear.\n- **The header describes \"the agent that will run next\".** Switch the default to Codex / Grok / Antigravity with `/agent` and the agent name, plan, model and usage all switch together (none of them report a plan or usage, so the plan line and gauges disappear and the model falls back to `Model: CLI default`). The 5-minute claude.ai fetch also stops while that's the case, and resumes when you switch the default back to Claude.\n- The status bar at the bottom only carries the mode indicator (`⏵⏵ auto mode`) and key hints. Plan / usage live in the header (press Esc to return to the list if you want to see them from the detail view).\n\n### Choosing and switching agents (`/agent`)\n\nSessions can be driven by **Claude Code** (the `claude` CLI / Claude Agent SDK), **Codex** (OpenAI's `codex` CLI), **Grok** (xAI's `grok` CLI) or **Antigravity** (Google's `agy` CLI). Claude is the default, but codiva is perfectly usable with only the other three installed.\n\n1. Install the CLI you want and log in (`claude` → `claude auth login` / `codex` → `codex login` / `grok` → `grok login` / `agy` → **run `agy` with no arguments and sign in there**). Grok installs via `curl -fsSL https://x.ai/cli/install.sh | bash` (and also works with `XAI_API_KEY`); Antigravity installs via `curl -fsSL https://antigravity.google/cli/install.sh | bash`, which puts `agy` in `~/.local/bin` (make sure that's on your `PATH`; docs at <https://antigravity.google/docs/cli/>). **codiva does not bundle these CLIs** — like `git` and `gh`, it launches the commands installed on your machine (so users who don't need a provider aren't shipped a large binary). codiva never touches their credentials either.\n2. **Type `/agent` in the list** and pick an agent; that's it — it becomes the default for new sessions (no hand-editing config: your choice is saved to `~/.codiva/config.json`. Writing `\"agent\": \"codex\"` / `\"agent\": \"grok\"` / `\"agent\": \"antigravity\"` yourself works too). The dialog lists each agent's **install and login status** (`Ready` / `Not signed in` / `Not installed`).\n3. To switch an already-running session, open the detail view (`Enter` from the list) and pick **`/agent`** there. The switch takes effect **from the next instruction**.\n\ncodiva starts even with none of `claude`, `codex`, `grok` or `agy` installed. In that case the list says \"No coding agent found\" — follow the instructions to install one and log in.\n\n**You can sign in from inside codiva.** Type **`/login`** in the list or detail view (or select a target in the `/agent` dialog and press `l`) and codiva launches `codex login` / `claude auth login` / `grok login --device-auth` in the background, **showing the auth URL and one-time code in a dialog** (the URL is also opened in your browser automatically). Finish signing in there and the status updates on its own (`Esc` aborts). The terminal is never handed over, so other sessions keep running.\n\n**Antigravity is the one exception — you can't sign in from inside codiva.** `agy` has no `login` subcommand; signing in only happens inside the **full-screen TUI you get by running `agy` with no arguments**, and driving that from within codiva would mean surrendering the terminal (wrecking every other session's display). Run `agy` in a separate terminal and sign in there. The `/agent` dialog shows its install and login status but offers no login affordance.\n\nHere's what does and doesn't carry over when you switch with `/agent`:\n\n| Carries over | Does not carry over |\n|---|---|\n| The worktree, branch and working tree contents; codiva's user/assistant conversation log, title and PRs | The provider's native session itself (each CLI keeps its own transcript) |\n\nThe conversation id of each agent you've used is stored per session, so going Claude → Codex → Claude resumes **the original conversation** where it left off (this survives restarting codiva too).\n\nThe provider-native context can't be transferred directly, so **codiva copies the retained user and assistant conversation into a one-time handoff** for the incoming agent. It also includes the branch name, the first and most recent instructions, and a reminder to verify the working tree with `git status` / `git diff`. Tool-execution logs are left out (they're bulky, and the working tree tells the same story). The newest conversation is prioritized, and an omission marker is shown if the handoff reaches its safety limit. No extra turn runs at switch time; the handoff rides along with the next instruction you send.\n\n**You can always see what each session is running on.**\n\n- The header shows `Agent: Claude` — **the default for new sessions**.\n- List rows get an agent-name column **only when several agents are in play** (if they're all the same it just duplicates the header, so that width goes to titles and branch names instead).\n- The detail view's input field names the recipient, e.g. `Send a follow-up to Claude…`.\n- The conversation log of a switched session gets a `── Codex from here ──` divider, so you can tell which agent said what.\n\n#### Capability differences between agents\n\nWorktree isolation, parallel execution, follow-ups, interrupting (`Ctrl+C`), merge / discard, PR automation (`/sync` / `/fix-ci`), desktop notifications and repo-wide instructions (`.codiva/prompt.md`) all **work the same on every agent**. Only these six things differ.\n\n| | Claude Code | Codex | Grok | Antigravity |\n|---|---|---|---|---|\n| Tool permission / question dialogs | ✅ | ❌ (sandbox instead) | ✅ | ❌ (run mode instead) |\n| Cost display (total in the header) | ✅ | ❌ | ❌ | ❌ |\n| Plan / usage gauges | ✅ | ❌ | ❌ | ❌ |\n| Log restoration after a restart | ✅ | ❌ (resuming the conversation still works) | ❌ (same) | ❌ (same) |\n| Model selection via `/model` | ✅ | ✅ | ✅ | ❌ (the `model` setting is passed at launch) |\n| Signing in from inside codiva (`/login`) | ✅ | ✅ | ✅ | ❌ (run `agy` on its own) |\n\n**Codex session limitations** (differences from a Claude session):\n\n- **It doesn't ask for tool permission.** `codex exec`'s JSON output mode auto-rejects approval requests inside the CLI, with no way to surface them to codiva. So rather than fake a plausible-looking permission dialog, codiva makes **the sandbox the only safety valve** (setting `codexSandbox`; the default `workspace-write` confines writes to the session's worktree). Codex sessions also never enter the `Question` state.\n- **It doesn't display cost.** Codex only returns token counts at the end of a turn — no amounts, no account-wide usage. Codex sessions are excluded from the header's total cost (so a Claude-only figure isn't presented as \"everything\"). The plan display and usage gauges are about your Claude account, so **they don't appear in the header while Codex is the default** (and nothing is fetched either).\n- **The footer's mode indicator reads `confirm mode (unsupported)`.** Since nothing can be asked, a plain `confirm mode` would read as \"wait and you'll be asked\" (the `shift+tab` toggle itself still works).\n- **The log isn't restored after a restart** (resuming the session itself does work). Log reconstruction reads the Claude CLI's transcript files, and Codex's transcripts use a different format.\n- `/model` lists Codex's own models (`codex debug models`). On machines where that list can't be fetched you only get \"default\" (codiva doesn't guess model names). Switching provider with `/agent` resets an incompatible model selection to the CLI default. Codex doesn't include the model name in its execution events, so the list shows whatever model you set explicitly with `/model`.\n\n**Grok session limitations** (differences from a Claude session):\n\n- **Tool permissions and questions come through normally.** Unlike Codex, Grok surfaces permission requests (`Awaiting permission`) and questions (`Question`) over codiva's bidirectional channel, so you answer them in dialogs as usual.\n- **It doesn't display cost.** Grok only returns token counts at the end of a turn — no amounts, no account-wide usage. Grok sessions are excluded from the header's total cost, and the plan display and usage gauges (which are about your Claude account) don't appear while Grok is the default.\n- **The log isn't restored after a restart** (resuming the session itself does work). Log reconstruction reads the Claude CLI's transcript files, and Grok's transcripts use a different format.\n- `/model` lists Grok's own models. On machines where that list can't be fetched you only get \"default\" (codiva doesn't guess model names). Switching provider with `/agent` resets an incompatible model selection to the CLI default. Unlike Codex, Grok **tells you which model is actually running**, so the session list shows a model name even when you didn't set one with `/model`.\n\n**Antigravity session limitations** (differences from a Claude session):\n\n- **It doesn't ask for tool permission.** Headless `agy` decides permission policy inside the CLI and has no way to broker individual tool calls out to an external client. For the same reason (and with the same conclusion) as Codex, codiva doesn't fake a plausible-looking permission dialog and makes **the run mode the safety valve** instead. Antigravity sessions also never enter the `Question` state.\n  - The default is `--mode=accept-edits` (matching codiva's default permission mode, `acceptEdits`). Setting `permissionMode` to `\"plan\"` gives you `--mode=plan` (plan only, no edits).\n  - **Full bypass (`--dangerously-skip-permissions`) is passed only when you explicitly set `permissionMode` to `\"bypassPermissions\"`.** \"You don't get asked\" and \"everything is allowed unconditionally\" are different things, so the latter is never the default.\n- **There is no `/model`.** `agy models` prints human-readable text only (there is no JSON output flag), and `--model` is a **launch-time flag** that can't change the model of a running session. Set the model you want in `~/.codiva/config.json`'s `model` key instead (it's passed as `--model` when the session starts). Showing a dialog we can't populate would just list nothing, or another agent's model names. The **model actually running does appear in the session list**, because `agy` reports it at startup.\n- **It doesn't display cost.** `agy` only returns token counts at the end of a turn — no amounts, no account-wide usage. Antigravity sessions are excluded from the header's total cost, and the plan display and usage gauges (which are about your Claude account) don't appear while Antigravity is the default.\n- **You can't sign in from inside codiva** (see above). Run `agy` in a separate terminal. Login status is probed with `agy models`, and codiva reports `Not signed in` **only** when it's told to sign in. When it can't tell (offline, timeout, …) it **does not** treat that as signed-out, so a usable agent never gets a misleading prompt.\n- **The log isn't restored after a restart** (resuming the session itself does work). Log reconstruction reads the Claude CLI's transcript files, and Antigravity's transcripts use a different format.\n- **Subagent progress isn't shown.** `agy`'s output has fields that look like it, but the start/finish pairing hasn't been confirmed against real data. Tracking it half-way could produce sessions that finish without codiva noticing, so nothing is shown until that's verified.\n- Interrupting (`Ctrl+C`) kills the `agy` process, but **the conversation carries on** (your next instruction resumes the same one). For the same reason, cancelled turns — and turns whose process dies without emitting a terminal event — are treated as \"interrupted\" rather than \"failed\", so you can just send a follow-up.\n### Tool approval modes (`shift+tab`)\n\nThe footer shows the current mode; `shift+tab` cycles it.\n\n| Mode | Indicator | Behaviour |\n|---|---|---|\n| Auto | `⏵⏵ auto mode on` | Runs every tool automatically except questions (default) |\n| Confirm | `⏸ confirm mode on` | Shows a permission dialog for every tool |\n| Smart | `⏵? smart mode on` | **Opt-in.** Judges each tool call's risk and auto-runs only the routine ones |\n\nQuestions (the `AskUserQuestion` equivalent) **always** reach a dialog, in every mode. Asking you *is* the point of that tool, so auto-allowing it would answer \"yes\" with no answers attached and the question would silently vanish.\n\n#### Smart mode (Jev / TypeSafe AI)\n\n`auto mode` is fast but will happily run `git push --force`; `confirm mode` is safe but stops you on every `ls`. Smart mode sits in between: it **judges each tool call and auto-runs only the routine ones, escalating anything it can't vouch for to the usual permission dialog**. The judgement comes from [Jev](https://docs.typesafe.ai), TypeSafe AI's decision-only model — it writes no prose, it answers typed questions with probabilities.\n\n**It is completely off by default** and doesn't even appear in the `shift+tab` cycle until you enable it (so you keep the familiar auto ⇄ confirm pair).\n\nEnabling it takes **both** of:\n\n1. `\"jev\": { \"enabled\": true }` in `~/.codiva/config.json`\n2. the `TYPESAFE_API_KEY` environment variable (get a key at [console.typesafe.ai](https://console.typesafe.ai/settings/keys) — **it cannot go in the config file**)\n\n```json\n{\n  \"jev\": {\n    \"enabled\": true,\n    \"timeoutMs\": 1500,\n    \"allowThreshold\": 0.9\n  }\n}\n```\n\n```sh\nexport TYPESAFE_API_KEY=...\n```\n\nWith both in place codiva starts in smart mode (`shift+tab` still takes you to confirm / auto whenever you want).\n\n**The verdict is never the final word.** codiva auto-runs a tool only when Jev answers \"routine\" *and* the probability of that answer is at least `allowThreshold` (default 0.9). Everything else goes to the dialog.\n\n| Jev's answer | What codiva does |\n|---|---|\n| `allow` (probability ≥ threshold) | Runs it |\n| `allow` (probability < threshold) | Permission dialog |\n| `ask` | Permission dialog |\n| `deny` | Permission dialog — **never an automatic rejection** |\n| Timeout / API error / offline / expired key | Permission dialog |\n\nSo **a broken Jev never fails towards \"just run it\"**. While it's down, smart mode behaves exactly like confirm mode. After three consecutive failures codiva stops calling out for 60 seconds, so being offline or holding an expired key doesn't cost you `timeoutMs` on every single tool call.\n\n> [!IMPORTANT]\n> **What gets sent to the external API.** Every time a session running in smart mode asks for permission, the following is sent to TypeSafe AI's API (`https://api.typesafe.ai/v1/systemone`):\n>\n> - the tool name (`Bash`, …) and its normalized kind (`shell` / `edit` / `read` …)\n> - a **trimmed** copy of the tool input — shell commands, file paths and the like, except that\n>   - file bodies and diffs (`content` / `old_string` / `new_string` / `patch`, …) are **not sent**; they are replaced with a size marker such as `<5000 chars>`\n>   - keys that look like secrets (`token` / `secret` / `password` / `apiKey`, …) are **dropped entirely, key and all**\n>   - strings are cut at 400 characters and the payload at 12 fields\n> - your most recent instruction (up to 600 characters) and which agent is driving (`claude` / `codex` / `grok` / `antigravity`)\n>\n> Repository content itself (file bodies, diffs, git history) is never sent. That said, **command lines and file paths are**, so don't enable this where that isn't acceptable. While it's off (the default) codiva never talks to TypeSafe AI at all.\n\nPoint it at your own gateway with `jev.baseUrl` (or the `TYPESAFE_BASE_URL` environment variable).\n\nNote that it **does nothing on agents that can't surface tool permissions (Codex / Antigravity)**; the footer reads `⏵? smart mode (n/a)` there.\n\n## Configuration\n\nThe on/off settings can be toggled from the TUI (`/config` in the list view — see [Changing settings from the UI](#changing-settings-from-the-ui-config)). Below is the full set of keys for editing the file directly.\n\n`~/.codiva/config.json` (optional):\n\n```json\n{\n  \"language\": \"auto\",\n  \"ignoredFiles\": \"symlink\",\n  \"updateCheck\": true\n}\n```\n\n- `language`: `\"ja\"` / `\"en\"` / `\"auto\"` (follow the OS locale). The `CODIVA_LANG` environment variable (`ja` / `en`) takes precedence over everything.\n- `updateCheck`: whether to check npm for the latest version at startup. Default `true`. Setting it to `false` stops the startup request and makes `/update` report \"could not check\".\n- `ignoredFiles`: how `.gitignore`d untracked files (`node_modules/`, `.env`, …) are carried into a session's worktree. `git worktree` only carries tracked files, so without this you'd have to reinstall dependencies and re-create env files. Default `\"symlink\"`.\n  - `\"symlink\"` (default): just symlink to the repository root. Zero copy cost, instant startup. Because the real files are shared, **codiva also tells the session about it, along with the \"detach the link before writing\" procedure** (see below).\n  - `\"copy\"`: copy the real files from the repository root. The worktree becomes fully independent and work can never collide, but a huge `node_modules/` makes the copy slow.\n  - `\"none\"`: carry nothing over (the session re-creates dependencies and env files itself).\n  - The deprecated boolean `copyIgnored` is still understood for backward compatibility (`true` → like `copy`, `false` → like `none`). `ignoredFiles` wins if both are present.\n  - **Build output and caches are never carried over** (`.next/` `.nuxt/` `.svelte-kit/` `.turbo/` `.vite/` `.cache/` `dist/` `build/` `out/` `coverage/` `target/` `__pycache__/` `*.tsbuildinfo`, …). They're generated, so the session can rebuild them, and sharing them breaks things (see below).\n- `ignoredFilesExclude`: an array of patterns to add to — or cancel out of — the exclusion list above. It's appended **after** the defaults, and the last matching pattern wins. A pattern without `/` matches the final path segment, so it also catches nested locations like `apps/web/.next/`. A leading `*` matches a suffix (`*.log`).\n  ```json\n  { \"ignoredFilesExclude\": [\"!dist\", \".venv\", \"*.sqlite\"] }\n  ```\n  This example means \"do carry `dist/` over (cancelling the default exclusion), and don't carry `.venv/` or `*.sqlite`\".\n- `notifications`: whether to show desktop notifications on questions, permission requests, completion and so on. Default `true` (`false` disables them).\n- `privacyWarning`: whether to show the header notice when training-data usage is ON. Default `true`. Setting it to `false` skips the detection entirely (see below).\n- `autoSync`: whether to merge the base branch in automatically when a PR conflicts. Default `false` (see above).\n- `autoFixCi`: whether to ask the session to fix CI automatically when it fails. Default `false` (see above).\n- `crashLog`: whether to write a crash log to `~/.codiva/logs/` on an unexpected exit. Default `true` (see below). With `false` no file is written; codiva still prints the reason and restores the terminal.\n- `agent`: which agent new sessions use by default. `\"claude\"` (default) / `\"codex\"` / `\"grok\"` / `\"antigravity\"`. **Choosing one via `/agent` in the list saves it here**, so you normally don't write it by hand. Per-session switching is `/agent` in the detail view (see above).\n- `claudeSettingSources`: an array of the settings layers a Claude session loads. `\"user\"` (`~/.claude/settings.json`) / `\"project\"` (`<repo>/.claude/settings.json`) / `\"local\"` (`<repo>/.claude/settings.local.json`). The default is `[\"project\"]`, and `\"project\"` is always included whether you list it or not (the target repository's CLAUDE.md is only read through that layer).\n  ```json\n  { \"claudeSettingSources\": [\"user\", \"project\", \"local\"] }\n  ```\n  **Add `\"user\"` if you want your Claude Code plugins to work in codiva sessions too.** Plugin activation (`enabledPlugins`) for anything installed with `claude plugin install` is written to `~/.claude/settings.json`, so with the default, none of a plugin's skills / commands / subagents / hooks / MCP servers get loaded. The side effect is that **the rest of that layer (hooks, permissions, statusLine, …) also loads into your sessions**. That's why the default is `[\"project\"]`: sessions run unattended in a worktree rather than in front of you, so codiva errs on the side of not silently importing your local Claude Code setup.\n- `codexSandbox`: the sandbox for Codex sessions. `\"read-only\"` / `\"workspace-write\"` (default) / `\"danger-full-access\"`. Because Codex can't ask for tool permission, **this is the only safety valve for Codex sessions**. The default `workspace-write` means \"read anything, write only inside the session's worktree\".\n- `codexNetworkAccess`: whether to allow network access when `codexSandbox` is `\"workspace-write\"`. Default `true`. Codex's own default is to block it, but that makes `npm install` and `gh` fail and most work never finishes, so codiva opens it (set `false` to close it).\n- `jev`: settings for smart mode (above). Off by default; it only activates when `enabled: true` **and** the `TYPESAFE_API_KEY` environment variable are both present. **The API key cannot be put here** — it is read from the environment only, so it never sits in plain text in a config file.\n  - `enabled`: turn it on. Default `false`.\n  - `timeoutMs`: per-judgement budget in ms. Default `1500`; exceeding it falls back to the permission dialog.\n  - `allowThreshold`: probability required before auto-running (0–1). Default `0.9`; raising it means more dialogs.\n  - `model`: model id. Default `\"jev-latest\"`.\n  - `baseUrl`: API base URL. Default `\"https://api.typesafe.ai\"` (the `TYPESAFE_BASE_URL` environment variable works too).\n- `collapseToolLogs`: whether the session detail log folds runs of consecutive tool calls into a single summary line. Default `true`; set it to `false` to keep every line as before (either way, `Ctrl+O` / `/tools` toggles it on the spot).\n\n### Shared symlinks and \"detach when you need to\"\n\nWith `ignoredFiles: \"symlink\"` (the default), `.gitignore`d paths such as `node_modules/` and `.env` are **links pointing at the originals in the main repository**. Reading through them is fine, but **writing** (adding or updating dependencies, building, code generation, clearing caches, …) rewrites the shared originals through the link, which propagates to your main checkout and to **other sessions running in parallel**.\n\nSo in this mode — and only this mode — codiva adds the following to each session's systemPrompt:\n\n- that the ignored paths in this worktree are symlinks into the main repository and the targets are shared\n- that reading is safe, but **before writing you must detach that one path and give the worktree its own copy** (either by copying the current contents, or by regenerating it with a fresh install / clean build)\n- that removing the link with `rm -rf <path>/` or `<path>/*` (trailing slash, globs) **deletes the shared contents**\n- that `.gitignore` patterns like `node_modules/` **don't match a symlink** because of the trailing slash, so the links show up as untracked (`git add -A` would commit the link itself, so stage by path)\n- that only the paths actually being written to need detaching, and **tasks that don't write need nothing at all**\n\nThe wording is language- and toolchain-agnostic (\"check whether it's a symlink\"), so it works the same in projects that have no `node_modules`. codiva never pre-emptively replaces the links itself (what will be written depends on the instruction, and copying everything would defeat the point of symlink mode).\n\nUse `\"copy\"` if you want full independence from the start, or `\"none\"` if you'd rather set things up yourself.\n\n### Build output isn't carried over (dev-server freeze prevention)\n\nAmong `.gitignore`d paths, **build output and caches** (`.next/`, `dist/`, `target/`, `coverage/`, `*.tsbuildinfo`, …) are never carried over, in either `\"symlink\"` or `\"copy\"` mode. Two reasons:\n\n- **Sharing them breaks things.** Running dev servers or builds in the main repository and several worktrees at once means concurrent writes to the same files.\n- **Worktrees live inside the repository** (`.codiva/worktrees/<slug>`). So to a dev server that watches recursively from the project root (Next.js / Turbopack, …), **the directory it keeps writing to appears once per worktree as a separate path**. Change notifications echo back many times over, eating CPU, memory and file descriptors — sometimes freezing the whole OS ([#81](https://github.com/takecchi/codiva/issues/81)).\n\nGenerated files can be rebuilt by the session, so not carrying them is the safe default. Detection is a list of directory names, so add your project's own build output to `ignoredFilesExclude` (or cancel an exclusion with `\"!dist\"` if you do want to share something).\n\n**Links left over in existing session worktrees are removed automatically at startup** (this also fixes worktrees created by older versions). Only **symlinks** are removed, so the link targets (the contents of the main repository) and any real build output inside the worktree are untouched.\n\nIf you want to reduce what's being watched in the first place, the reliable fix is adding `.codiva` to your dev server's watch-ignore config on the project side. (Hiding it from git is handled for you: codiva drops in `.codiva/.gitignore`. Your repository's `.gitignore` is never modified.)\n\n### Desktop notifications\n\ncodiva notifies you when a session changes to states like \"question\", \"permission request\", \"completed\" or \"failed\" (it stays quiet while a state persists).\n\nNotifications are emitted **by the terminal itself** whenever possible (using the notification escape sequences of Ghostty / WezTerm / foot / iTerm2 / kitty). That means clicking a notification brings the terminal running codiva to the front. It works inside tmux too, but requires `set -g allow-passthrough on`. Over SSH, notifications reach your local terminal for Ghostty / kitty / foot (identifiable from `TERM`) and for iTerm2 (which forwards `LC_TERMINAL`).\n\nOn terminals not covered above (macOS's built-in Terminal.app, Windows Terminal, …) codiva falls back to an OS command (`osascript` on macOS, `notify-send` on Linux). **On the macOS fallback path notifications are attributed to \"Script Editor\", and clicking one opens Script Editor** — an inherent limitation of notifications posted via `osascript`. Notifications also won't appear if you've disabled them on the terminal side (e.g. Ghostty's `desktop-notifications`).\n\n### The training-data usage warning\n\nOn accounts where claude.ai's \"**Help improve our AI models**\" setting is ON, conversations through Claude Code / codiva may be used to improve Anthropic's models. Because codiva pushes a lot of code through parallel sessions, it shows a notice line in the startup header — **but only when it can determine that the setting is ON**.\n\n```\n⚠ Training-data usage is ON (conversations may be used to improve models)\n  Change it: https://claude.ai/settings/data-privacy-controls\n```\n\n- Change the setting at that URL (or with Claude Code's `/privacy-settings`). **codiva never modifies your account settings** (read-only).\n- Detection goes \"cache in `~/.claude.json` → query the same API Claude Code uses\", in that order, and never delays startup. When it can't tell (not signed in, API usage such as `ANTHROPIC_API_KEY`, offline, an upstream change) **nothing is shown**.\n- After you turn the setting off, the warning is gone on the next launch (the API is re-checked even if the cache still says ON).\n- The query uses Claude Code's OAuth token read-only (the `Claude Code-credentials` Keychain entry on macOS, `~/.claude/.credentials.json` elsewhere). If you'd rather it didn't, set `\"privacyWarning\": false` and codiva touches neither the Keychain nor the network.\n\n### Repo-wide instructions (`.codiva/prompt.md`)\n\nWhatever you write in the target repository's `.codiva/prompt.md` is injected into the systemPrompt of every session started in that repository. It lets a team share repository-specific workflow (\"run the tests and open a PR when you're done\", …) — usable alongside `CLAUDE.md`, independently of it. With no such file, nothing is injected and behaviour is unchanged.\n\nBesides editing the file directly, typing **`/prompt`** in the list view's composer opens an in-TUI editor seeded with the current contents (`Enter` saves, `Shift+Enter` inserts a newline, `Esc` cancels, saving an empty buffer deletes the file). Saved content applies to **subsequently created sessions** (running sessions keep the instructions they started with).\n\nType `/` in the composer to see the available slash commands in a palette (`/prompt`, `/config`, `/model`, `/agent` (list = pick the default / detail = switch that session), `/login` (sign in from inside codiva), `/subagents` (detail view), `/sync`, `/fix-ci`, `/recover`, `/remove`, `/clear`, `/update`, `/help`, …). On a short terminal the tail folds into \"N more\", so keep typing to narrow it down (`/help` shows everything).\n\n### Changing settings from the UI (`/config`)\n\nTyping **`/config`** (alias `/settings`) in the list view's composer opens a dialog for toggling the on/off keys in `~/.codiva/config.json`.\n\n| Key | Action |\n|---|---|\n| `↑` `↓` | Select an item (a one-line description of the selected item appears below) |\n| `Enter` / `Space` | Toggle it on / off (`[x]` / `[ ]`). A `Space` typed with a Japanese IME on (full-width space) toggles too |\n| `Esc` | Close |\n\nToggles are **saved to `~/.codiva/config.json` immediately** (there's no cancel; items returned to their default value have their key removed, so the config file only ever holds what you changed from the defaults). These settings are read at startup and baked into sessions and terminal setup, though, so **they take effect on the next launch** (the dialog says so as well).\n\nThe items shown are: desktop notifications / mouse support / follow origin / auto-create PRs / auto base-merge on conflict / auto CI-fix requests / Claude Code plugin loading / the training-data warning / the startup update check / crash logs / Codex network access — 11 in total. Multiple-choice settings (`language`, `ignoredFiles`, `codexSandbox`, …) aren't in the dialog, so edit the config file for those (`model` and the default agent are changed via `/model` and `/agent`).\n\n### Removing sessions (`x` / `/remove` / `/clear`)\n\nThere are three ways to clean up sessions still in the list (all of them ask `y` / `n` first).\n\n| Action | Target | What's removed |\n|---|---|---|\n| `d` (discard) | The selected session | The worktree and branch. **The row stays in the list as \"discarded\"** (it's gone after a restart) |\n| `x` (= `/remove`) | The selected session | The worktree and branch **plus the list row itself**. The record goes too |\n| `/clear` | **Every** finished session (completed, interrupted, failed, …; running ones are skipped) | Each session's worktree and branch plus its list row. Shows the count before running |\n\n`x` also works in the detail view (`Tab` over to the action panel). Since a removed session can no longer be opened, you're returned to the list automatically.\n\n**Reach for `x` when you want to clean up sessions tied to old PRs.** With `d` (discard) the row stays as \"discarded\", and if that branch's PR is conflicting or its CI is failing it keeps showing up as a candidate for `Ctrl+F` (bulk recovery). `x` removes the row entirely, so it's fully out of scope for bulk actions.\n\nAll three only delete the local worktree and branch — **pushed remote branches and PRs on GitHub are untouched** (close the PR on GitHub if you want that). Deletion is forced even with uncommitted changes present, so commit anything you want to keep first.\n\nEven if you forget the slash, **input that exactly matches a command name available on that screen** (`exit`, `help`, …) runs as that command. When it will, the command palette shows it, so you know what `Enter` is about to do. Anything with trailing text (`fix how exit behaves`) and aliases like `?` or `changes` are treated as ordinary instructions, so an instruction never turns into a command by accident.\n\nThe other way round, **text that starts with `/` but matches no command name is sent as an ordinary instruction** (`/v3/chats please`, `put it in /tmp/foo`, …). The palette says \"No matching command\", so you can see before pressing `Enter` that it will go to the session rather than run a command. The flip side is that a mistyped command (`/modle`) is sent to the session too.\n\n**`/exit` means different things on different screens.** In the list view it quits codiva; in the session detail view it **closes the detail view and returns to the list** (same as `Esc`), so you can't accidentally kill the app by typing `/exit` while reading a session.\n\n## Troubleshooting\n\n### Scrolling after exit types a flood of characters\n\nWhile full-screen, codiva enables the terminal's **mouse reporting** (click and drag notifications).\nIt always disables it on a normal exit, but if codiva is **killed outright** (an out-of-memory abort,\n`kill -9`, or any death that leaves the process no chance to run code), the disable never happens and\nthe terminal stays in that mode. Scrolling then makes the terminal keep sending mouse positions, which\nthe shell sees as a flood of input like `[<64;12;5M`.\n\nRun either of these to recover (both are safe and can be repeated):\n\n```bash\ncodiva --reset-terminal   # restore terminal modes (mouse capture, alternate screen, cursor)\nreset                     # the generic full terminal reset\n```\n\ncodiva also **disables mouse reporting automatically at the next startup** before drawing anything,\nso simply relaunching codiva fixes it too.\n\n### Investigating a sudden exit\n\nBecause codiva draws on the alternate screen, errors from an abnormal exit vanish the moment it\nleaves that screen. So the reason is written to `~/.codiva/logs/`.\n\n| File | Contents |\n|---|---|\n| `crash-<timestamp>-<pid>.log` | The report codiva writes itself (kind, error message, stack trace, version, terminal, **memory usage**, session status breakdown). The 20 most recent are kept |\n| `report.<timestamp>.<pid>....json` | Node's diagnostic report. On **out-of-memory (heap exhaustion) or a native crash** no JavaScript can run, so the log above isn't written and only this one appears |\n\n- On an unexpected exit the same content and the log path are also printed to the terminal (after restoring the screen, so it doesn't disappear).\n- Exits via `SIGTERM` / `SIGHUP` are recorded as `kind: signal` too (to distinguish \"it crashed\" from \"it was told to quit\").\n- Set `\"crashLog\": false` in the config to stop writing them.\n- Reporting problems is very welcome → [Issues](https://github.com/takecchi/codiva/issues). `crash-*.log` contains only the technical information listed above — no instructions and no code.\n  - `report.*.json` (written by Node) may include environment variables. codiva excludes them automatically on Node versions that support it (23.3+), but **older Node versions do include env vars such as `ANTHROPIC_API_KEY`**, so check the contents before sharing.\n\n### Memory usage grows over long runs (fixed in 0.3.9)\n\nUp to 0.3.8 there was a bug where **every render left memory that was never freed** (in a little under a\nday it reached Node's default ~4GB heap limit and exited abruptly with\n`Allocation failed - JavaScript heap out of memory`. That kind of death leaves no `crash-*.log`, only\n`report.*.json`). The cause was React running in its development build, which accumulates measurement\nentries (`performance.measure`) on every render. 0.3.9 switches to the production build (which also made\nrendering about 2.5× faster) and additionally discards measurement entries periodically.\n\nIf usage still grows on 0.3.9 or later, please report it at\n[Issues](https://github.com/takecchi/codiva/issues) with `~/.codiva/logs/report.*.json` attached.\n\n### Old lines disappear from the detail log\n\nThe session detail log keeps **the most recent 2,000 entries / 400,000 characters total** and drops\nanything older (a single extremely long entry is truncated with a trailing `…`). Holding an unbounded\nlog from a long-running session would make codiva itself run out of memory, and the complete record of\nthe conversation lives in each agent's own CLI (`~/.claude/projects/` for Claude Code).\n\nNote that when new lines are appended **while you're scrolled up reading** a log that has hit this\nlimit, t","readmeFilename":"README.md"}