{"_id":"@brownie-labs/brownie","_rev":"10-08b187a4ce236f91141991dd2d04a2d7","name":"@brownie-labs/brownie","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@brownie-labs/brownie","version":"0.1.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.1.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"1e68128875dc7ca4ffa1e667f1eedf280612794e","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.1.0.tgz","fileCount":7,"integrity":"sha512-AVP3d75Dcd1kMJ3wgi2ygeBeOJFuQpX/U68+S5e35m6RnR9SfKMktJWh0toRPNSwKr6oCF6Y70hLPaZ78iRMLg==","signatures":[{"sig":"MEQCIFYzfgu3VIPlSEL+xNVZfcyypZr9guHWYvfFUoSlQOb5AiAe8vzu8Hre9CZj1aR0WN2He+mYhcUWhBJE50hOR6rexA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192954},"pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"e94860d4e1affddc8dc23d7e4afb2c1aceafb8ae","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.18.0","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^6.8.0","zod":"^3.25.0","citty":"^0.1.6","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.1.0_1783550299330_0.3298875233541456","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.2.0":{"name":"@brownie-labs/brownie","version":"0.2.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.2.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"1d5e60885b982e7c52e6f3c446322575430e6115","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.2.0.tgz","fileCount":7,"integrity":"sha512-iKYRpVhUhHB7Cs1+HjaXQJ4RSEnBCXmp6Om5bDG75TMUEcD9gBHxC46hTVbmUHTzcPg1xN2ZLzsbDeKEY/I1rg==","signatures":[{"sig":"MEUCIHbNRHVKaA9r/Idsw6vYMi+X/jgaQ8E8IiNBlLpbbcViAiEAkrquI77bvEjgZZjiW0wwepUNiC8i+NX3m+KsknqAUek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192959},"pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"2bb6395720d3f2f8a13af9ebd47da78a410074a2","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.18.0","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^6.8.0","zod":"^3.25.0","citty":"^0.1.6","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.2.0_1783597116489_0.25942733325702627","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.3.0":{"name":"@brownie-labs/brownie","version":"0.3.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.3.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"0232218859ab09f28114c7718c56123ca4009604","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.3.0.tgz","fileCount":7,"integrity":"sha512-bqbMTOU4swGj45yPY+TjwUCrUsto/+N/nI7TUsPpPPxu1c3ulP6Um6s5wDMK5f8JwQzQGsF03j4o11KKVFuNcg==","signatures":[{"sig":"MEUCIQDSm1L9XfnXLaAo8DHFIIXVYQbN1KGOKB8f2njeWHvu2QIgfM1CiH316tuHlzOBVaAGLukug8cjvfk5ZPgR0JxwEtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205178},"pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"82083116b9a950204288b3900c2a76513a264574","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.18.0","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^6.8.0","zod":"^3.25.0","citty":"^0.1.6","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.3.0_1783615272997_0.19131062836072843","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.3.1":{"name":"@brownie-labs/brownie","version":"0.3.1","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.3.1","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"342fec2a5fa98989d6ca0c726b0841b84a9599aa","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.3.1.tgz","fileCount":7,"integrity":"sha512-IimXZFw++/MqAj/r6q/merLNM4/R0qsp8GmFFpO3LzUAq9agT1QOZYa0aPFx5B8SuS2Ue6ebye4lnfhqBglRkg==","signatures":[{"sig":"MEUCIBqPe5yPUP22JJOF89HuwFRrkfGbvpD0p8wNqRWiemYvAiEA6/7mnENBtp9h4c7icQ0s/zqfrPvUQ0ctfvotgLjh/GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205374},"pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"37f44951757f797ba5c4488c7fd06580a9a3aea5","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.18.0","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.3.1_1783946341142_0.034334777335099265","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.4.0":{"name":"@brownie-labs/brownie","version":"0.4.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.4.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"fbdd3cd48299671677afdc9d9c7fe4af38789dcd","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.4.0.tgz","fileCount":7,"integrity":"sha512-xGiCCE1zp0DUQgAykEOa/ZavZJLaPXsxoVLhwQ/0LZfTMBeoYqzHFl+1YxcMnFrWRCykxbGsHWdItcNleDYOzw==","signatures":[{"sig":"MEQCID7aTxhmneayhCEfQiDO7ZhklJxWlUo6jYfcJSNETWP2AiA4mv1S/fDRsSF9xovQ+1p3Kcq6RF+H7Pg5yV+uHWIqcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205592},"pnpm":{"overrides":{"esbuild@<0.28.1":">=0.28.1"},"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"efd9e167a3d88919e848ee76d659d1a5936208cd","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.19.1","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.4.0_1788451576142_0.015917457141727764","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.5.0":{"name":"@brownie-labs/brownie","version":"0.5.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.5.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"9e34a16024ff4488231604e7b3693a96dd3b979f","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.5.0.tgz","fileCount":7,"integrity":"sha512-59Lwll3BvG8OD5QEdbDcinId9BtYbu0TYOmGHMl1TKmKhiP2AGgQqRg7I0eVWoq8WZ77eZ8TtbJQZRXPdWNyvw==","signatures":[{"sig":"MEUCIQD9vnsEzWt9+f88zJoWVFSdu5y/M90hB87oRFAihVWEKgIgR4536rygtXd7Jv5TyCKYDwjJ+eZGORIbsowJBktpigg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":239677},"pnpm":{"overrides":{"esbuild@<0.28.1":">=0.28.1"},"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"70ae1e032d830822e6eae11f1fed980f9a6c374b","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.19.1","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.5.0_1789131091131_0.5138166723238191","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.5.1":{"name":"@brownie-labs/brownie","version":"0.5.1","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.5.1","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"6331e83b2f942d862b95b1425433d2875230b850","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.5.1.tgz","fileCount":7,"integrity":"sha512-Itzhgh4fLsz52OOvdSV6u2jVsGs7zZtl9cFSS/PqyLYQUVNNTMKrh4hjHlzwpNQn59QXOmBr0xybrYKLPNKgUA==","signatures":[{"sig":"MEQCIHsiG3CjWBRI7nQpnJer3KRS/9yqg29jqHfB6PC4BadQAiARZaV+LXE1oYPmvEdiFQaDB3O4lYy0iYHdUssUxrtBnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":239749},"pnpm":{"overrides":{"esbuild@<0.28.1":">=0.28.1"},"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"01b7ee9346213becb68acedf14c93cfa045b2631","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.19.1","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.5.1_1789396671984_0.34993907315779116","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.6.0":{"name":"@brownie-labs/brownie","version":"0.6.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.6.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"5139b5ee33de0912df1535d75a3422678a4be704","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.6.0.tgz","fileCount":7,"integrity":"sha512-MQoy+BHz3nabLYClN27uSHHgn3hvbvgVWq4WvmshLGyIm4lQ1xDl9Lr3/54mBmU3ou1Em4HJ2TYawOJtxpL1PA==","signatures":[{"sig":"MEQCIEsf27YdtQoWLymJ9HUBHJRsXzom9PMJPNl9BgNa/SieAiBYD/OBCdLiecpcUK78v8kBsVcDGB+7zSBwSqtsDDrwdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":266813},"pnpm":{"overrides":{"esbuild@<0.28.1":">=0.28.1"},"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"4f181720ea7612b4e5dea15950e295b13852b655","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.19.1","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.6.0_1789418038683_0.4036176744044182","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."},"0.7.0":{"name":"@brownie-labs/brownie","version":"0.7.0","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"author":{"name":"Dawid Chłodnicki"},"license":"MIT","_id":"@brownie-labs/brownie@0.7.0","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"homepage":"https://github.com/brownie-labs/brownie#readme","bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"bin":{"brownie":"dist/index.js"},"dist":{"shasum":"21f14f68c2ecbcefc8b557082213f82839284fb9","tarball":"https://registry.npmjs.org/@brownie-labs/brownie/-/brownie-0.7.0.tgz","fileCount":7,"integrity":"sha512-hHURE/BAkdzyc4ndBXr+bfCEhgtqLM9i54a31IkY5eziN/Yen79xFSsN1tty5poO7bkkmEjkvYOqogLlfoIFEw==","signatures":[{"sig":"MEQCIAhBr698vk43xnMOJFKZShVJmo4AtPLng5jCWLJqaJd9AiAibaAhmv6AMcJEz1KMaMUtUKyFXCwKDta6zQqE8ZfvAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brownie-labs%2fbrownie@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":274884},"pnpm":{"overrides":{"esbuild@<0.28.1":">=0.28.1"},"onlyBuiltDependencies":["esbuild"]},"type":"module","engines":{"node":"^22.16.0 || >=24.0.0"},"gitHead":"29e0cb74e67d3b01824ee5ca9c1dd773ec201a1b","scripts":{"dev":"tsx watch --disable-warning=ExperimentalWarning src/index.ts","lint":"eslint .","test":"vitest run","build":"tsup","check":"pnpm typecheck && pnpm lint && pnpm format:check && pnpm test","start":"tsx --disable-warning=ExperimentalWarning src/index.ts","format":"prettier --write .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm check && pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afdac95b-f01e-4015-ad02-8bc964890ce8"}},"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"_npmVersion":"11.19.1","description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ink":"^7.1.0","zod":"^4.4.3","citty":"^0.2.2","react":"^19.2.7","consola":"^3.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.10.0","@types/react":"^19.2.17","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/brownie_0.7.0_1789626823843_0.20893936179989891","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @kikimoradev/kikimora. The binary is now kikimora and the project directory .kikimora/."}},"time":{"created":"2026-07-08T22:38:19.233Z","modified":"2026-09-19T16:31:33.139Z","0.1.0":"2026-07-08T22:38:19.477Z","0.2.0":"2026-07-09T11:38:36.683Z","0.3.0":"2026-07-09T16:41:13.133Z","0.3.1":"2026-07-13T12:39:01.287Z","0.4.0":"2026-09-03T16:06:16.275Z","0.5.0":"2026-09-11T12:51:31.265Z","0.5.1":"2026-09-14T14:37:52.123Z","0.6.0":"2026-09-14T20:33:58.834Z","0.7.0":"2026-09-17T06:33:43.992Z"},"bugs":{"url":"https://github.com/brownie-labs/brownie/issues"},"author":{"name":"Dawid Chłodnicki"},"license":"MIT","homepage":"https://github.com/brownie-labs/brownie#readme","keywords":["claude-code","claude","ai-agent","autonomous-agent","agent","automation","cli","tui","mcp","anthropic"],"repository":{"url":"git+https://github.com/brownie-labs/brownie.git","type":"git"},"description":"Autonomous two-agent Claude Code worker: a monitor that finds tasks, an executor that completes them, and long-term memory in between","maintainers":[{"name":"dawid.chlodnicki","email":"dawid.chlodnicki@yahoo.com"}],"readme":"<h1 align=\"center\">\n  <img alt=\"Brownie\" src=\"https://raw.githubusercontent.com/brownie-labs/brownie/main/assets/brownie-logo.png\" width=\"140\"><br>\n  Brownie\n</h1>\n\n<p align=\"center\">\n  <strong>Your household sprite for the work you keep putting off. It works while you're not looking.</strong><br>\n  <em>Not the cake. The spirit.</em>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@brownie-labs/brownie\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/%40brownie-labs%2Fbrownie?logo=npm&color=CB3837\"></a>\n  <a href=\"https://github.com/brownie-labs/brownie/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/brownie-labs/brownie/ci.yml?branch=main&logo=github&label=CI\"></a>\n  <a href=\"https://github.com/brownie-labs/brownie/blob/main/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-green\"></a>\n  <img alt=\"Node\" src=\"https://img.shields.io/badge/node-%E2%89%A522.16-339933?logo=node.js&logoColor=white\">\n</p>\n\n<p align=\"center\">\n  <img alt=\"Brownie demo\" src=\"https://raw.githubusercontent.com/brownie-labs/brownie/main/assets/demo.gif\" width=\"800\">\n</p>\n\nBrownie is a CLI that cyclically runs [Claude Code](https://claude.com/claude-code) sessions in a two-agent setup: the **monitor** watches for tasks, the **executor** completes them, and the **summarizer** writes findings to long-term memory. You sleep — the sprite tidies up.\n\n```\n        every N minutes (only during working hours)\n                          │\n                          ▼\n                  ┌───────────────┐   JSON report   ┌───────────────┐\n                  │    MONITOR    │ ───────────────▶│   TaskStore   │\n                  │    (haiku)    │     (tasks)     │  tasks.json   │\n                  └───────────────┘                 └───────┬───────┘\n                                                            │ wakes (Waker)\n                                                            │\n┌───────────────┐  session log  ┌───────────────┐  pending  │\n│  SUMMARIZER   │ ◀──────────── │   EXECUTOR    │ ◀─────────┘\n│   (sonnet)    │               │    (opus)     │\n└───────┬───────┘               └───────┬───────┘\n        │ findings                      │ memory_search / memory_get\n        ▼                               ▼\n┌───────────────────────────────────────────────┐\n│            Memory (SQLite + FTS5)             │\n│              MCP server (stdio)               │\n└───────────────────────────────────────────────┘\n```\n\nTwo loops run in parallel and talk only through the shared task store: the monitor patrols your sources on an interval and reports tasks as structured JSON; the executor wakes the moment tasks land and completes them one by one, with full tool access and searchable memory of past sessions.\n\n## What can it do for you?\n\nWhatever you describe in one markdown file. Some sprites people keep:\n\n- **CI medic** — watch the pipeline on `main`, investigate red builds, open a fix PR.\n- **Issue triager** — pick up well-scoped bug reports and turn them into pull requests.\n- **Dependency groundskeeper** — notice pending patch updates, bump, run the tests.\n- **Backlog sweeper** — work through `TODO`s, flaky tests, and lint debt while you build features.\n\nThe monitor's patrol is just a prompt:\n\n```markdown\n1. **CI on main** — run `gh run list --branch main --limit 5`. If the latest\n   run failed, report a task to investigate and fix it (id: `ci-<run-id>`).\n2. **Issues labeled `bug`** — for each issue describing a concrete,\n   self-contained change, report a task with id `issue-<number>`.\n```\n\nFull examples and prompt-writing tips: [docs/prompts.md](https://github.com/brownie-labs/brownie/blob/main/docs/prompts.md).\n\n## Highlights\n\n- 🔁 **Autonomous loop** — the monitor finds work, the executor does it; zero manual queuing (though `/task` adds work by hand).\n- 🧠 **Long-term memory** — SQLite + FTS5 exposed to the executor over MCP; the sprite learns from its own sessions.\n- 📺 **Interactive TUI** — a Claude-Code-style shell (Ink/React): live agent status, switchable views, slash commands.\n- ⏰ **Working hours** — a time window and days of the week (`08:00-18:00`, `mon-fri`); outside them the monitor rests.\n- 🔂 **Smart retries** — transient failures are retried, permanent ones fail fast; stalled tasks recover on restart.\n- ⛔ **Usage-limit aware** — when Claude Code hits its 5-hour or weekly limit, both agents park with a countdown and resume automatically after the reset; interrupted tasks go back to the queue without burning a retry.\n- 📝 **Prompts in files** — the entire personality lives in markdown, no prompts baked into the code.\n\n## Quick start\n\nYou need Node.js ≥ 22.16 (an official build — brownie's long-term memory needs SQLite with FTS5) and the [Claude Code CLI](https://claude.com/claude-code) (`claude`) installed and logged in.\n\n```bash\nnpm install -g @brownie-labs/brownie\n\ncd your-project\nbrownie          # first run asks for the two agent prompts, then opens the TUI\n```\n\nThe first-run wizard asks only two questions — what the monitor should watch and how the executor should work — in a multi-line editor built for pasting markdown (Enter adds a line, Ctrl+D submits). Everything else starts with sensible defaults you can change later with slash commands. Agents boot **paused** — nothing runs until you type `/start`.\n\nWorking from a clone instead: `pnpm install && pnpm start`.\n\n## The TUI\n\nA shell in the style of Claude Code: a header with the live status of both agents (state, model, cost, task counters), a view in the middle, and a command input at the bottom (history, tab completion, pgup/pgdn scrolling):\n\n| Command                       | Effect                                                     |\n| ----------------------------- | ---------------------------------------------------------- |\n| `/dashboard`                  | combined view: both agents + the task table                |\n| `/monitor`, `/executor`       | one agent full-screen with its recent outcomes             |\n| `/tasks`                      | the full task list                                         |\n| `/memory [query]`             | browse long-term memory, optionally filtered by FTS search |\n| `/start [monitor\\|executor]`  | start paused agents — agents boot paused                   |\n| `/pause [monitor\\|executor]`  | graceful pause — the current session finishes first        |\n| `/drain`                      | let the current sessions finish, then shut down            |\n| `/task <description>`         | add a task by hand (the executor picks it up immediately)  |\n| `/retry <task-id>`            | requeue a failed task                                      |\n| `/cancel <task-id>`           | cancel a pending task                                      |\n| `/model <agent> <model>`      | set the model (`haiku`, `sonnet`, `opus`, `fable`)         |\n| `/effort <agent> <level>`     | set the reasoning effort (`low`…`max`)                     |\n| `/interval <minutes>`         | set how often the monitor looks for new tasks              |\n| `/hours <HH:MM-HH:MM\\|off>`   | set the monitor working hours, `off` = 24/7                |\n| `/days <days\\|off>`           | set the monitor working days (`mon-fri`), `off` = daily    |\n| `/prompt <monitor\\|executor>` | view and edit an agent prompt — Ctrl+D saves, Esc closes   |\n| `/config`                     | show the current configuration                             |\n| `/help`                       | list all commands                                          |\n| `/exit`                       | graceful shutdown (same as ctrl+c)                         |\n\nConfiguration commands persist to `.brownie/settings.json` and apply live — the next agent session already uses the new value, no restart needed.\n\n## Headless & servers\n\nWithout a TTY (systemd, Docker, CI, piping) brownie skips the dashboard, starts the agents immediately, and prints structured line logs to stdout — human-readable by default, NDJSON with `--log-format json` for log aggregators. A running worker is controlled from a second shell over a local control socket:\n\n| Command                                                   | Effect                                                                                                              |\n| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| `brownie`                                                 | start the worker (TUI in a terminal, headless without one)                                                          |\n| `brownie --headless [--log-format json]`                  | force headless mode even in a terminal                                                                              |\n| `brownie --paused`                                        | boot with both agents paused; `brownie resume` starts them                                                          |\n| `brownie init --monitor-prompt <f> --executor-prompt <f>` | non-interactive setup for servers (cloud-init, Ansible); `--settings <f>` and `--context <f>` write those files too |\n| `brownie status [--json]`                                 | live status of the running worker (doubles as a health check)                                                       |\n| `brownie version [--json]`                                | brownie, Claude Code and Node versions, auth kind, pid of the worker                                                |\n| `brownie pause [monitor\\|executor]`                       | graceful pause, same as `/pause` in the TUI                                                                         |\n| `brownie resume [monitor\\|executor]`                      | resume paused agents                                                                                                |\n| `brownie drain [--timeout <ms>]`                          | let the current sessions finish, then exit (with a deadline, kill what still runs)                                  |\n| `brownie tasks\\|settings\\|prompt\\|memory …`               | edit the queue, settings, prompts and memory of the running worker                                                  |\n| `brownie update [--check]`                                | update to the newest published version (auto-updates in the background too)                                         |\n\nA second `brownie` in the same project refuses to start while one is already running. The control socket, its subcommands and wire protocol: [docs/control.md](https://github.com/brownie-labs/brownie/blob/main/docs/control.md). The full server story — the NDJSON event schema, a DigitalOcean/systemd runbook, authentication without a browser, the reference `Dockerfile` + `docker-compose.yml`, and the prebuilt images on GHCR (`ghcr.io/brownie-labs/brownie`, plus a `-browser` variant with Chromium for Playwright MCP): [docs/deployment.md](https://github.com/brownie-labs/brownie/blob/main/docs/deployment.md).\n\n## Configuration\n\nLike Claude Code's `.claude/`, all per-project state lives in `.brownie/` inside the directory you run brownie from: `settings.json`, the two project prompts, and runtime data (tasks, memory, logs — gitignored automatically). The settings file is a strictly validated JSON where every section is optional — change it with the slash commands above or by hand:\n\n```json\n{\n  \"monitor\": {\n    \"intervalMinutes\": 15,\n    \"activeHours\": \"08:00-18:00\",\n    \"activeDays\": \"mon-fri\"\n  },\n  \"executor\": { \"model\": \"opus\", \"effort\": \"high\" }\n}\n```\n\nAll settings, the full directory layout, and what to commit: [docs/configuration.md](https://github.com/brownie-labs/brownie/blob/main/docs/configuration.md).\n\n## Security & costs\n\n> **⚠️ The sprite works directly in your project.** Agent sessions run with `--permission-mode bypassPermissions` and full tool access **in the directory you run `brownie` from** — there is no isolated sandbox. Run it in projects you trust it with: well-considered prompts, no secrets within reach, version control as your safety net. Treat tasks reported by the monitor like any input to an autonomous agent — the prompts define the boundaries.\n\nBrownie spends real tokens: every patrol is a session, every task is a session. Interval × models = your bill, so start conservative — a longer `intervalMinutes`, `sonnet` on the executor — and scale up once you trust the prompts. `fable` is the most capable and the most expensive tier (roughly twice the price of `opus`), so reserve it for the executor on work that earns it. Working hours keep the sprite from patrolling an empty repo at 3 a.m.\n\n## Development\n\n```bash\npnpm dev              # start with watch (tsx)\npnpm check            # typecheck + lint + format:check + test — before every commit\npnpm build            # tsup -> dist/\n```\n\nClaude sessions are tested against a fake `claude` binary (`test/fixtures/claude`) — no real API calls. Coverage thresholds are enforced. See [CONTRIBUTING.md](https://github.com/brownie-labs/brownie/blob/main/CONTRIBUTING.md).\n\n## License\n\n[MIT](https://github.com/brownie-labs/brownie/blob/main/LICENSE) © Brownie Labs\n\n## Why \"Brownie\"? 🧌\n\nIn British folklore a **brownie** is a household spirit that, at night — while the household sleeps — quietly finishes their work for them. It has two iron rules: it works unbidden, and it vanishes when watched. Ours is a touch more modern: instead of a bowl of milk it takes tokens, and instead of sweeping the room it closes out your tasks. Watching is allowed (that's what the dashboard is for).\n","readmeFilename":"README.md"}