{"_id":"@antaif3ng/til-work","_rev":"12-f68703f2939a602a6c5748733f70acd4","name":"@antaif3ng/til-work","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"@antaif3ng/til-work","version":"0.1.0","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.1.0","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"5d10cd4f9c53d38681f8d3d467f860b2c814217f","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.1.0.tgz","fileCount":150,"integrity":"sha512-zdt1lDNbA++/mTeYDt562bQyN4sK6YmLfAIri9NOiCSdytWYd7PAAwgI53qzLYMAo0IJjn50g9CUDaMtqq2TFg==","signatures":[{"sig":"MEUCIQC6iW7NrG9k1KOsxZv9a8BXlgKab/D/TLNJLlOhagR3xgIgL5Hdkt4R/QF9ooqbFjkuhm2xr6/Hshw4y5kXKvE2Acg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":539331},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"881356b23df331da66f0fd59990bb701e80b6d71","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Agent — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.1.0_1773482477549_0.44896336110550306","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@antaif3ng/til-work","version":"0.1.1","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.1.1","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"88fac88318d68eb98e973a1fa852a994c6dc5b87","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.1.1.tgz","fileCount":150,"integrity":"sha512-qjtJhpKrc1s+QA2w0mBlgIFvWu99OENkAp+JvbmpViPpwLrDQemL4EGWOYlsxNmxWyCgC8tW+aLq2OUykYMIuQ==","signatures":[{"sig":"MEUCICIQKtaYjkDNVb+HzPX5wsNqQ6t/2VMqp2V/j0LpCsC4AiEAwlI2BafUw4K8KodN8Ep0TlzSLTWvYh9rHYxyzWuGvSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":539168},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"881356b23df331da66f0fd59990bb701e80b6d71","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Agent — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.1.1_1773483234701_0.20795410609987264","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@antaif3ng/til-work","version":"0.1.2","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.1.2","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"7d1a60d1a1ff3b1ab2a59bf819cb5ffcb90cb409","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.1.2.tgz","fileCount":154,"integrity":"sha512-/a0v/KxtD/r6dqISjAXCHlRcLUmHq46e0qTGSAywyyC/zr6/Bwh7clZqbxNE6po2H1fko38B9GEQg9Z/TVvqSw==","signatures":[{"sig":"MEUCICYdrp/+/+ZTXCOop0zsVmqPUj/h3QDVyQhAe8nQL2+5AiEAmcDn4utSGLHwByqknjYrnZxj59ZPPjRzYjUlPp2DEqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540441},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"881356b23df331da66f0fd59990bb701e80b6d71","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Agent — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.1.2_1773483995916_0.5088592719952048","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@antaif3ng/til-work","version":"0.2.0","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.2.0","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"68e636b011ed0ec0a6a926a74875f483e9bd6877","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.2.0.tgz","fileCount":171,"integrity":"sha512-dTfNpIXWmbmF5P/522kLeDfrXroBEZnUWm7RM4Bal9bODoJoA2knBpGWOMPFWZDjHVzrO3oGec7IHLRiUxpq2g==","signatures":[{"sig":"MEYCIQCUG1pMUvtRZF49MsSOZPpYCnLf7KQ+9nVJzM5ef+LLaQIhAIRErKjhgAc9moG7DfIclS7zYkctMp1R96Y6xc2l0h7B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608043},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"881356b23df331da66f0fd59990bb701e80b6d71","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Agent — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.2.0_1773497070883_0.06440680039581204","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@antaif3ng/til-work","version":"0.3.0","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.3.0","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"070facdb90dbf8d00f534be701e6e2bc437a6f98","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.3.0.tgz","fileCount":171,"integrity":"sha512-aex+dwxuEGu2usBZA4foSOtAVl3yDIudnj1WL22GzM+czatFL4rnNIoPis32b4e1jyQyZCjBzIW6Xx1oR2gKFg==","signatures":[{"sig":"MEUCICbS2yPyF6z5HagvmSsJ0U1XCnuJvRB01pKu2H85RJAfAiEAlKpE160Ft11swUCbHDEID/rrV82D0YXJIifcS2HYDsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620410},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"881356b23df331da66f0fd59990bb701e80b6d71","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.3.0_1773508768430_0.3549423928599491","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@antaif3ng/til-work","version":"0.4.0","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.4.0","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"3efe64c34c07c181b3ee737b59549545a262caf6","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.4.0.tgz","fileCount":174,"integrity":"sha512-G3d990SnemVbeTJ/zsC4fjKCMfLLPo0xr2PbxaOII1wZ4SZqoTttKej6uFamcRm9NHLuliOWdUaovAEFI4EEdg==","signatures":[{"sig":"MEQCIDBr5YjwFHhag9nRl3y6eBrUHoBLiBUPOBBj0JQyrmLzAiBkRXm6fWcc/dt3+rH1tTG/Nk4rz+TyO2Mrvh9wE0u2fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692685},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"a59cd37e421b13a8b624292ba52d191e53debdee","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.4.0_1773573767781_0.06587156802638905","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@antaif3ng/til-work","version":"0.5.0","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.5.0","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"f732ca18825b435f6c23a4c1f3c4a38be1c8e3ad","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.5.0.tgz","fileCount":174,"integrity":"sha512-/EoZupgEzl3BK9HRabFLrUpbuAI63ATHEBKSnvPL1TClsWQqx9S+8mHsoywC7ST0qqWkkIXGezEzkVbGILbaJw==","signatures":[{"sig":"MEUCIHCHnW2Mm8w1/QzMZ+bSX5yUn2lHuJqICreN0j6VWDBHAiEAt75HQ0mkVi9/kjzwy/Zi+PA7jJNdQPk4NtmEBkG2+F8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":696574},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"a59cd37e421b13a8b624292ba52d191e53debdee","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.5.0_1773580937792_0.2715000533759695","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@antaif3ng/til-work","version":"0.5.1","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.5.1","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"dbb8edcc3a322a87b04a21a1f7c37b6279de7782","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.5.1.tgz","fileCount":174,"integrity":"sha512-BQYDJv2f3BkHSTRm6MoNuyUcIkCHQY56WfoYiivxHWW/ngiQJTninQQyZVw09YYb7PMk2IYNm94VwpSyGzb9mQ==","signatures":[{"sig":"MEUCICkNZ4DvEkFSpJr/JbQbaBEYSp92CUgepBJbdcHzWm1DAiEAmZ870CzZKZBCvQaUS15gRaGfWRKUvyiScCKQdtB9SS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698511},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"a59cd37e421b13a8b624292ba52d191e53debdee","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.5.1_1773583673783_0.7069548696512538","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@antaif3ng/til-work","version":"0.5.2","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.5.2","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"b2950829fbe16b0e63683d4e5fb37d47a4340f73","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.5.2.tgz","fileCount":174,"integrity":"sha512-O1rEes9mv/j+hU3Yiqc734b/KrrTbATWKOuvXL3yNpB9etbo+Yovf3Iv80anBnWi70mdoY5U7GkDxG0yRkUCWg==","signatures":[{"sig":"MEUCIB7ferGR4eh7pmARorTmkN8BBpJgS/wVRWdX6k9j1B27AiEAiNgC2t2V50sNZh0IwjKo6gegqN+7Ji5aoiYgalQdpMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698505},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"a59cd37e421b13a8b624292ba52d191e53debdee","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.5.2_1773583795378_0.3239661517078063","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@antaif3ng/til-work","version":"0.5.3","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.5.3","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"2bdb986f14e3df76219b240b0e04dab4809576a4","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.5.3.tgz","fileCount":174,"integrity":"sha512-inYsYs7VSg4+zBKmQHQ7P5kDsFmv9+foVZBQVS/VseLzOmtqBfJ5QEgGrLcVSohgyw5zhcysFBaUoyGTqsyLKA==","signatures":[{"sig":"MEMCICiviktbMBIo7fpgj/Nczwi57pRleKRmYpRl7uO9LxZhAh8N+ulBBWglc3rIMzuWa6J6JjcPphpcXXQyPU6XsKn5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698639},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"50053dbf0523f05766c7c4b69e0b8bfea0c7286f","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.5.3_1773625819141_0.5505483272348715","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@antaif3ng/til-work","version":"0.5.4","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"author":{"name":"antaif3ng"},"license":"MIT","_id":"@antaif3ng/til-work@0.5.4","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"bin":{"til":"dist/cli.js"},"dist":{"shasum":"e6f52105de0d3049c4a6e4e38ee106383c42657f","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.5.4.tgz","fileCount":174,"integrity":"sha512-PF12/CXNBJBlt9G7cZ8M0od99vu03F3PqfXUhnYcr+kAVormqNrr/mOdp40RTeuqJdHQaXRT8tYKKvXuIwIm6w==","signatures":[{"sig":"MEUCIQDGNTI9RYuErweVg28aaX9FMjkR0OTSLTQVPrl2d4wGWQIgVEkzhlFKKvrpXsXNyiw2cZn6ODE3DozcJi+HEGS5kLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701084},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.6.0"},"gitHead":"f2a3fdfe7c6440a8db6afcd251ba02f7c0db0d79","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json && chmod +x dist/cli.js","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.8.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"chalk":"^5.5.0","marked":"^17.0.4","agent-browser":"^0.20.6","cli-highlight":"^2.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.7.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/til-work_0.5.4_1773637760364_0.04717418616514002","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@antaif3ng/til-work","version":"0.6.0","description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","type":"module","bin":{"til":"dist/cli.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json && chmod +x dist/cli.js","dev":"tsc -p tsconfig.json --watch","start":"node dist/cli.js","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run build"},"keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"repository":{"type":"git","url":""},"author":{"name":"antaif3ng"},"publishConfig":{"access":"public"},"dependencies":{"agent-browser":"^0.20.6","chalk":"^5.5.0","cli-highlight":"^2.1.11","marked":"^17.0.4"},"optionalDependencies":{"opencode-ai":"^1.2.27"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.3","vitest":"^4.1.0"},"engines":{"node":">=20.6.0"},"license":"MIT","gitHead":"f2a3fdfe7c6440a8db6afcd251ba02f7c0db0d79","_id":"@antaif3ng/til-work@0.6.0","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-v9QephgcJcJ2P3efbj9xl2vwG6YAU5wbqXsYFgcWKIInzvGj14qo4W9zl1QINEePnwdoe1Pay45vG82ew5iC+Q==","shasum":"46f029c5149103600955c56f76e52abb0e9924e1","tarball":"https://registry.npmjs.org/@antaif3ng/til-work/-/til-work-0.6.0.tgz","fileCount":174,"unpackedSize":709507,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQClri5vom/u3/dB5Me2YuV8ahhwKAThWAT302oxI/rkTAIhAPYdS4IK8yTpeafml5QrWazqj9LK6ExxvyOnULFZTDzT"}]},"_npmUser":{"name":"antaif3ng","email":"evilat@outlook.com"},"directories":{},"maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/til-work_0.6.0_1773672273599_0.5699534752672382"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T10:01:17.386Z","modified":"2026-03-16T14:44:33.859Z","0.1.0":"2026-03-14T10:01:17.713Z","0.1.1":"2026-03-14T10:13:54.885Z","0.1.2":"2026-03-14T10:26:36.105Z","0.2.0":"2026-03-14T14:04:31.049Z","0.3.0":"2026-03-14T17:19:28.621Z","0.4.0":"2026-03-15T11:22:47.977Z","0.5.0":"2026-03-15T13:22:17.965Z","0.5.1":"2026-03-15T14:07:54.021Z","0.5.2":"2026-03-15T14:09:55.560Z","0.5.3":"2026-03-16T01:50:19.323Z","0.5.4":"2026-03-16T05:09:20.517Z","0.6.0":"2026-03-16T14:44:33.750Z"},"author":{"name":"antaif3ng"},"license":"MIT","keywords":["cli","agent","ai","assistant","llm","openai","anthropic","google","terminal","mcp"],"repository":{"type":"git","url":""},"description":"TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)","maintainers":[{"name":"antaif3ng","email":"evilat@outlook.com"}],"readme":"# TIL work agent 工具\n\n> 运行在终端里的个人 AI 助手，类似 Codex CLI / Claude Code。\n\nTIL work 是一个基于大语言模型的命令行 Agent 工具。它可以直接操作你的文件系统、执行命令、编辑代码、搜索网页、截图、控制浏览器，并通过对话式交互帮你完成各种电脑任务。\n\n## 核心能力\n\n| 能力 | 说明 |\n|------|------|\n| **命令执行** | 在你的系统上直接运行 bash 命令 |\n| **文件管理** | 读取、创建、编辑、复制、移动、删除文件（支持读取图片） |\n| **代码编辑** | 精确替换代码片段（类似 sed，但更智能） |\n| **截图** | 截取全屏或窗口截图，返回给 LLM 进行视觉分析 |\n| **Computer Use** | 鼠标点击、键盘输入、滚动拖拽 + 自动截图反馈 |\n| **浏览器控制** | 页面导航、快照（ref 定位）、点击、输入、截图、JS 执行（agent-browser） |\n| **网页搜索** | 实时搜索互联网获取最新信息 |\n| **MCP 扩展** | 通过 MCP 协议接入外部工具服务（stdio / HTTP） |\n| **记忆系统** | 跨对话记住上下文（MEMORY.md + AGENTS.md） |\n| **技能系统** | 内置技能 + 自定义 SKILL.md + 工作区包自动发现 |\n| **会话持久化** | 退出后可恢复上次对话（`--resume` / `--continue`） |\n| **Context 压缩** | 长对话自动摘要压缩，防止 token 溢出 |\n| **安全拦截** | 自动检测并拦截 `rm -rf`、`sudo` 等危险命令 |\n| **多模型** | 支持 Anthropic、OpenAI、Google Gemini 及任意 OpenAI 兼容接口 |\n\n## 交互体验\n\n- **多行输入**：行尾输入 `\\` 再回车、`Ctrl+J` 或 `Alt+Enter` 均可插入换行，`Esc` 取消多行输入\n- **输入框 UI**：带上下边框的输入区域，底部常驻显示当前工作目录和随机操作提示\n- **Placeholder**：空输入时显示换行快捷键提示，输入后自动消失\n- **文件引用**：输入 `@` 后实时搜索文件，方向键选择，文件内容自动注入 LLM 上下文\n- **命令菜单**：输入 `/` 弹出命令列表，方向键循环选择，`Enter` 直接执行，`Tab` 补全\n\n## 前置要求\n\n- **Node.js** >= 20.6.0（推荐 22+）\n- **npm** >= 9\n- **至少一个 LLM API Key**（Anthropic / OpenAI / Google / MiniMax / 智谱等 OpenAI 兼容接口）\n\n```bash\nnode -v  # 需要 v20.6.0 或更高\n```\n\n## 安装\n\n### 方式一：npm 全局安装（推荐）\n\n```bash\nnpm install -g @antaif3ng/til-work\n```\n\n安装后使用 `til` 命令启动。\n\n### 方式二：从源码安装\n\n```bash\ngit clone https://github.com/antaif3ng/til-work.git\ncd til-work\nnpm install\nnpm run build\nnpm link  # 注册 til 命令到全局\n```\n\n### 更新版本\n\n```bash\nnpm update -g @antaif3ng/til-work\n```\n\n## 快速开始\n\n### 1. 首次配置\n\n```bash\ntil --setup\n```\n\n按提示输入模型 ID、API Key 和 Base URL。配置保存在 `~/.til/config.json`。\n\n你也可以通过环境变量配置：\n\n```bash\n# Anthropic\nexport ANTHROPIC_API_KEY=sk-ant-xxxxx\n\n# OpenAI\nexport OPENAI_API_KEY=sk-xxxxx\n\n# Google Gemini\nexport GOOGLE_API_KEY=AIza-xxxxx\n\n# OpenAI 兼容接口（如 MiniMax、智谱、DeepSeek、Ollama 等）\nexport OPENAI_API_KEY=your-key\nexport OPENAI_BASE_URL=https://api.minimaxi.com/v1\n```\n\n### 2. 启动交互模式\n\n```bash\ntil\n```\n\n输入 `/` 查看所有可用命令（支持方向键循环选择），输入 `@` 引用文件内容（自动注入到上下文）。\n\n支持多行输入：行尾输入 `\\` 再回车，或按 `Ctrl+J` / `Alt+Enter` 换行。\n\n### 3. 单次执行模式\n\n```bash\ntil \"列出当前目录的所有 TypeScript 文件\"\ntil -p \"解释这个错误日志\" < error.log\ncat README.md | til \"总结一下这个文件\"\n```\n\n## 命令参考\n\n### CLI 参数\n\n```\ntil [options] [prompt]\n\n选项:\n  -p, --prompt <text>     单次执行模式\n  -m, --model <model>     指定模型 ID\n  --base-url <url>        覆盖 API 地址\n  --tools <list>          指定启用的工具（逗号分隔）\n  --skill <path>          加载技能文件或目录（可重复）\n  --no-skills             禁用自动技能加载\n  --continue              恢复当前目录下的最近一次会话\n  --resume [sessionId]    恢复指定 ID 的会话\n  --setup                 运行配置向导\n  -h, --help              显示帮助\n  -v, --version           显示版本\n```\n\n### 交互模式命令\n\n在交互模式中输入 `/` 即可看到所有命令（支持方向键选择和自动补全）：\n\n| 命令 | 说明 |\n|------|------|\n| `/help` | 显示帮助信息 |\n| `/model` | 查看/切换/管理模型（支持方向键选择） |\n| `/model add <id> [baseUrl] [apiKey]` | 添加模型配置 |\n| `/model default <id>` | 设置默认模型 |\n| `/skills` | 查看/管理技能 (reload/install/enable/disable/rm) |\n| `/skill:<name>` | 查看某个技能的详细内容 |\n| `/mcp` | 查看/管理 MCP 服务 (add/rm/reload) |\n| `/memory` | 查看当前记忆内容 |\n| `/usage` | 查看本次会话的 Token 用量 |\n| `/sessions` | 查看会话历史列表 |\n| `/config` | 查看当前配置 |\n| `/config check` | 测试当前 API 连接 |\n| `/opencode` | 启动 OpenCode 终端 AI 助手（自动安装，退出后显示会话恢复命令） |\n| `/clear` | 清空对话历史 |\n| `/exit` | 退出 |\n\n## 内置工具\n\n| 工具 | 类型 | 默认启用 | 说明 |\n|------|------|----------|------|\n| `bash` | 基础 | 是 | 执行 bash 命令（ls, grep, git, curl 等） |\n| `read` | 基础 | 是 | 读取文件内容（文本 + 图片 base64） |\n| `write` | 基础 | 是 | 创建或覆盖文件 |\n| `edit` | 基础 | 是 | 精确查找替换 |\n| `file_manager` | 文件 | 是 | 复制、移动、删除、列目录、获取信息 |\n| `system_info` | 系统 | 是 | OS、CPU、内存、网络、环境变量 |\n| `web_search` | 网络 | 是 | 搜索互联网获取实时信息 |\n| `web_fetch` | 网络 | 是 | 抓取网页内容转纯文本 |\n| `screenshot` | 视觉 | 是 | 截取全屏或窗口截图 |\n| `computer` | 桌面自动化 | 是 | 鼠标、键盘、滚动 + 自动截图反馈 |\n| `browser` | 浏览器 | 否 | agent-browser 浏览器自动化（内置，自动发现系统 Chrome） |\n\n### screenshot 工具\n\n截取屏幕或窗口截图，返回 base64 图片供 LLM 视觉分析。\n\n- macOS 使用 `screencapture`（系统自带）\n- Linux 使用 `gnome-screenshot` / `scrot` / `import`（需安装其中一个）\n\n### computer 工具\n\n对标 Anthropic Computer Use API，支持以下操作：\n\n| Action | 说明 |\n|--------|------|\n| `screenshot` | 截屏 |\n| `mouse_move` | 移动鼠标 |\n| `click` | 点击 |\n| `double_click` | 双击 |\n| `drag` | 拖拽 |\n| `type` | 输入文本 |\n| `key` | 按键组合（如 cmd+c, ctrl+shift+t） |\n| `scroll` | 滚动 |\n\n每个操作执行后自动截图，形成\"操作 → 视觉反馈 → 下一步\"循环。\n\n依赖：\n- macOS: `brew install cliclick`\n- Linux: `sudo apt install xdotool`\n\n### browser 工具\n\n基于 [agent-browser](https://github.com/vercel-labs/agent-browser) 的浏览器自动化，已内置为依赖，自动发现系统中已安装的 Chrome。默认以**可见窗口**（headed）模式运行，可设置 `headed=false` 切换为无窗口模式。\n\n**推荐工作流（snapshot-ref 模式）：**\n\n1. `open` — 打开目标 URL\n2. `snapshot` — 获取页面可访问性树 + 元素 ref（`@e1`、`@e2` …）\n3. 使用 ref 交互（`click @e1`、`fill @e2 \"text\"`）\n4. 页面变化后重新 `snapshot`\n\n支持操作：`open`、`snapshot`、`screenshot`、`click`、`fill`、`type`、`eval`、`get_text`、`scroll`、`wait`、`press`、`select`、`hover`、`back`、`forward`、`close`。\n\n如果系统没有 Chrome，可运行 `npx agent-browser install` 下载，或设置 `AGENT_BROWSER_EXECUTABLE_PATH` 指向自定义浏览器。\n\n## 配置\n\n配置文件位于 `~/.til/config.json`：\n\n```json\n{\n  \"model\": \"MiniMax-M2.5\",\n  \"apiKey\": \"sk-xxxxx\",\n  \"baseUrl\": \"https://api.minimaxi.com/v1\",\n  \"models\": {\n    \"MiniMax-M2.5\": {\n      \"provider\": \"openai-compatible\",\n      \"contextWindow\": 128000\n    },\n    \"gpt-4o\": {\n      \"provider\": \"openai\",\n      \"apiKey\": \"sk-openai-xxxxx\"\n    }\n  },\n  \"providers\": {},\n  \"mcpServers\": {},\n  \"compaction\": {\n    \"thresholdRatio\": 0.7,\n    \"keepRecentTokens\": 4000,\n    \"reserveTokens\": 8000\n  }\n}\n```\n\n### 配置字段\n\n| 字段 | 说明 |\n|------|------|\n| `model` | 默认模型 ID |\n| `apiKey` | 全局 API Key（所有模型的默认值） |\n| `baseUrl` | 全局 Base URL（所有模型的默认值） |\n| `models` | 各模型的单独配置（provider、apiKey、baseUrl、contextWindow 等） |\n| `providers` | Provider 级别配置（apiKey、baseUrl、headers） |\n| `mcpServers` | MCP 服务器配置 |\n| `disabledSkills` | 已禁用的技能名称列表 |\n| `defaultTools` | 默认启用的工具列表 |\n\n### 模型管理\n\n```bash\n# 配置向导\ntil --setup\n\n# 交互模式中管理\n/model                     # 查看已配置模型\n/model <id>                # 切换模型\n/model add <id> [url] [key]  # 添加模型\n/model default <id>        # 设置默认\n/model rm <id>             # 删除配置\n/config check              # 测试 API 连接\n```\n\n### 支持的模型\n\nTIL 支持任何 OpenAI 兼容接口。模型 provider 根据 ID 前缀自动检测：\n\n| ID 前缀 | Provider | 示例 |\n|----------|----------|------|\n| `claude*` | anthropic | claude-sonnet-4-20250514 |\n| `gpt*` / `o3*` / `o1*` | openai | gpt-4o, o3-mini |\n| `gemini*` | google | gemini-2.5-pro-preview-06-05 |\n| 其他 | openai-compatible | MiniMax-M2.5, deepseek-chat, glm-5 |\n\n## MCP 扩展\n\nTIL 支持通过 MCP (Model Context Protocol) 接入外部工具服务。\n\n### 配置 MCP 服务器\n\n在 `~/.til/config.json` 中添加：\n\n```json\n{\n  \"mcpServers\": {\n    \"web-search\": {\n      \"type\": \"http\",\n      \"url\": \"https://open.bigmodel.cn/api/mcp/web_search/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your_api_key\"\n      }\n    },\n    \"minimax\": {\n      \"command\": \"uvx\",\n      \"args\": [\"minimax-coding-plan-mcp\"],\n      \"env\": {\n        \"MINIMAX_API_KEY\": \"your_minimax_api_key\"\n      }\n    }\n  }\n}\n```\n\n> **注意**：浏览器自动化已通过内置 `browser` 工具提供（基于 agent-browser），无需再配置 Playwright MCP。MCP 主要用于接入需要 API key 的外部服务。\n\n支持两种传输方式：\n- **stdio**：本地进程通过 stdin/stdout 通信\n- **streamable_http** / **sse**：远程 HTTP 服务\n\n### 交互式 MCP 管理\n\n在交互模式中直接添加、删除和重载 MCP 服务：\n\n```bash\n/mcp                                         # 查看所有 MCP 服务状态\n/mcp add playwright --stdio npx @playwright/mcp --headless    # 添加 stdio 类型\n/mcp add web-search --url https://api.example.com/mcp         # 添加 HTTP 类型\n/mcp add api --url https://api.example.com/mcp -H Authorization:Bearer\\ sk-xxx  # 带 header\n/mcp add api --url https://api.example.com/mcp -H Authorization:Bearer\\ sk-xxx -H X-Project:demo  # 多个 header\n/mcp add project-db --stdio npx @mcp/postgres --project       # 添加到项目级配置\n/mcp rm playwright                           # 删除服务\n/mcp reload                                  # 重载所有服务（热重载）\n/extensions                                  # 查看所有扩展信息\n```\n\n### 项目级 MCP 配置\n\n除全局 `~/.til/config.json` 外，还支持项目级配置 `<项目>/.til/config.json`。项目级配置的同名服务覆盖全局配置。\n\n```json\n// .til/config.json（项目级）\n{\n  \"mcpServers\": {\n    \"project-db\": {\n      \"command\": \"npx\",\n      \"args\": [\"@modelcontextprotocol/server-postgres\", \"postgresql://localhost/mydb\"]\n    }\n  }\n}\n```\n\n## 内置技能\n\nTIL 内置 8 个实用技能，安装即用：\n\n| 技能 | 说明 |\n|------|------|\n| **summarize** | 使用 summarize CLI 摘要网页、PDF、YouTube 等 |\n| **find-skills** | 从开源社区发现和安装新技能 |\n| **self-improvement** | 自动记录错误、学习和修正，持续改进 |\n| **skill-creator** | 创建新技能的指南和最佳实践 |\n| **agent-browser** | agent-browser 浏览器自动化工作流和最佳实践 |\n| **excel-xlsx** | 创建、检查和编辑 Excel 工作簿（公式、日期、类型、格式、兼容性） |\n| **word-docx** | 创建、检查和编辑 Word 文档（样式、编号、修订、表格、兼容性） |\n| **nano-pdf** | 使用自然语言指令编辑 PDF 文件 |\n\n### 技能管理\n\n```bash\n/skills                         # 列出所有已加载技能（显示来源和状态）\n/skill:summarize                # 查看 summarize 技能详情\n/skills reload                  # 重新扫描并加载技能（热重载）\n/skills install steipete/nano-pdf   # 从远程安装技能（npx skills add）\n/skills disable excel-xlsx      # 暂时禁用技能（不删文件）\n/skills enable excel-xlsx       # 重新启用技能\n/skills rm my-old-skill         # 从磁盘删除用户/项目技能（内置技能不可删除）\n```\n\n### 自定义技能\n\n将 `SKILL.md` 放入以下目录即可自动加载（按优先级排列）：\n\n| 路径 | 作用 |\n|------|------|\n| `~/.til/skills/<name>/SKILL.md` | 全局技能 |\n| `.til/skills/<name>/SKILL.md` | 项目级技能 |\n| `<cwd>/<pkg>/skills/<name>/SKILL.md` | 工作区包技能（自动发现） |\n| `--skill <path>` | CLI 指定 |\n\n同名的用户技能会覆盖内置技能。\n\n#### 工作区包自动发现\n\nTIL 会自动扫描当前工作目录下的一级子目录，如果子目录中包含 `skills/` 文件夹，其中的技能会被自动加载。这意味着你可以将 agent 技能包直接放在项目中，无需额外配置：\n\n```\nmy-project/\n├── my-agent/    # agent 技能包\n│   ├── agent.yaml\n│   └── skills/\n│       ├── xx-skillA/\n│       │   └── SKILL.md\n│       ├── bb-skillB/\n│       │   └── SKILL.md\n│       └── ...\n├── another-agent-pack/            # 另一个技能包\n│   └── skills/\n│       └── ...\n└── .til/\n    └── config.json\n```\n\n以上目录结构中 `my-agent/skills/` 和 `another-agent-pack/skills/` 下的技能都会被自动发现和加载，会话重启（`--continue` / `--resume`）后依然生效。\n\n自动发现会跳过 `node_modules`、`.git`、`dist`、`build`、`coverage` 等常见无关目录。\n\n技能文件格式：\n\n```markdown\n---\nname: my-skill\ndescription: \"简要描述技能的功能和触发条件\"\n---\n\n# 技能标题\n\n具体的指令内容...\n```\n\n## 记忆系统\n\nTIL 使用双层记忆系统：\n\n### 对话历史（短期记忆）\n\n当前会话内的完整消息历史，存储在 `~/.til/sessions/` 目录（JSONL 格式）。\n\n### MEMORY.md（长期记忆）\n\n由 AI 自动判断写入，跨会话持久化：\n\n| 文件 | 作用 |\n|------|------|\n| `~/.til/MEMORY.md` | 全局记忆（偏好、通用模式） |\n| `.til/MEMORY.md` | 项目记忆（架构决策、进行中的工作） |\n\nAI 会在以下情况主动记录：用户偏好、项目架构、问题修复模式、重要决策等。\n\n### AGENTS.md（项目上下文）\n\n手动维护的项目指令：\n\n| 文件 | 作用 |\n|------|------|\n| `~/.til/AGENTS.md` | 全局指令 |\n| `<项目>/AGENTS.md` | 项目指令 |\n\n也兼容 `CLAUDE.md` 文件名。\n\n## 会话持久化\n\n每次对话自动保存，退出时显示恢复命令。\n\n```bash\ntil --continue          # 恢复最近的会话\ntil --resume abc12345   # 恢复指定会话\n/sessions               # 交互模式中查看会话列表\n```\n\n## Context 压缩\n\n当长对话接近模型上下文窗口上限时自动触发：\n\n1. 当已用 token 超过阈值（默认 70%）时压缩\n2. 保留最近对话，将历史部分生成摘要\n3. 溢出时自动压缩后重试\n\n实时显示使用率：\n\n```\n  in:12.3k out:1.2k  ctx:35%\n```\n\n- `in` 输入 token · `out` 输出 token · `ctx` 上下文占用率\n\n## 安全拦截\n\n内置危险命令检测：递归删除、提权操作、磁盘格式化、权限修改等。执行前会要求确认。\n\n## 常见问题\n\n### 提示\"未配置模型\"\n\n```bash\ntil --setup   # 运行配置向导\n```\n\n### 提示 No API key found\n\n```bash\nexport OPENAI_API_KEY=your-key   # 环境变量\ntil --setup                      # 或配置向导\n```\n\n### 如何使用国内 LLM（MiniMax / 智谱 / DeepSeek 等）\n\n```bash\ntil --setup\n# 模型: MiniMax-M2.5（或 deepseek-chat, glm-5 等）\n# API Key: 你的 key\n# Base URL: https://api.minimaxi.com/v1（或对应平台的 URL）\n```\n\n### 如何使用本地模型（Ollama）\n\n```bash\nollama serve\ntil --setup\n# Base URL: http://localhost:11434/v1\n# Model ID: llama3.1:8b\n```\n\n### API 连接失败怎么排查\n\n```\n/config check   # 显示当前配置并测试 API 连接\n```\n\n### 如何启用浏览器工具\n\nbrowser 工具基于 agent-browser，已内置为依赖。只需在配置中将 `browser` 加入 `defaultTools`：\n\n```json\n{\n  \"defaultTools\": [\"bash\", \"read\", \"write\", \"edit\", \"system_info\", \"file_manager\", \"web_search\", \"web_fetch\", \"screenshot\", \"computer\", \"browser\"]\n}\n```\n\nagent-browser 会自动发现系统中的 Chrome。如果没有 Chrome，运行 `npx agent-browser install` 下载。\n\n## 开发\n\n```bash\ngit clone https://github.com/antaif3ng/til-work.git\ncd til-work\nnpm install\nnpm run dev     # 监听模式编译\nnpm run build   # 一次性编译\nnpm start       # 运行\nnpm test        # 运行测试\n```\n\n### 项目结构\n\n```\ntil-cli/\n├── src/\n│   ├── main.ts              # CLI 入口 & 配置向导\n│   ├── version.ts           # 版本号管理\n│   ├── core/\n│   │   ├── agent.ts         # 双层循环 Agent 引擎\n│   │   ├── llm.ts           # LLM 提供商抽象（Anthropic/OpenAI/Google）\n│   │   ├── config.ts        # 配置管理 & 模型解析\n│   │   ├── session.ts       # 会话包装（工具 + 系统提示）\n│   │   ├── session-manager.ts  # 会话持久化（JSONL）\n│   │   ├── types.ts         # 核心类型（含 ImageContent）\n│   │   ├── compaction.ts    # Context 压缩 & 溢出检测\n│   │   ├── pricing.ts       # Token 用量格式化\n│   │   ├── tool-permissions.ts  # 危险命令拦截\n│   │   ├── markdown.ts      # 终端 Markdown 渲染\n│   │   ├── memory.ts        # 记忆系统\n│   │   ├── skills.ts        # 技能系统（内置 + 用户 + 项目 + 工作区包）\n│   │   └── system-prompt.ts # 系统提示词组装\n│   ├── modes/\n│   │   ├── interactive.ts   # 交互 REPL 模式\n│   │   └── oneshot.ts       # 单次执行模式\n│   ├── tools/               # 内置工具\n│   │   ├── bash.ts          # Shell 命令执行\n│   │   ├── read.ts          # 文件读取（含图片 base64）\n│   │   ├── write.ts         # 文件写入\n│   │   ├── edit.ts          # 精确替换\n│   │   ├── file-manager.ts  # 文件操作\n│   │   ├── system-info.ts   # 系统信息\n│   │   ├── web-search.ts    # 网页搜索\n│   │   ├── web-fetch.ts     # 网页抓取\n│   │   ├── screenshot.ts    # 截图\n│   │   ├── computer.ts      # Computer Use（鼠标/键盘/截图）\n│   │   └── browser.ts       # 浏览器控制（agent-browser CLI）\n│   ├── extensions/          # 扩展系统\n│   │   ├── types.ts         # 扩展/MCP 类型定义\n│   │   ├── loader.ts        # 扩展加载器\n│   │   ├── runner.ts        # 扩展运行器\n│   │   └── builtin/mcp.ts   # MCP 客户端（stdio + HTTP）\n│   └── utils/               # 工具函数\n├── skills/                  # 内置技能\n│   ├── summarize/\n│   ├── find-skills/\n│   ├── self-improving-agent/\n│   ├── skill-creator/\n│   ├── agent-browser/\n│   ├── excel-xlsx/\n│   ├── word-docx/\n│   └── nano-pdf/\n├── tests/                   # 单元测试\n├── package.json\n├── tsconfig.json\n└── vitest.config.ts\n```\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md"}