{"_id":"@ayjays132/phill-cli","_rev":"4-4abadf5f2f8ab3d7ad7c4bd1ba577695","name":"@ayjays132/phill-cli","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.1":{"name":"@ayjays132/phill-cli","version":"1.0.1","author":{"name":"Phillip A. Holland Jr."},"_id":"@ayjays132/phill-cli@1.0.1","maintainers":[{"name":"ayjays","email":"ayjays.ph@gmail.com"}],"homepage":"https://github.com/ayjays132/phill-cli#readme","bugs":{"url":"https://github.com/ayjays132/phill-cli/issues"},"bin":{"pcli":"bundle/phill.js","phill":"bundle/phill.js","young-philly":"bundle/phill.js"},"dist":{"shasum":"9705c8f6089b20d181376cd58ca3b9db7774d7e7","tarball":"https://registry.npmjs.org/@ayjays132/phill-cli/-/phill-cli-1.0.1.tgz","fileCount":369,"integrity":"sha512-yS3mwo3fOrJQ3+OwJH8Emn11QgKa+6u6r50JBMx0G0+u6O0oj+RZhKNfNptNP+CWqIS2H4zu60n7Er9Ir8erww==","signatures":[{"sig":"MEUCIAaPyhz3y+sHy7tHmEGhIoVV2cLkHHwxlc74ky+99CryAiEAv85utgQmhtcIHcZ7Z1ciSFN/meAqGpmfTkK33WgjBuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241372112},"type":"module","config":{"sandboxImageUri":"us-docker.pkg.dev/gemini-code-dev/phill-cli/sandbox:0.27.3"},"engines":{"node":">=20.0.0"},"gitHead":"98ed72c7598bbceb6d953444c712d0f74375be33","scripts":{"auth":"npm run auth:npm && npm run auth:docker","lint":"eslint . --cache","test":"npm run test --workspaces --if-present","build":"node scripts/build.js","clean":"node scripts/clean.js","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","start":"npm run dev:hot","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","format":"prettier --experimental-cli --write .","deflake":"node scripts/deflake.js","dev:hot":"npm-run-all --serial build --parallel \"bundle -- --watch\" \"dev:sentinel\"","lint:ci":"npm run lint:all","prepare":"husky && npm run bundle","test:ci":"npm run test:ci --workspaces --if-present && npm run test:scripts","auth:npm":"npx google-artifactregistry-auth","generate":"node scripts/generate-commit-info.js","lint:all":"node scripts/lint.js","lint:fix":"eslint . --fix --ext .ts,.tsx && eslint integration-tests --fix && eslint scripts --fix && npm run format","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","preflight":"npm run clean && npm ci && npm run format && npm run build && npm run lint:ci && npm run typecheck && npm run test:ci","telemetry":"node scripts/telemetry.js","typecheck":"npm run typecheck --workspaces --if-present","pre-commit":"node scripts/pre-commit.js","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","build:vscode":"node scripts/build_vscode_companion.js","dev:sentinel":"node scripts/sentinel.js","start:legacy":"cross-env NODE_ENV=development node scripts/start.js","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","build:sandbox":"node scripts/build_sandbox.js","docs:settings":"tsx ./scripts/generate-settings-doc.ts","build:packages":"npm run build --workspaces","check:lockfile":"node scripts/check-lockfile.js","test:all_evals":"cross-env RUN_EVALS=1 vitest run --config evals/vitest.config.ts","build-and-start":"npm run build && npm run start","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","schema:settings":"tsx ./scripts/generate-settings-schema.ts","docs:keybindings":"tsx ./scripts/generate-keybindings-doc.ts","predocs:settings":"npm run build --workspace phill-cli-core","start:a2a-server":"CODER_AGENT_PORT=41242 npm run start --workspace phill-cli-a2a-server","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:always_passing_evals":"vitest run --config evals/vitest.config.ts","sync:python-wrapper-version":"node scripts/sync-python-wrapper-version.js","check:python-wrapper-version":"node scripts/sync-python-wrapper-version.js --check","test:integration:sandbox:none":"cross-env PHILL_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"cross-env PHILL_SANDBOX=docker npm run build:sandbox && cross-env PHILL_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"cross-env PHILL_SANDBOX=podman vitest run --root ./integration-tests","deflake:test:integration:sandbox:none":"npm run deflake -- --command=\"npm run test:integration:sandbox:none -- --retry=0\"","deflake:test:integration:sandbox:docker":"npm run deflake -- --command=\"npm run test:integration-sandbox:docker -- --retry=0\""},"_npmUser":{"name":"ayjays","email":"ayjays.ph@gmail.com"},"overrides":{"cliui":{"wrap-ansi":"7.0.0"},"wrap-ansi":"9.0.2"},"repository":{"url":"git+https://github.com/ayjays132/phill-cli.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.6.0","description":"[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml) [![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"eslint.config.js":["prettier --write"],"*.{js,jsx,ts,tsx}":["prettier --write","eslint --fix --max-warnings 0 --no-warn-ignored"]},"_nodeVersion":"22.12.0","dependencies":{"ink":"npm:@jrichman/ink@6.4.8","dotenv":"^17.3.1","simple-git":"^3.28.0","ffmpeg-static":"^5.3.0","ffplay-static":"^3.2.2","latest-version":"^9.0.0","duckduckgo-search":"^1.0.7","@xenova/transformers":"^2.17.2"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.4","tsx":"^4.20.3","glob":"^12.0.0","json":"^11.0.0","husky":"^9.1.7","memfs":"^4.42.0","yargs":"^17.7.2","eslint":"^9.24.0","semver":"^7.7.2","vitest":"^3.2.4","esbuild":"^0.25.0","globals":"^16.0.0","mock-fs":"^5.5.0","depcheck":"^1.4.7","prettier":"^3.5.3","ts-prune":"^0.10.3","cross-env":"^7.0.3","mnemonist":"^0.40.3","strip-ansi":"^7.1.2","lint-staged":"^16.1.6","npm-run-all":"^4.1.5","@types/react":"^19.2.0","@octokit/rest":"^22.0.0","@types/marked":"^5.0.2","@types/mock-fs":"^4.13.4","@types/prompts":"^2.4.9","@types/minimatch":"^5.1.2","@types/react-dom":"^19.2.0","@types/mime-types":"^3.0.1","typescript-eslint":"^8.30.1","@esbuild/win32-x64":"^0.25.6","@types/shell-quote":"^1.7.5","@vitest/coverage-v8":"^3.1.1","esbuild-plugin-wasm":"^1.1.0","eslint-plugin-react":"^7.37.5","ink-testing-library":"^4.0.0","react-devtools-core":"^6.1.2","@types/node-schedule":"^2.1.8","eslint-plugin-import":"^2.31.0","@vitest/eslint-plugin":"^1.3.4","eslint-plugin-headers":"^1.3.3","eslint-config-prettier":"^10.1.2","@agentclientprotocol/sdk":"^0.12.0","eslint-plugin-react-hooks":"^5.2.0","google-artifactregistry-auth":"^3.4.0"},"bundleDependencies":["ffmpeg-static","ffplay-static"],"optionalDependencies":{"keytar":"^7.9.0","node-pty":"^1.0.0","@lydell/node-pty":"1.1.0","onnxruntime-node":"^1.24.1","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0","@rollup/rollup-win32-x64-msvc":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/phill-cli_1.0.1_1771341725505_0.06140035109034869","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ayjays132/phill-cli","version":"1.0.2","author":{"name":"Phillip A. Holland Jr."},"_id":"@ayjays132/phill-cli@1.0.2","maintainers":[{"name":"ayjays","email":"ayjays.ph@gmail.com"}],"homepage":"https://github.com/ayjays132/phill-cli#readme","bugs":{"url":"https://github.com/ayjays132/phill-cli/issues"},"bin":{"pcli":"bundle/phill.js","phill":"bundle/phill.js","young-philly":"bundle/phill.js"},"dist":{"shasum":"09046218d3170cff779adaaceef16d96d586982e","tarball":"https://registry.npmjs.org/@ayjays132/phill-cli/-/phill-cli-1.0.2.tgz","fileCount":369,"integrity":"sha512-njnAuCMomBEvPIZOQZtb5t3qBxlcpf12+45+B5PWZo5Y+A3V3kAjKSm/urakoDS4EZS7p3wPnpjT/39SD2vadQ==","signatures":[{"sig":"MEUCIAuoq8Elk+jqoY+W8LlgyyGV6pxJflhV5F2hzldYVxqwAiEAiTH9/ZteLI8uKQ/Q402EJ4UQYRta4O2yn4XwOn2790o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243615505},"type":"module","config":{"sandboxImageUri":"us-docker.pkg.dev/gemini-code-dev/phill-cli/sandbox:0.27.3"},"engines":{"node":">=20.0.0"},"gitHead":"98ed72c7598bbceb6d953444c712d0f74375be33","scripts":{"auth":"npm run auth:npm && npm run auth:docker","lint":"eslint . --cache","test":"npm run test --workspaces --if-present","build":"node scripts/build.js","clean":"node scripts/clean.js","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","start":"npm run dev:hot","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","format":"prettier --experimental-cli --write .","deflake":"node scripts/deflake.js","dev:hot":"npm-run-all --serial build --parallel \"bundle -- --watch\" \"dev:sentinel\"","lint:ci":"npm run lint:all","prepare":"husky && npm run bundle","test:ci":"npm run test:ci --workspaces --if-present && npm run test:scripts","auth:npm":"npx google-artifactregistry-auth","generate":"node scripts/generate-commit-info.js","lint:all":"node scripts/lint.js","lint:fix":"eslint . --fix --ext .ts,.tsx && eslint integration-tests --fix && eslint scripts --fix && npm run format","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","preflight":"npm run clean && npm ci && npm run format && npm run build && npm run lint:ci && npm run typecheck && npm run test:ci","telemetry":"node scripts/telemetry.js","typecheck":"npm run typecheck --workspaces --if-present","pre-commit":"node scripts/pre-commit.js","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","build:vscode":"node scripts/build_vscode_companion.js","dev:sentinel":"node scripts/sentinel.js","start:legacy":"cross-env NODE_ENV=development node scripts/start.js","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","build:sandbox":"node scripts/build_sandbox.js","docs:settings":"tsx ./scripts/generate-settings-doc.ts","build:packages":"npm run build --workspaces","check:lockfile":"node scripts/check-lockfile.js","test:all_evals":"cross-env RUN_EVALS=1 vitest run --config evals/vitest.config.ts","build-and-start":"npm run build && npm run start","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","schema:settings":"tsx ./scripts/generate-settings-schema.ts","docs:keybindings":"tsx ./scripts/generate-keybindings-doc.ts","predocs:settings":"npm run build --workspace phill-cli-core","start:a2a-server":"CODER_AGENT_PORT=41242 npm run start --workspace phill-cli-a2a-server","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:always_passing_evals":"vitest run --config evals/vitest.config.ts","sync:python-wrapper-version":"node scripts/sync-python-wrapper-version.js","check:python-wrapper-version":"node scripts/sync-python-wrapper-version.js --check","test:integration:sandbox:none":"cross-env PHILL_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"cross-env PHILL_SANDBOX=docker npm run build:sandbox && cross-env PHILL_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"cross-env PHILL_SANDBOX=podman vitest run --root ./integration-tests","deflake:test:integration:sandbox:none":"npm run deflake -- --command=\"npm run test:integration:sandbox:none -- --retry=0\"","deflake:test:integration:sandbox:docker":"npm run deflake -- --command=\"npm run test:integration-sandbox:docker -- --retry=0\""},"_npmUser":{"name":"ayjays","email":"ayjays.ph@gmail.com"},"overrides":{"cliui":{"wrap-ansi":"7.0.0"},"wrap-ansi":"9.0.2"},"repository":{"url":"git+https://github.com/ayjays132/phill-cli.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.6.0","description":"[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml) [![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"eslint.config.js":["prettier --write"],"*.{js,jsx,ts,tsx}":["prettier --write","eslint --fix --max-warnings 0 --no-warn-ignored"]},"_nodeVersion":"22.12.0","dependencies":{"ink":"npm:@jrichman/ink@6.4.8","dotenv":"^17.3.1","simple-git":"^3.28.0","ffmpeg-static":"^5.3.0","ffplay-static":"^3.2.2","latest-version":"^9.0.0","duckduckgo-search":"^1.0.7","@xenova/transformers":"^2.17.2"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","msw":"^2.10.4","tsx":"^4.20.3","glob":"^12.0.0","json":"^11.0.0","husky":"^9.1.7","memfs":"^4.42.0","yargs":"^17.7.2","eslint":"^9.24.0","semver":"^7.7.2","vitest":"^3.2.4","esbuild":"^0.25.0","globals":"^16.0.0","mock-fs":"^5.5.0","depcheck":"^1.4.7","prettier":"^3.5.3","ts-prune":"^0.10.3","cross-env":"^7.0.3","mnemonist":"^0.40.3","strip-ansi":"^7.1.2","ajv-formats":"^3.0.1","lint-staged":"^16.1.6","npm-run-all":"^4.1.5","@types/react":"^19.2.0","@octokit/rest":"^22.0.0","@types/marked":"^5.0.2","@types/mock-fs":"^4.13.4","@types/prompts":"^2.4.9","@types/minimatch":"^5.1.2","@types/react-dom":"^19.2.0","@types/mime-types":"^3.0.1","typescript-eslint":"^8.30.1","@esbuild/win32-x64":"^0.25.6","@types/shell-quote":"^1.7.5","@vitest/coverage-v8":"^3.1.1","esbuild-plugin-wasm":"^1.1.0","eslint-plugin-react":"^7.37.5","ink-testing-library":"^4.0.0","react-devtools-core":"^6.1.2","@types/node-schedule":"^2.1.8","eslint-plugin-import":"^2.31.0","@vitest/eslint-plugin":"^1.3.4","eslint-plugin-headers":"^1.3.3","eslint-config-prettier":"^10.1.2","@agentclientprotocol/sdk":"^0.12.0","eslint-plugin-react-hooks":"^5.2.0","google-artifactregistry-auth":"^3.4.0"},"bundleDependencies":["ffmpeg-static","ffplay-static"],"optionalDependencies":{"keytar":"^7.9.0","node-pty":"^1.0.0","@lydell/node-pty":"1.1.0","onnxruntime-node":"^1.24.1","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0","@rollup/rollup-win32-x64-msvc":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/phill-cli_1.0.2_1771343387405_0.6955677186909199","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ayjays132/phill-cli","version":"1.0.3","author":{"name":"Phillip A. Holland Jr."},"_id":"@ayjays132/phill-cli@1.0.3","maintainers":[{"name":"ayjays","email":"ayjays.ph@gmail.com"}],"homepage":"https://github.com/ayjays132/phill-cli#readme","bugs":{"url":"https://github.com/ayjays132/phill-cli/issues"},"bin":{"pcli":"bundle/phill.js","phill":"bundle/phill.js","young-philly":"bundle/phill.js"},"dist":{"shasum":"1d09ea2abfe3ac5799546a39d9a336dd51c0de18","tarball":"https://registry.npmjs.org/@ayjays132/phill-cli/-/phill-cli-1.0.3.tgz","fileCount":369,"integrity":"sha512-zRurVCNRf3ACfulQe1qLbdLameOPYjQgMbLFBPgSD2OGgpTHAbsLO601eKpeCD3+bYEQlry3HnwIu857c/cPYQ==","signatures":[{"sig":"MEYCIQC8OBWE3VZ9ks+KEc6dyR6S9p864A2BBHKZRCx5H7S/jgIhAM/NaV38yO3ZeIqbPpmpWIJi6TbC63TEE2iT8dyhk+ur","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243617697},"type":"module","config":{"sandboxImageUri":"us-docker.pkg.dev/gemini-code-dev/phill-cli/sandbox:0.27.3"},"engines":{"node":">=20.0.0"},"gitHead":"98ed72c7598bbceb6d953444c712d0f74375be33","scripts":{"auth":"npm run auth:npm && npm run auth:docker","lint":"eslint . --cache","test":"npm run test --workspaces --if-present","build":"node scripts/build.js","clean":"node scripts/clean.js","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","start":"npm run dev:hot","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","format":"prettier --experimental-cli --write .","deflake":"node scripts/deflake.js","dev:hot":"npm-run-all --serial build --parallel \"bundle -- --watch\" \"dev:sentinel\"","lint:ci":"npm run lint:all","prepare":"husky && npm run bundle","test:ci":"npm run test:ci --workspaces --if-present && npm run test:scripts","auth:npm":"npx google-artifactregistry-auth","generate":"node scripts/generate-commit-info.js","lint:all":"node scripts/lint.js","lint:fix":"eslint . --fix --ext .ts,.tsx && eslint integration-tests --fix && eslint scripts --fix && npm run format","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","preflight":"npm run clean && npm ci && npm run format && npm run build && npm run lint:ci && npm run typecheck && npm run test:ci","telemetry":"node scripts/telemetry.js","typecheck":"npm run typecheck --workspaces --if-present","pre-commit":"node scripts/pre-commit.js","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","build:vscode":"node scripts/build_vscode_companion.js","dev:sentinel":"node scripts/sentinel.js","start:legacy":"cross-env NODE_ENV=development node scripts/start.js","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","build:sandbox":"node scripts/build_sandbox.js","docs:settings":"tsx ./scripts/generate-settings-doc.ts","build:packages":"npm run build --workspaces","check:lockfile":"node scripts/check-lockfile.js","test:all_evals":"cross-env RUN_EVALS=1 vitest run --config evals/vitest.config.ts","build-and-start":"npm run build && npm run start","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","schema:settings":"tsx ./scripts/generate-settings-schema.ts","docs:keybindings":"tsx ./scripts/generate-keybindings-doc.ts","predocs:settings":"npm run build --workspace phill-cli-core","start:a2a-server":"CODER_AGENT_PORT=41242 npm run start --workspace phill-cli-a2a-server","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:always_passing_evals":"vitest run --config evals/vitest.config.ts","sync:python-wrapper-version":"node scripts/sync-python-wrapper-version.js","check:python-wrapper-version":"node scripts/sync-python-wrapper-version.js --check","test:integration:sandbox:none":"cross-env PHILL_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"cross-env PHILL_SANDBOX=docker npm run build:sandbox && cross-env PHILL_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"cross-env PHILL_SANDBOX=podman vitest run --root ./integration-tests","deflake:test:integration:sandbox:none":"npm run deflake -- --command=\"npm run test:integration:sandbox:none -- --retry=0\"","deflake:test:integration:sandbox:docker":"npm run deflake -- --command=\"npm run test:integration-sandbox:docker -- --retry=0\""},"_npmUser":{"name":"ayjays","email":"ayjays.ph@gmail.com"},"overrides":{"cliui":{"wrap-ansi":"7.0.0"},"wrap-ansi":"9.0.2"},"repository":{"url":"git+https://github.com/ayjays132/phill-cli.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.6.0","description":"[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml) [![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"eslint.config.js":["prettier --write"],"*.{js,jsx,ts,tsx}":["prettier --write","eslint --fix --max-warnings 0 --no-warn-ignored"]},"_nodeVersion":"22.12.0","dependencies":{"ink":"npm:@jrichman/ink@6.4.8","axios":"^1.13.5","dotenv":"^17.3.1","playwright":"^1.58.2","simple-git":"^3.28.0","ffmpeg-static":"^5.3.0","ffplay-static":"^3.2.2","latest-version":"^9.0.0","tree-sitter-bash":"^0.25.0","duckduckgo-search":"^1.0.7","google-auth-library":"^10.5.0","@xenova/transformers":"^2.17.2"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","msw":"^2.10.4","tsx":"^4.20.3","glob":"^12.0.0","json":"^11.0.0","husky":"^9.1.7","memfs":"^4.42.0","yargs":"^17.7.2","eslint":"^9.24.0","semver":"^7.7.2","vitest":"^3.2.4","esbuild":"^0.25.0","globals":"^16.0.0","mock-fs":"^5.5.0","depcheck":"^1.4.7","prettier":"^3.5.3","ts-prune":"^0.10.3","cross-env":"^7.0.3","mnemonist":"^0.40.3","strip-ansi":"^7.1.2","ajv-formats":"^3.0.1","lint-staged":"^16.1.6","npm-run-all":"^4.1.5","@types/react":"^19.2.0","@octokit/rest":"^22.0.0","@types/marked":"^5.0.2","@types/mock-fs":"^4.13.4","@types/prompts":"^2.4.9","@types/minimatch":"^5.1.2","@types/react-dom":"^19.2.0","@types/mime-types":"^3.0.1","typescript-eslint":"^8.30.1","@esbuild/win32-x64":"^0.25.6","@types/shell-quote":"^1.7.5","@vitest/coverage-v8":"^3.1.1","esbuild-plugin-wasm":"^1.1.0","eslint-plugin-react":"^7.37.5","ink-testing-library":"^4.0.0","react-devtools-core":"^6.1.2","@types/node-schedule":"^2.1.8","eslint-plugin-import":"^2.31.0","@vitest/eslint-plugin":"^1.3.4","eslint-plugin-headers":"^1.3.3","eslint-config-prettier":"^10.1.2","@agentclientprotocol/sdk":"^0.12.0","eslint-plugin-react-hooks":"^5.2.0","google-artifactregistry-auth":"^3.4.0"},"bundleDependencies":["ffmpeg-static","ffplay-static"],"optionalDependencies":{"keytar":"^7.9.0","node-pty":"^1.0.0","@lydell/node-pty":"1.1.0","onnxruntime-node":"^1.24.1","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0","@rollup/rollup-win32-x64-msvc":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/phill-cli_1.0.3_1771345087202_0.883836337894311","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ayjays132/phill-cli","version":"1.0.4","author":{"name":"Phillip A. Holland Jr."},"engines":{"node":">=20.0.0"},"type":"module","workspaces":["packages/*"],"repository":{"type":"git","url":"git+https://github.com/ayjays132/phill-cli.git"},"config":{"sandboxImageUri":"us-docker.pkg.dev/gemini-code-dev/phill-cli/sandbox:0.27.3"},"scripts":{"start":"npm run dev:hot","start:legacy":"cross-env NODE_ENV=development node scripts/start.js","start:a2a-server":"CODER_AGENT_PORT=41242 npm run start --workspace phill-cli-a2a-server","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","deflake":"node scripts/deflake.js","deflake:test:integration:sandbox:none":"npm run deflake -- --command=\"npm run test:integration:sandbox:none -- --retry=0\"","deflake:test:integration:sandbox:docker":"npm run deflake -- --command=\"npm run test:integration-sandbox:docker -- --retry=0\"","auth:npm":"npx google-artifactregistry-auth","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","auth":"npm run auth:npm && npm run auth:docker","generate":"node scripts/generate-commit-info.js","predocs:settings":"npm run build --workspace phill-cli-core","schema:settings":"tsx ./scripts/generate-settings-schema.ts","docs:settings":"tsx ./scripts/generate-settings-doc.ts","docs:keybindings":"tsx ./scripts/generate-keybindings-doc.ts","build":"node scripts/build.js","build-and-start":"npm run build && npm run start","build:vscode":"node scripts/build_vscode_companion.js","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","build:packages":"npm run build --workspaces","build:sandbox":"node scripts/build_sandbox.js","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","test":"npm run test --workspaces --if-present","test:ci":"npm run test:ci --workspaces --if-present && npm run test:scripts","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","test:always_passing_evals":"vitest run --config evals/vitest.config.ts","test:all_evals":"cross-env RUN_EVALS=1 vitest run --config evals/vitest.config.ts","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:integration:sandbox:none":"cross-env PHILL_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"cross-env PHILL_SANDBOX=docker npm run build:sandbox && cross-env PHILL_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"cross-env PHILL_SANDBOX=podman vitest run --root ./integration-tests","lint":"eslint . --cache","lint:fix":"eslint . --fix --ext .ts,.tsx && eslint integration-tests --fix && eslint scripts --fix && npm run format","lint:ci":"npm run lint:all","lint:all":"node scripts/lint.js","format":"prettier --experimental-cli --write .","typecheck":"npm run typecheck --workspaces --if-present","preflight":"npm run clean && npm ci && npm run format && npm run build && npm run lint:ci && npm run typecheck && npm run test:ci","prepare":"husky && npm run bundle","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","telemetry":"node scripts/telemetry.js","sync:python-wrapper-version":"node scripts/sync-python-wrapper-version.js","check:python-wrapper-version":"node scripts/sync-python-wrapper-version.js --check","check:lockfile":"node scripts/check-lockfile.js","clean":"node scripts/clean.js","pre-commit":"node scripts/pre-commit.js","dev:sentinel":"node scripts/sentinel.js","dev:hot":"npm-run-all --serial build --parallel \"bundle -- --watch\" \"dev:sentinel\""},"overrides":{"wrap-ansi":"9.0.2","cliui":{"wrap-ansi":"7.0.0"}},"bin":{"phill":"bundle/phill.js","pcli":"bundle/phill.js","young-philly":"bundle/phill.js"},"devDependencies":{"@agentclientprotocol/sdk":"^0.12.0","@esbuild/win32-x64":"^0.25.6","@octokit/rest":"^22.0.0","@types/marked":"^5.0.2","@types/mime-types":"^3.0.1","@types/minimatch":"^5.1.2","@types/mock-fs":"^4.13.4","@types/node-schedule":"^2.1.8","@types/prompts":"^2.4.9","@types/react":"^19.2.0","@types/react-dom":"^19.2.0","@types/shell-quote":"^1.7.5","@vitest/coverage-v8":"^3.1.1","@vitest/eslint-plugin":"^1.3.4","ajv":"^8.18.0","ajv-formats":"^3.0.1","cross-env":"^7.0.3","depcheck":"^1.4.7","esbuild":"^0.25.0","esbuild-plugin-wasm":"^1.1.0","eslint":"^9.24.0","eslint-config-prettier":"^10.1.2","eslint-plugin-headers":"^1.3.3","eslint-plugin-import":"^2.31.0","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","glob":"^12.0.0","globals":"^16.0.0","google-artifactregistry-auth":"^3.4.0","husky":"^9.1.7","ink-testing-library":"^4.0.0","json":"^11.0.0","lint-staged":"^16.1.6","memfs":"^4.42.0","mnemonist":"^0.40.3","mock-fs":"^5.5.0","msw":"^2.10.4","npm-run-all":"^4.1.5","prettier":"^3.5.3","react-devtools-core":"^6.1.2","semver":"^7.7.2","strip-ansi":"^7.1.2","ts-prune":"^0.10.3","tsx":"^4.20.3","typescript-eslint":"^8.30.1","vitest":"^3.2.4","yargs":"^17.7.2"},"dependencies":{"playwright":"^1.58.2","tree-sitter-bash":"^0.25.0","web-tree-sitter":"^0.25.10","@xenova/transformers":"^2.17.2","ffmpeg-static":"*","ffplay-static":"*"},"optionalDependencies":{"@lydell/node-pty":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","fsevents":"^2.3.2","keytar":"^7.9.0","node-pty":"^1.0.0","onnxruntime-node":"^1.24.1","ffmpeg-static":"^5.3.0","ffplay-static":"^3.2.2"},"lint-staged":{"*.{js,jsx,ts,tsx}":["prettier --write","eslint --fix --max-warnings 0 --no-warn-ignored"],"eslint.config.js":["prettier --write"],"*.{json,md}":["prettier --write"]},"bundleDependencies":["ffmpeg-static","ffplay-static"],"_id":"@ayjays132/phill-cli@1.0.4","gitHead":"ba89af35f20dcc96e9ed91bae91c44b989b6473b","description":"[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml) [![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.","bugs":{"url":"https://github.com/ayjays132/phill-cli/issues"},"homepage":"https://github.com/ayjays132/phill-cli#readme","_nodeVersion":"22.12.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-eKn+RqMSlItF1rAgAVvMlq8bIk4L4ngmVqbsHf56IKvy1Gq0xoHG/mU+82U4rsyDivPQkZzsodNgUIuTsg42hw==","shasum":"cb9e3859e2cc04d18a94b8927b8e910b11b55a54","tarball":"https://registry.npmjs.org/@ayjays132/phill-cli/-/phill-cli-1.0.4.tgz","fileCount":369,"unpackedSize":264927020,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDyRiIUVRavs5eIXFYHGZP7YRdE4smLvdV4LsgtVLj5PQIhAJBQTSoyoBJgTTwdOH8KaY27v0mbJ7JbY6K0aCsWvhGT"}]},"_npmUser":{"name":"ayjays","email":"ayjays.ph@gmail.com"},"directories":{},"maintainers":[{"name":"ayjays","email":"ayjays.ph@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/phill-cli_1.0.4_1771404174684_0.04392130908056524"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T15:22:05.335Z","modified":"2026-02-18T08:42:57.248Z","1.0.1":"2026-02-17T15:22:07.840Z","1.0.2":"2026-02-17T15:49:49.771Z","1.0.3":"2026-02-17T16:18:09.652Z","1.0.4":"2026-02-18T08:42:57.101Z"},"bugs":{"url":"https://github.com/ayjays132/phill-cli/issues"},"author":{"name":"Phillip A. Holland Jr."},"homepage":"https://github.com/ayjays132/phill-cli#readme","repository":{"type":"git","url":"git+https://github.com/ayjays132/phill-cli.git"},"description":"[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml) [![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.","maintainers":[{"name":"ayjays","email":"ayjays.ph@gmail.com"}],"readme":"# 🦅 Phill CLI\n\n[![Phill CLI CI](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/ci.yml)\n[![Phill CLI E2E (Chained)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.yml/badge.svg)](https://github.com/ayjays132/phill-cli/actions/workflows/chained_e2e.yml)\n[![Version](https://img.shields.io/npm/v/phill-cli)](https://www.npmjs.com/package/phill-cli)\n[![License](https://img.shields.io/github/license/ayjays132/phill-cli)](https://github.com/ayjays132/phill-cli/blob/main/LICENSE)\n\n![Phill CLI Banner](./docs/assets/phill-screenshot.png)\n\n### The command-line power of Phill, refined with AGI-like capabilities.\n\nPhill CLI is a state-of-the-art AI agent that brings Phill's intelligence directly to your terminal. Built for speed, precision, autonomy, and the ultimate developer experience with advanced cognitive capabilities that push towards AGI principles.\n\n> 🌟 **Multi-Provider Support**: Works with Google Gemini, Anthropic Claude, OpenAI, Groq, Ollama (local), HuggingFace, and more! Choose your preferred AI provider.\n\n[**Explore the Docs**](https://phillcli.com/docs/) • [**Quickstart**](#-quick-install) • [**Features**](#-key-features) • [**Roadmap**](./ROADMAP.md)\n\n---\n\n## 🚀 Why Phill CLI?\n\n- 🎯 **Free tier**: 60 requests/min and 1,000 requests/day with personal Google account\n- 🧠 **Powerful Phill 3 models**: Access to improved reasoning and 1M token context window\n- 🤖 **AGI-like capabilities**: Advanced memory, self-reflection, autonomous exploration, and skill creation\n- 🔧 **Built-in tools**: Google Search grounding, file operations, shell commands, web fetching\n- 🔌 **Extensible**: MCP (Model Context Protocol) support for custom integrations\n- 🌐 **10 AI providers supported**: Google, Anthropic, OpenAI, Groq, Ollama, HuggingFace, and more\n- 💻 **Terminal-first**: Designed for developers who live in the command line\n- 🛡️ **Open source**: Apache 2.0 licensed\n- ⚡ **Lightning fast**: Optimized for speed and efficiency\n\n---\n\n## 📦 Installation\n\n### Pre-requisites\n\n- Node.js version 20 or higher\n- macOS, Linux, or Windows\n\n### Quick Install\n\n#### ⚡ Run instantly with npx (no installation required)\n\n```bash\nnpx phill-cli\n```\n\n#### 📦 Install globally with npm\n\n```bash\nnpm install -g phill-cli\n```\n\n#### 🍺 Install globally with Homebrew (macOS/Linux)\n\n```bash\nbrew install phill-cli\n```\n\n#### 🔧 Install globally with MacPorts (macOS)\n\n```bash\nsudo port install phill-cli\n```\n\n#### 🐍 Install with Anaconda (for restricted environments)\n\n```bash\n# Create and activate a new environment\nconda create -y -n phill_env -c conda-forge nodejs\nconda activate phill_env\n\n# Install Phill CLI globally via npm (inside the environment)\nnpm install -g phill-cli\n```\n\n---\n\n## ✨ Core Features & AGI-like Capabilities\n\n### 🧠 Advanced Cognitive Functions\n\n#### **Memory Management**\n- **Long-term Memory**: Store and retrieve specific facts, preferences, and important information across sessions\n- **Memory Commands**: `save_memory`, `recall_memory`, `ingest_memory`\n- **Persistent Knowledge**: Maintains personalized context and learns from every interaction\n- **What it does**: Enables Phill to remember your preferences, project details, and important context across sessions, providing truly personalized assistance\n\n#### **Self-Reflection**\n- **Autonomous Analysis**: Analyzes own logs and identifies patterns of friction\n- **Self-Improvement**: Proposes improvements to operating procedures\n- **Adaptive Learning**: Continuously refines performance based on experience\n- **What it does**: Phill can examine its own behavior and suggest ways to work better with you and your projects\n\n#### **Autonomous Exploration**\n- **Proactive Optimization**: When idle, automatically looks for system optimizations\n- **Bug Discovery**: Identifies potential issues and proposes fixes\n- **Capability Expansion**: Discovers new ways to enhance performance\n- **What it does**: Phill doesn't wait to be told—it actively explores your codebase to find improvements and opportunities\n\n#### **Skill Creation (Meta-Learning)**\n- **Dynamic Skill Generation**: Creates new specialized skills on the fly\n- **Self-Extension**: Expands own capabilities based on user needs\n- **Adaptive Tooling**: Addresses repetitive tasks with custom solutions\n- **What it does**: Phill can build new tools for itself to handle your specific workflows, essentially programming itself to be more useful\n\n#### **Continuity Architecture**\n- **Session Persistence**: Manages state across sessions\n- **Snapshot Recovery**: Uses short-term snapshots for robust workflows\n- **Uninterrupted Work**: Maintains context even after interruptions\n- **What it does**: Never lose your progress—Phill maintains full context of complex, multi-step projects\n\n#### **Deep Cognition (System 2 Reasoning)**\n- **Complex Problem Solving**: Tackles abstract and multi-step challenges\n- **Strategic Thinking**: Plans and executes sophisticated workflows\n- **Multi-dimensional Analysis**: Considers multiple perspectives and approaches\n- **What it does**: Goes beyond quick responses to provide thoughtful, strategic solutions to complex problems\n\n### 💻 Core Interaction & Understanding\n\n#### **Multimodal Input/Output**\n- **Text Processing**: Natural language understanding and generation\n- **Code Generation**: Multiple programming languages and frameworks\n- **Shell Integration**: Direct command-line interaction\n- **What it does**: Communicate with Phill in whatever format makes sense—prose, code, or commands\n\n#### **Contextual Awareness**\n- **Conversation Tracking**: Maintains detailed understanding of ongoing discussions\n- **Project Structure**: Understands your directory layout and conventions\n- **Workflow Recognition**: Learns your development patterns\n- **What it does**: Phill knows where you are, what you're working on, and what you've discussed, providing relevant assistance without repetition\n\n#### **Tool Use & Orchestration**\n- **Dynamic Tool Selection**: Automatically chooses the right tools for each task\n- **Complex Workflows**: Combines multiple tools in sophisticated sequences\n- **Adaptive Execution**: Adjusts approach based on results\n- **What it does**: Phill intelligently chains together file operations, shell commands, web searches, and more to accomplish complex tasks\n\n### 🔧 Code & System Interaction\n\n#### **Codebase Investigation**\n- **Code Search**: Fast, intelligent searching across your entire project\n- **Pattern Recognition**: Identifies conventions and architectural patterns\n- **Dependency Analysis**: Understands relationships between components\n- **What it does**: Phill can navigate and understand large codebases to answer questions, find bugs, and suggest improvements\n\n#### **Code Modification**\n- **Precise Edits**: Surgical changes that respect existing style\n- **Convention Adherence**: Follows your project's patterns automatically\n- **Multi-file Operations**: Coordinates changes across multiple files\n- **What it does**: Makes code changes that look like they were written by your team, maintaining consistency and quality\n\n#### **File System Management**\n- **Full CRUD Operations**: Create, read, update, and delete files and directories\n- **Batch Operations**: Handle multiple files efficiently\n- **Safe Execution**: Confirms destructive operations\n- **What it does**: Complete control over your project structure with intelligent safeguards\n\n#### **Shell Command Execution**\n- **Direct OS Access**: Run any command-line tool or utility\n- **Build Integration**: Execute build scripts, tests, and deployment commands\n- **Environment Awareness**: Understands your system configuration\n- **What it does**: Phill can interact directly with your operating system to build, test, deploy, and manage your projects\n\n### 🎯 Specialized Skills\n\n#### **Browser Expert**\n- **Advanced Web Navigation**: Sophisticated browsing capabilities\n- **Dynamic Content Interaction**: Handles modern web applications\n- **VLA-driven Browsing**: Vision-language-action based web interaction\n- **What it does**: Phill can browse the web intelligently, interact with web apps, and extract information from complex sites\n\n#### **Code Reviewer**\n- **Quality Analysis**: Reviews code for correctness and maintainability\n- **Standards Enforcement**: Ensures adherence to project conventions\n- **Best Practices**: Suggests improvements based on industry standards\n- **What it does**: Get professional-quality code reviews that catch issues and suggest improvements\n\n#### **PR Creator**\n- **Template Following**: Generates pull requests using your established templates\n- **Context Gathering**: Includes all relevant information and context\n- **Standards Compliance**: Follows your team's PR conventions\n- **What it does**: Automatically create well-structured pull requests with proper descriptions and context\n\n#### **Universal Operator**\n- **OS Mastery**: Deep understanding of operating system internals\n- **Real-time Spatial Awareness**: Understands system state and resource usage\n- **Autonomous Learning**: Continuously learns about your system environment\n- **What it does**: Phill develops expert-level knowledge of your specific system configuration and can optimize accordingly\n\n### 🔍 Built-in Tools\n\n- **Google Search Grounding**: Real-time information access with source attribution\n- **Web Fetching**: Retrieve and process web content\n- **File System Operations**: Complete file and directory management\n- **Shell Command Execution**: Run any command-line tool\n- **Code Analysis**: Understand and manipulate code across languages\n- **Git Integration**: Interact with version control\n\n---\n\n## 🔐 Authentication Options\n\nPhill CLI supports multiple AI providers and authentication methods. Choose the one that best fits your needs:\n\n### 🥇 Recommended: Option 1 - Login with Google\n\n**✨ Best for:** Individual developers and anyone with a Phill Code Assist License (see [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details)\n\n**Benefits:**\n- 🎯 **Free tier**: 60 requests/min and 1,000 requests/day\n- 🧠 **Phill 3 models** with 1M token context window\n- 🔑 **No API key management** - just sign in with your Google account\n- 🔄 **Automatic updates** to latest models\n\n#### Start Phill CLI, then choose _Login with Google_ and follow the browser authentication flow when prompted\n\n```bash\nphill\n```\n\n#### If you are using a paid Code Assist License from your organization, remember to set the Google Cloud Project\n\n```bash\n# Set your Google Cloud Project\nexport GOOGLE_CLOUD_PROJECT=\"YOUR_PROJECT_ID\"\nphill\n```\n\n---\n\n### Option 2: 🔑 Gemini API Key\n\n**✨ Best for:** Developers who need specific model control or paid tier access\n\n**Benefits:**\n- 🎯 **Free tier**: 1000 requests/day with Phill 3 (mix of flash and pro)\n- 🎛️ **Model selection**: Choose specific Phill models\n- 💳 **Usage-based billing**: Upgrade for higher limits when needed\n\n```bash\n# Get your key from https://aistudio.google.com/apikey\nexport PHILL_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### Option 3: ☁️ Vertex AI\n\n**✨ Best for:** Enterprise teams and production workloads\n\n**Benefits:**\n- 🏢 **Enterprise features**: Advanced security and compliance\n- 📈 **Scalable**: Higher rate limits with billing account\n- 🔗 **Integration**: Works with existing Google Cloud infrastructure\n\n```bash\n# Get your key from Google Cloud Console\nexport GOOGLE_API_KEY=\"YOUR_API_KEY\"\nexport GOOGLE_GENAI_USE_VERTEXAI=true\nphill\n```\n\n---\n\n### Option 4: 🏠 Ollama (Local)\n\n**✨ Best for:** Privacy-focused developers and offline work\n\n**Benefits:**\n- 🔒 **100% Local**: All processing happens on your machine\n- 💰 **No cost**: No API fees or rate limits\n- 🔌 **Offline capable**: Works without internet connection\n\n```bash\n# Make sure Ollama is running locally\nexport OLLAMA_API_BASE=\"http://localhost:11434\"\nphill\n```\n\n---\n\n### Option 5: 🤗 HuggingFace\n\n**✨ Best for:** Open-source model enthusiasts\n\n**Benefits:**\n- 🌐 **Wide model selection**: Access to thousands of open-source models\n- 🆓 **Free tier available**: Many models have generous free tiers\n- 🔬 **Experimental models**: Try cutting-edge research models\n\n```bash\nexport HUGGINGFACE_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### Option 6: 🤖 OpenAI / Codex\n\n**✨ Best for:** Developers familiar with OpenAI's ecosystem\n\n**Benefits:**\n- 💪 **Powerful models**: GPT-4, GPT-4 Turbo, and Codex\n- 📝 **Excellent code generation**: Optimized for programming tasks\n- 🔧 **Function calling**: Advanced tool use capabilities\n\n```bash\nexport OPENAI_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### Option 7: 🌐 OpenAI / Codex (Browser Sign-In)\n\n**✨ Best for:** Quick testing without API key setup\n\n**Benefits:**\n- ⚡ **Fast setup**: No API key required\n- 🔐 **Browser authentication**: Use your OpenAI account\n- 🎓 **Easy onboarding**: Perfect for getting started\n\n```bash\nphill\n# Select option 7 and follow browser authentication\n```\n\n---\n\n### Option 8: 🎭 Anthropic (Claude)\n\n**✨ Best for:** Advanced reasoning and long-context tasks\n\n**Benefits:**\n- 🧠 **Superior reasoning**: Excellent for complex problem-solving\n- 📚 **200K context window**: Handle extremely large codebases\n- 🛡️ **Safety-focused**: Strong alignment and ethical considerations\n\n```bash\nexport ANTHROPIC_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### Option 9: ⚡ Groq\n\n**✨ Best for:** Speed-critical applications\n\n**Benefits:**\n- 🚀 **Lightning fast**: Industry-leading inference speed\n- 💰 **Cost-effective**: Competitive pricing\n- 🎯 **High throughput**: Handle many requests efficiently\n\n```bash\nexport GROQ_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### Option 10: 🔧 Custom API (OpenAI-compatible)\n\n**✨ Best for:** Self-hosted models or custom deployments\n\n**Benefits:**\n- 🏢 **Full control**: Use your own infrastructure\n- 🔒 **Data privacy**: Keep everything in-house\n- 🎛️ **Customization**: Fine-tuned models for your needs\n\n```bash\nexport OPENAI_API_BASE=\"https://your-custom-api.com/v1\"\nexport OPENAI_API_KEY=\"YOUR_API_KEY\"\nphill\n```\n\n---\n\n### 📖 Additional Authentication Resources\n\nFor more detailed setup instructions, authentication troubleshooting, and advanced configuration options, see the [authentication guide](./docs/get-started/authentication.md).\n\n---\n\n## 🚀 Getting Started\n\n### Basic Usage\n\n#### 📁 Start in current directory\n\n```bash\nphill\n```\n\n#### 📂 Include multiple directories\n\n```bash\nphill --include-directories ../lib,../docs\n```\n\n#### 🎯 Use specific model\n\n```bash\nphill -m gemini-2.5-flash\n```\n\n#### 🤖 Non-interactive mode for scripts\n\nGet a simple text response:\n\n```bash\nphill -p \"Explain the architecture of this codebase\"\n```\n\nFor more advanced scripting, including how to parse JSON and handle errors, use the `--output-format json` flag to get structured output:\n\n```bash\nphill -p \"Explain the architecture of this codebase\" --output-format json\n```\n\nFor real-time event streaming (useful for monitoring long-running operations), use `--output-format stream-json` to get newline-delimited JSON events:\n\n```bash\nphill -p \"Run tests and deploy\" --output-format stream-json\n```\n\n### Quick Examples\n\n#### 🚀 Start a new project\n\n```bash\ncd new-project/\nphill\n> Write me a Discord bot that answers questions using a FAQ.md file I will provide\n```\n\n#### 🔍 Analyze existing code\n\n```bash\ngit clone https://github.com/ayjays132/phill-cli\ncd phill-cli\nphill\n> Give me a summary of all of the changes that went in yesterday\n```\n\n#### 🧠 Use advanced memory features\n\n```bash\nphill\n> Remember that I prefer TypeScript over JavaScript for all new projects\n> Save to memory: Our API uses REST with JSON responses\n> What programming style do I prefer? [Phill will recall from memory]\n```\n\n#### 🤖 Enable autonomous features\n\n```bash\nphill\n> Enable autonomous exploration for this project\n> [Phill will proactively identify optimizations and improvements]\n```\n\n---\n\n## 📚 Documentation\n\n### 🚀 Getting Started\n\n- [**Quickstart Guide**](./docs/get-started/index.md) - Get up and running quickly\n- [**Authentication Setup**](./docs/get-started/authentication.md) - Detailed auth configuration\n- [**Configuration Guide**](./docs/get-started/configuration.md) - Settings and customization\n- [**Keyboard Shortcuts**](./docs/cli/keyboard-shortcuts.md) - Productivity tips\n\n### ⚡ Core Features\n\n- [**Commands Reference**](./docs/cli/commands.md) - All slash commands (`/help`, `/chat`, etc)\n- [**Custom Commands**](./docs/cli/custom-commands.md) - Create your own reusable commands\n- [**Context Files (PHILL.md)**](./docs/cli/phill-md.md) - Provide persistent context to Phill CLI\n- [**Checkpointing**](./docs/cli/checkpointing.md) - Save and resume conversations\n- [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage\n- [**Memory Management**](./docs/cli/memory.md) - Long-term memory features\n- [**Identity Setup**](./docs/cli/identity.md) - Personalize your agent\n\n### 🔧 Tools & Extensions\n\n- [**Built-in Tools Overview**](./docs/tools/index.md)\n  - [File System Operations](./docs/tools/file-system.md)\n  - [Shell Commands](./docs/tools/shell.md)\n  - [Web Fetch & Search](./docs/tools/web-fetch.md)\n- [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom tools\n- [**Custom Extensions**](./docs/extensions/index.md) - Build and share your own commands\n\n### 🎓 Advanced Topics\n\n- [**Headless Mode (Scripting)**](./docs/cli/headless.md) - Use Phill CLI in automated workflows\n- [**Architecture Overview**](./docs/architecture.md) - How Phill CLI works\n- [**IDE Integration**](./docs/ide-integration/index.md) - VS Code companion\n- [**Sandboxing & Security**](./docs/cli/sandbox.md) - Safe execution environments\n- [**Trusted Folders**](./docs/cli/trusted-folders.md) - Control execution policies by folder\n- [**Enterprise Guide**](./docs/cli/enterprise.md) - Deploy and manage in a corporate environment\n- [**Telemetry & Monitoring**](./docs/cli/telemetry.md) - Usage tracking\n- [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools\n- [**Local Development**](./docs/local-development.md) - Local development tooling\n- [**Skills Development**](./docs/skills/index.md) - Create and manage specialized skills\n- [**Autonomous Features**](./docs/advanced/autonomous.md) - Self-reflection and exploration\n- [**Deep Cognition**](./docs/advanced/deep-cognition.md) - Advanced reasoning capabilities\n\n### 🆘 Troubleshooting & Support\n\n- [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and solutions\n- [**FAQ**](./docs/faq.md) - Frequently asked questions\n- Use `/bug` command to report issues directly from the CLI\n\n---\n\n## 🔌 Using MCP Servers\n\nConfigure MCP servers in `~/.phill/settings.json` to extend Phill CLI with custom tools:\n\n```text\n> @github List my open pull requests\n> @slack Send a summary of today's commits to #dev channel\n> @database Run a query to find inactive users\n```\n\nSee the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup instructions.\n\n---\n\n## 🎯 GitHub Integration\n\nIntegrate Phill CLI directly into your GitHub workflows with [**Phill CLI GitHub Action**](https://github.com/google-github-actions/run-gemini-cli):\n\n- **Pull Request Reviews**: Automated code review with contextual feedback and suggestions\n- **Issue Triage**: Automated labeling and prioritization of GitHub issues based on content analysis\n- **On-demand Assistance**: Mention `@phill-cli` in issues and pull requests for help with debugging, explanations, or task delegation\n- **Custom Workflows**: Build automated, scheduled and on-demand workflows tailored to your team's needs\n\n---\n\n## 🗺️ Roadmap\n\nCheck our [Official Roadmap](./ROADMAP.md) for planned features, upcoming capabilities, and development priorities.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Phill CLI is fully open source (Apache 2.0), and we encourage the community to:\n\n- 🐛 Report bugs and suggest features\n- 📝 Improve documentation\n- 💻 Submit code improvements\n- 🔌 Share your MCP servers and extensions\n- 🎯 Create new specialized skills\n\nSee our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding standards, and how to submit pull requests.\n\n---\n\n## 📖 Resources\n\n- 🗺️ **[Official Roadmap](./ROADMAP.md)** - See what's coming next\n- 📋 **[Changelog](./docs/changelogs/index.md)** - Recent notable updates\n- 📦 **[NPM Package](https://www.npmjs.com/package/phill-cli)** - Package registry\n- 💻 **[GitHub Repository](https://github.com/ayjays132/phill-cli)** - Source code and issues\n- 🐛 **[GitHub Issues](https://github.com/ayjays132/phill-cli/issues)** - Report bugs or request features\n- 🔒 **[Security Advisories](https://github.com/ayjays132/phill-cli/security/advisories)** - Security updates\n\n---\n\n## 🔧 Configuration Example\n\nYour `~/.phill/settings.json` might look like:\n\n```json\n{\n  \"model\": \"gemini-2.5-flash\",\n  \"memory\": {\n    \"enabled\": true,\n    \"longTerm\": true\n  },\n  \"autonomous\": {\n    \"exploration\": true,\n    \"reflection\": true,\n    \"skillCreation\": true\n  },\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"]\n    },\n    \"slack\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-slack\"]\n    }\n  }\n}\n```\n\n---\n\n## 🛡️ Security & Privacy\n\n- **MOLT-GUARD ACTIVE**: Built-in alignment and security monitoring\n- **Trusted Folders**: Control execution policies by directory\n- **Sandboxing**: Safe execution environments for untrusted code\n- **Privacy First**: Your code and data stay private\n- See our [Security Policy](SECURITY.md) for details\n\n---\n\n## 📋 System Requirements\n\n- **Node.js**: Version 20 or higher\n- **Operating Systems**: \n  - macOS (10.15+)\n  - Linux (Ubuntu 20.04+, Debian 10+, Fedora 33+)\n  - Windows (10/11 with WSL2 recommended)\n- **Memory**: Minimum 4GB RAM (8GB+ recommended for large projects)\n- **Disk Space**: 500MB for installation + project space\n\n---\n\n## 🎓 Learning Resources\n\n### Tutorials\n- [Getting Started Tutorial](./docs/tutorials/getting-started.md)\n- [Advanced Memory Usage](./docs/tutorials/advanced-memory.md)\n- [Creating Custom Skills](./docs/tutorials/custom-skills.md)\n- [MCP Server Integration](./docs/tutorials/mcp-integration.md)\n\n### Video Guides\n- [Phill CLI Introduction](https://youtube.com/phillcli-intro)\n- [Memory & Context Management](https://youtube.com/phillcli-memory)\n- [Building with MCP Servers](https://youtube.com/phillcli-mcp)\n\n---\n\n## 🌟 Key Differentiators\n\nWhat makes Phill CLI unique:\n\n1. 🧠 **True Memory**: Unlike traditional AI tools, Phill remembers context across sessions\n2. 🔄 **Self-Improving**: Phill can analyze its own performance and create new capabilities\n3. 🤖 **Autonomous**: Proactively finds optimizations without being asked\n4. 🎯 **Meta-Learning**: Can create new specialized skills based on your needs\n5. 💡 **Deep Cognition**: Goes beyond surface-level responses with strategic reasoning\n6. 👨‍💻 **Developer-First**: Built for and by developers who live in the terminal\n7. 🌐 **Multi-Provider**: Works with 10+ AI providers - choose your favorite\n\n---\n\n## 🔄 Uninstall\n\nSee the [Uninstall Guide](docs/cli/uninstall.md) for removal instructions.\n\n---\n\n## 📄 Legal\n\n- **License**: [Apache License 2.0](LICENSE)\n- **Terms of Service**: [Terms & Privacy](./docs/tos-privacy.md)\n- **Security**: [Security Policy](SECURITY.md)\n\n---\n\n## 💬 Community\n\n- **Discord**: [Join our community](https://discord.gg/phill-cli)\n- **Twitter/X**: [@phillcli](https://twitter.com/phillcli)\n- **Stack Overflow**: Tag your questions with `phill-cli`\n- **Reddit**: [r/phillcli](https://reddit.com/r/phillcli)\n\n---\n\n## 🙏 Acknowledgments\n\nPhill CLI is built on the shoulders of giants. Special thanks to:\n\n- The Anthropic team for Claude's advanced capabilities\n- The MCP protocol contributors\n- The open-source community\n- All our contributors and early adopters\n\n---\n\n<p align=\"center\">\n  <strong>Built with ❤️ by developers, for developers</strong><br>\n  <sub>Pushing the boundaries of what AI can do in the terminal</sub>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/ayjays132/phill-cli\">⭐ Star us on GitHub</a> •\n  <a href=\"https://github.com/ayjays132/phill-cli/issues/new\">🐛 Report a Bug</a> •\n  <a href=\"https://github.com/ayjays132/phill-cli/issues/new\">💡 Request a Feature</a>\n</p>","readmeFilename":"README.md"}