Skip to content

justhil/pi-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

228 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

pi Desktop

้ขๅ‘ไธชไบบๅผ€ๅ‘่€…็š„ pi ๆกŒ้ข GUI๏ผšๅœจ Electron ้‡Œ่ท‘ pi SDK๏ผŒๅค็”จ ~/.pi/agent ็š„่ฎค่ฏใ€้…็ฝฎไธŽไผš่ฏ JSONL๏ผŒ็”จๆ—ถ้—ด็บฟใ€ๅทฅๅ…ทๅก็‰‡ใ€ๆ”นๅŠจๅฎกๆŸฅๅ’Œๆ‰ฉๅฑ•ๅ…ผๅฎนๅฑ‚ๆ›ฟไปฃ็ปˆ็ซฏ้‡Œ้‚ฃๅฅ— TUI ไบคไบ’ใ€‚

ไธ€ๅฅ่ฏ๏ผšpi ็š„ๆ–ฐๅฃณโ€”โ€”ๅ†…ๆ ธไปๆ˜ฏ pi๏ผŒ็•Œ้ขๆขๆˆๆกŒ้ข๏ผ›ๆ‰ฉๅฑ•ๅœจ็ปˆ็ซฏ้‡Œ็š„ๅผน็ช—ๅ’Œๅก็‰‡๏ผŒ็”ฑๅ…ผๅฎนๅฑ‚็ฟป่ฏ‘ๆˆ็ช—ๅฃ UI๏ผŒไธๆ”นไฝ ๅทฒๅฎ‰่ฃ…็š„ๆ‰ฉๅฑ•ๅŒ…ใ€‚


ๆ ธๅฟƒๆ€ๆƒณ

1. ไผš่ฏไปฅ pi ไธบๅ‡†

  • ๅฏน่ฏๅ†…ๅฎนใ€ๅทฅๅ…ท่ฐƒ็”จ่ฎฐๅฝ•ใ€ๅˆ†ๆ”ฏไธŽๅŽ‹็ผฉไฟกๆฏ๏ผŒ้ƒฝไปฅ pi ๅ†™ๅœจ ~/.pi/agent/sessions/ ้‡Œ็š„ JSONL ไผš่ฏๆ–‡ไปถไธบๅ‡†ใ€‚
  • ๆกŒ้ข็ซฏไธๅฆๅปบไธ€ๅฅ—ใ€Œ่Šๅคฉ่ฎฐๅฝ•ๆ•ฐๆฎๅบ“ใ€ๆฅๆ›ฟไปฃ pi๏ผ›ๆœฌๅœฐๅชๅญ˜็ช—ๅฃๅธƒๅฑ€ใ€ๆœ€่ฟ‘้กน็›ฎใ€ๆ‰ฉๅฑ•ๅผ€ๅ…ณใ€้€‚้…ๅ™จ่ฆ†็›–็ญ‰ๅบ”็”จๅๅฅฝใ€‚
  • ๅฅฝๅค„๏ผš็ปˆ็ซฏ pi ไธŽๆกŒ้ข pi ๅฏไปฅๆŽฅ็€ๅŒไธ€ๆกไผš่ฏ็”จ๏ผ›ๅธ่ฝฝๆกŒ้ขไนŸไธไธขๅฏน่ฏๅކๅฒใ€‚

2. ้…็ฝฎไธŽ่ฎค่ฏไธŽ็ปˆ็ซฏๅ…ฑ็”จ

  • ๆจกๅž‹่ดฆๅทใ€settings.jsonใ€ๆ‰ฉๅฑ•ๅŒ…ๅˆ—่กจ๏ผˆpackages๏ผ‰ใ€้กน็›ฎไธ‹ .pi/ ่ต„ๆบ๏ผŒไธŽไฝ ๅœจ็ปˆ็ซฏ็”จ็š„ pi ๅŒไธ€ๅฅ—่ทฏๅพ„ไธŽ่ง„ๅˆ™ใ€‚
  • ๆกŒ้ขๅœจ ่ฎพ็ฝฎ โ†’ Pi ้‡Œๆ”น็š„้กนไผšๅ†™ๅ›žๅ…จๅฑ€ settings.json๏ผˆไธŽ็ปˆ็ซฏไธ€่‡ด๏ผ‰๏ผ›Skills ๅผ€ๅ…ณ็ญ‰ไนŸ่ฝๅœจๅ…จๅฑ€้…็ฝฎ้‡Œ๏ผŒ่€Œไธๆ˜ฏๅชๅœจๆกŒ้ข็งๆœ‰ๆ–‡ไปถ้‡Œใ€Œๅ‡ๅฏ็”จใ€ใ€‚

3. ๆ‰ฉๅฑ•๏ผšๅ…ผๅฎนๅฑ‚ + ้€‚้…ๅ™จ๏ผŒ่€Œไธๆ˜ฏๆ”นๆ’ไปถๆบ็ 

  • ๆ‰ฉๅฑ•ๅœจ็ปˆ็ซฏ้‡Œๅธธ็”จ TUI๏ผˆ้€‰ๆ‹ฉใ€็กฎ่ฎคใ€้—ฎๅทใ€ๅทฅๅ…ท็ป“ๆžœๅก็‰‡ใ€/ๅ‘ฝไปค ่ฟ›้…็ฝฎ๏ผ‰ใ€‚ๆกŒ้ขๆฒกๆœ‰็ปˆ็ซฏ็”ปๅธƒใ€‚
  • ๅ…ผๅฎนๅฑ‚๏ผšๅœจๅบ”็”จๅ†…้ƒจ็ปŸไธ€ๆŽฅๆ”ถๆ‰ฉๅฑ•็š„ UI ่ฏทๆฑ‚๏ผŒ่ฝฌๆˆ Electron ๅฏน่ฏๆก†ใ€ๆ—ถ้—ด็บฟๅก็‰‡ใ€่ฎพ็ฝฎ่กจๅ•ใ€‚
  • ้€‚้…ๅ™จ๏ผšๆฏไธชๆ‰ฉๅฑ•ไธ€ไปฝใ€ŒๅœจๆกŒ้ขไธŠๆ€Žไนˆๆ˜พ็คบใ€ๆ€Žไนˆ้…ใ€ๅ“ชไบ›ๅ‘ฝไปค็‰นๆฎŠๅค„็†ใ€็š„่ฏดๆ˜Ž๏ผˆๅ†…็ฝฎๅœจๅบ”็”จ้‡Œ๏ผŒ้ซ˜็บง็”จๆˆทๅฏ็”จ JSON ่ฆ†็›–๏ผ‰ใ€‚
  • ๅŽŸๅˆ™๏ผšไธๅŠจๆ‰ฉๅฑ• npm ๅŒ…ใ€ไธ fork pi๏ผ›ๅทฎๅผ‚ๅ†™ๅœจ้€‚้…ๅ™จ่ฏดๆ˜Žๅ’Œๆ–‡ๆกฃ้‡Œใ€‚
  • ็ป™ AI ๅ†™้€‚้…ๅ™จ๏ผš่งไป“ๅบ“ doc/๏ผˆadapter-authoring-guide.md ๅฏๆ•ดไปฝๅ‘็ป™ๆจกๅž‹ๅฎšๅˆถ adapter.json๏ผ‰ใ€‚

็Žฏๅขƒ่ฆๆฑ‚

้กน ่ฏดๆ˜Ž
Node.js 18+๏ผˆๆŽจ่ 20+๏ผ‰
npm ไธŽไป“ๅบ“ package-lock.json ไธ€่‡ด
Electron 35+
็ณป็ปŸ Windows 10+ ไธบไธป้ชŒ่ฏ็Žฏๅขƒ๏ผ›macOS / Linux ๅฏๆž„ๅปบ

pi ไพง้œ€ๅทฒ้…็ฝฎ่ฎค่ฏ๏ผˆ~/.pi/agent/auth.json ๆˆ–ๅ„ๅŽ‚ๅ•†็Žฏๅขƒๅ˜้‡๏ผ‰ใ€‚ๆ‰ฉๅฑ•ไธŽ็ปˆ็ซฏ pi ๅ…ฑ็”จ ~/.pi/agent/settings.json๏ผ›่‹ฅ็ปˆ็ซฏ่ƒฝ็”จ็š„ๆ‰ฉๅฑ•ๅœจๆกŒ้ขๅทฅๅ…ทๅˆ—่กจ้‡Œๆฒกๆœ‰๏ผŒ่ง ่ฎพ็ฝฎ โ†’ ๆ‰ฉๅฑ• ๅŒๆญฅ packages ๅนถ้‡ๅฏๅŽๅฐไผš่ฏใ€‚


ๅฟซ้€Ÿๅผ€ๅง‹

git clone https://github.com/justhil/pi-app.git
cd pi-app
npm install
npm run dev

้ฆ–ๆฌกไฝฟ็”จ

  1. ็ฃ็›˜้กน็›ฎ๏ผšไพงๆ ใ€Œๆ‰“ๅผ€้กน็›ฎใ€้€‰ๅทฅไฝœ็›ฎๅฝ•ใ€‚
  2. ไธดๆ—ถๅฏน่ฏ๏ผšใ€Œๅฏน่ฏๅˆ†ๅŒบใ€ๆ–ฐๅปบๆฒ™็ฎฑ๏ผˆไธŽ็œŸๅฎžไป“ๅบ“้š”็ฆป๏ผŒๅทฅๅ…ท cwd ๅœจๅบ”็”จ็”จๆˆทๆ•ฐๆฎ็›ฎๅฝ•ไธ‹๏ผ‰ใ€‚
  3. ไผš่ฏ๏ผšๅˆ—่กจไธญ้€‰ๅކๅฒไผš่ฏๆˆ– + ๆ–ฐๅปบ๏ผ›ๅณ้”ฎๅฏ้‡ๅ‘ฝๅ/ๅˆ ้™ค๏ผˆ็ฃ็›˜้กน็›ฎไผšๆ”น pi ไผš่ฏๆ–‡ไปถ๏ผ‰ใ€‚
  4. ่พ“ๅ…ฅๅŒบ๏ผšๅ›ž่ฝฆๅ‘้€๏ผ›/ ๆ–œๆ ๅ‘ฝไปค๏ผ›โ†‘โ†“ ่ฐƒๅ›žๆœฌไผš่ฏๅ‘้€ๅކๅฒ๏ผˆ่งไธŠ่กจ๏ผ‰๏ผ›่ฟ่กŒไธญๅฏ็ปง็ปญๅ‘๏ผˆๆŽ’้˜Ÿ่ทŸ่ฟ›๏ผ‰๏ผ›ๆ‹–ๅ…ฅๆ–‡ไปถๆˆ– + ้€‰้™„ไปถ๏ผ›ๅฏ็ฒ˜่ดดๅ›พ็‰‡ใ€‚ๅฏน่ฏๅŒบๆ”ฏๆŒ KaTeX ๅ…ฌๅผ๏ผˆ$$โ€ฆ$$ใ€\( โ€ฆ \) ็ญ‰๏ผ‰ใ€‚
  5. ๅณๆ ๏ผšๆ”นๅŠจๅฎกๆŸฅใ€่ฟ่กŒ็Šถๆ€ใ€ไธŠไธ‹ๆ–‡ใ€ไผš่ฏๆ ‘๏ผˆ็ญ‰ๅŒ pi /tree ๅผ่ทณ่ฝฌ๏ผ‰ใ€‚็ฉบ็™ฝ่พ“ๅ…ฅๆ—ถ ๅŒๅ‡ป Esc ๅฏๆ‰“ๅผ€ไผš่ฏๆ ‘ๆตฎๅฑ‚ใ€‚

ๅธธ่ง้—ฎ้ข˜

็Žฐ่ฑก ๅปบ่ฎฎ
็™ฝๅฑ / ็•Œ้ขไธๆ›ดๆ–ฐ ๅˆ  node_modules/.vite ๅŽ npm run dev
ๆ‰ฉๅฑ•ๅœจ่ฎพ็ฝฎ้‡Œ่ƒฝ็œ‹ๅˆฐ๏ผŒๅฏน่ฏ้‡Œๆฒกๆœ‰ๅทฅๅ…ท ่ฎพ็ฝฎ โ†’ ๆ‰ฉๅฑ•๏ผš็กฎ่ฎคๅทฒๅ†™ๅ…ฅ packages ๅนถ้‡ๅฏไผš่ฏ๏ผ›็œ‹ใ€Œๅฝ“ๅ‰ๅทฒๅŠ ่ฝฝๅทฅๅ…ทใ€ๅˆ—่กจ
ๅˆ‡ๆขไผš่ฏๆ…ข ๅ…ˆๅŠ ่ฝฝๆœ€่ฟ‘ไธ€ๆฎตๅކๅฒ๏ผ›ๅ‘็ฌฌไธ€ๆกๆถˆๆฏๅŽๅ†ๅฎŒๆ•ด็ป‘ๅฎšไผš่ฏ๏ผˆ่ฎพ่ฎกๅฆ‚ๆญค๏ผ‰

ๆ‰“ๅŒ… Windows๏ผšnpm run icon:export && npm run package:winใ€‚


้”ฎ็›˜ๅฟซๆท้”ฎไธŽๅŸบๆœฌๆ“ไฝœ

ๆ“ไฝœ ๅฟซๆท้”ฎ / ๆ–นๅผ ่ฏดๆ˜Ž
ๅ‘้€ๆถˆๆฏ Enter ๅ‘้€ๅฝ“ๅ‰่พ“ๅ…ฅๆก†ๅ†…ๅฎน๏ผ›Shift+Enter ๆข่กŒ
ๅ‘้€ๅކๅฒ โ†‘ / โ†“ ๅœจ่พ“ๅ…ฅๆก†็ฉบใ€ๅ…‰ๆ ‡ๅœจ้กถๆ ผๆˆ–ๅ…จๆ–‡้€‰ไธญๆ—ถ๏ผšโ†‘ ็ฟป็œ‹ๆœฌๅทฅไฝœๅŒบ+ไผš่ฏไธ‹ๆœ€่ฟ‘ๅ‘้€่ฟ‡็š„ๅ†…ๅฎน๏ผ›โ†“ ๅพ€ๆ›ดๆ–ฐ็ฟปใ€‚็ฌฌไธ€ๆฌก โ†‘ ๅ‰ไผšๆŠŠๅฝ“ๅ‰่‰็จฟๆš‚ๅญ˜๏ผˆๅคฑ็„ฆๆˆ–่ฟ›ๅ…ฅๅކๅฒๆ—ถๅ†™ๅ…ฅ๏ผŒไธๆŒ‰ๆฏไธชๅญ—ๅญ˜๏ผ‰๏ผŒโ†“ ๅ›žๅˆฐๆœ€ๆ–ฐๅฏๆขๅค่ฟ™ไปฝ่‰็จฟใ€‚ๆ–œๆ ่กฅๅ…จๆ‰“ๅผ€ๆ—ถ โ†‘โ†“ ไป็”จไบŽ้€‰ๅ‘ฝไปค
ๆ‹‰ๅ›žๆŽ’้˜Ÿ Alt+โ†‘ Agent ่ฟ่กŒไธญๅทฒๆŽ’้˜Ÿๆถˆๆฏๆ‹‰ๅ›ž่พ“ๅ…ฅๆก†ๅˆๅนถ็ผ–่พ‘
ๅœๆญข็”Ÿๆˆ Esc๏ผˆๅ•ๆฌก๏ผ‰ Agent ่ฟ่กŒไธญๆŒ‰ไธ€ไธ‹ Esc ไธญๆญขๅฝ“ๅ‰่ฝฎๆฌก
ไผš่ฏๆ ‘ / ๅ›ž้€€ Esc Esc๏ผˆๅŒๅ‡ป๏ผ‰ ่พ“ๅ…ฅๆก†ไธบ็ฉบๆ—ถๅŒๅ‡ป Esc ๆ‰“ๅผ€ไผš่ฏๆ ‘ๆตฎๅฑ‚๏ผŒๅฏ่ทณ่ฝฌๅˆฐไปปๆ„ๅކๅฒ่Š‚็‚น
ๆ–œๆ ๅ‘ฝไปค / ่พ“ๅ…ฅ / ่งฆๅ‘ๅ‘ฝไปค่กฅๅ…จ๏ผˆๆ‰ฉๅฑ•ๅ‘ฝไปคใ€/newใ€/tree ็ญ‰๏ผ‰
้™„ๅŠ ๆ–‡ไปถ ๆ‹–ๆ‹ฝๅˆฐ่พ“ๅ…ฅๆก† ไปŽๆ–‡ไปถ็ฎก็†ๅ™จๆ‹–ๅ…ฅๆ–‡ไปถ่‡ชๅŠจ้™„ๅŠ ไธบๅผ•็”จ๏ผ›ไนŸๅฏ็‚น + ๆŒ‰้’ฎ้€‰ๆ‹ฉ
็ฒ˜่ดดๅ›พ็‰‡ Ctrl+V ๅ‰ช่ดดๆฟๆœ‰ๅ›พ็‰‡ๆ—ถ็ฒ˜่ดดๅˆฐ่พ“ๅ…ฅๆก†๏ผŒ่‡ชๅŠจ่ฝฌไธบ multimodal ่พ“ๅ…ฅ
ๆŽ’้˜Ÿ่ทŸ่ฟ› ่ฟ่กŒไธญ็ปง็ปญ่พ“ๅ…ฅ Agent ่ฟ่กŒๆ—ถๅ‘้€็š„ๆถˆๆฏๆŽ’้˜Ÿ๏ผŒๅฝ“ๅ‰่ฝฎๆฌก็ป“ๆŸๅŽ่‡ชๅŠจ่ทŸ่ฟ›
ๆถˆๆฏๅ›ž้€€ ๆ‚ฌๅœๆถˆๆฏ โ†’ Undo ๅ›พๆ ‡ ๆ—ถ้—ด็บฟๆถˆๆฏๆ‚ฌๅœๅ‡บ็Žฐๅ›ž้€€ๆŒ‰้’ฎ๏ผŒ็‚นๅ‡ป่ทณ่ฝฌๅˆฐ่ฏฅๆถˆๆฏ่Š‚็‚น
ๅคๅˆถๆถˆๆฏ ๆ‚ฌๅœๆถˆๆฏ โ†’ Copy ๅ›พๆ ‡ ๅคๅˆถๆถˆๆฏ็บฏๆ–‡ๆœฌๅˆฐๅ‰ช่ดดๆฟ
ๆจกๅž‹ๅˆ‡ๆข ่พ“ๅ…ฅๅŒบๅบ•้ƒจ pill ็‚นๅ‡ปๆจกๅž‹ๅๅˆ‡ๆขๅฝ“ๅ‰ไผš่ฏๆจกๅž‹
ๆ€่€ƒ็ญ‰็บง ่พ“ๅ…ฅๅŒบๅบ•้ƒจ pill ็‚นๅ‡ปๅˆ‡ๆข thinking level
ไพงๆ ๅผ€ๅ…ณ ้กถๆ ๅทฆไพงๅ›พๆ ‡ ๆŠ˜ๅ  / ๅฑ•ๅผ€ๅทฆไพง้กน็›ฎๆ 
ๅณๆ ๅผ€ๅ…ณ ้กถๆ ๅณไพงๅ›พๆ ‡ ๆŠ˜ๅ  / ๅฑ•ๅผ€ๅณไพง้ขๆฟๆ 
ไพงๆ ๆ‹–ๆ‹ฝ่ฐƒๅฎฝ ๆ‹–ๅŠจๅˆ—ๅˆ†็•Œ็บฟ ๅทฆๆ ๅณ็ผ˜ใ€ๅณๆ ๅทฆ็ผ˜ๅฏๆ‹–ๅŠจ่ฐƒๆ•ดๅฎฝๅบฆ
ไผš่ฏๅณ้”ฎ่œๅ• ๅณ้”ฎไผš่ฏๆก็›ฎ ้‡ๅ‘ฝๅ / ๅˆ ้™คไผš่ฏ
ๆ‰ฉๅฑ•ๅผน็ช— ่‡ชๅŠจๅผนๅ‡บ ๆ‰ฉๅฑ•่ฏทๆฑ‚้€‰ๆ‹ฉ/็กฎ่ฎค/้—ฎๅทๆ—ถ่‡ชๅŠจๅผน็ช—๏ผ›ๅฏ็‚นใ€Œ็จๅŽไฝœ็ญ”ใ€ๆŒ‚่ตท๏ผŒๆ—ถ้—ด็บฟๅฏใ€Œ็ปง็ปญไฝœ็ญ”ใ€

ๅฏน่ฏไธญ็š„้”™่ฏฏๅฑ•็คบ๏ผšๆจกๅž‹/API ๅคฑ่ดฅใ€ไธŠๆธธ empty_streamใ€่‡ชๅŠจ้‡่ฏ•่€—ๅฐฝ๏ผˆๅฆ‚ Aborted after 1 retry attempt๏ผ‰ใ€็”จๆˆทไธญๆญข๏ผˆRequest was aborted๏ผ‰็ญ‰๏ผŒไผšๅœจๆ—ถ้—ด็บฟๆ’ๅ…ฅ็บข่‰ฒ/็ฅ็€่‰ฒ ่ฟ่กŒๅ‡บ้”™ ๅก็‰‡๏ผŒๅนถๆ˜พ็คบๆ•ด็†ๅŽ็š„ๅฎŒๆ•ดๆŠฅ้”™๏ผˆๅซ JSON ๅ†…็š„ server_error ๆ–‡ๆกˆ๏ผ‰ใ€‚ๅณๆ  Run ็Šถๆ€ไผšๆ ‡ไธบๅคฑ่ดฅ๏ผ›ๅ‘้€ๅคฑ่ดฅไปไผš toastใ€Œๅ‘้€ๅคฑ่ดฅใ€ใ€‚


็•Œ้ข็ป“ๆž„๏ผˆไฝ ๅœจ็”จไป€ไนˆ๏ผ‰

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ้กถๆ ๏ผˆๆฒ‰ๆตธๆจกๅผ๏ผ‰๏ผšไพงๆ ๅผ€ๅ…ณ ยท ้กน็›ฎ/ไผš่ฏๆ ‡้ข˜ ยท ่ฟ่กŒ็Šถๆ€ ยท ็ช—ๅฃๆŒ‰้’ฎ     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๅทฆๆ        โ”‚ ไธญ้—ด๏ผšๆ—ถ้—ด็บฟ๏ผˆไธŠ๏ผ‰+ ๆตฎๅŠจ่พ“ๅ…ฅๅŒบ๏ผˆไธ‹๏ผ‰    โ”‚ ๅณๆ ๏ผˆๅฏๆ”ถ่ตท๏ผ‰ โ”‚
โ”‚            โ”‚                                     โ”‚               โ”‚
โ”‚ ็ฃ็›˜้กน็›ฎๆ ‘ โ”‚ ็”จๆˆท / ๅŠฉๆ‰‹ / ๅทฅๅ…ท่กŒ / ๆ€่€ƒ้“พ        โ”‚ ๅฎกๆŸฅยท่ฟ่กŒยท    โ”‚
โ”‚ ไผš่ฏๅˆ—่กจ   โ”‚                                     โ”‚ ไธŠไธ‹ๆ–‡ยทๆ ‘โ€ฆ    โ”‚
โ”‚ ๅฏน่ฏๅˆ†ๅŒบ   โ”‚                                     โ”‚               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • ่ฎพ็ฝฎ๏ผˆ็‹ฌ็ซ‹ๅ…จๅฑ้กต๏ผ‰๏ผšๅธธ่ง„ใ€ๅค–่ง‚ใ€Piใ€ๆ‰ฉๅฑ•ใ€ๆกŒ้ข้€‚้…ๅ™จใ€Skillsใ€ๆ็คบ่ฏใ€‚

ไธป่ฆ่ƒฝๅŠ›

ๅทฅไฝœๅŒบไธŽไผš่ฏ

  • ๅ•ๆดปๅŠจ cwd๏ผˆ็ฃ็›˜่ทฏๅพ„ๆˆ–ๆฒ™็ฎฑ๏ผ‰๏ผ›ๆœ€่ฟ‘้กน็›ฎ๏ผ›ๅฏๅŠจๅฏๆขๅคไธŠๆฌก็›ฎๅฝ•ใ€‚
  • ๅކๅฒๆถˆๆฏไปŽๅฐพ้ƒจๆŒ‰้œ€ๅŠ ่ฝฝ๏ผ›ๅˆ‡ๆขไผš่ฏๅ…ˆๆ˜พ็คบๆœ€่ฟ‘ไธ€ๆฎต๏ผŒๅฎŒๆ•ดไผš่ฏๅœจๅ‘้€ๆˆ–ๆ ‘่ทณ่ฝฌๆ—ถๅ†็ป‘ๅฎšใ€‚
  • ไผš่ฏๆ ‘๏ผšๅณๆ ๆˆ–ๅŒๅ‡ป Esc ๆตฎๅฑ‚๏ผ›่Š‚็‚น่ทณ่ฝฌๅ›žๅˆฐ่ฏฅๅˆ†ๆ”ฏ๏ผ›็”จๆˆทๆถˆๆฏ่Š‚็‚นๅฏๆŠŠๅŽŸๆ–‡ๅกซๅ›ž่พ“ๅ…ฅๆก†ใ€‚ๆœ‰ git ไป“ๅบ“ๆ—ถ pi-rewind ๆ‰ฉๅฑ•ไผš่ฏข้—ฎๆ˜ฏๅฆๅŒๆ—ถๅ›ž้€€ๆ–‡ไปถใ€‚

ๅฏน่ฏไธŽๆ‰ง่กŒ

  • ๆ—ถ้—ด็บฟ๏ผšๆตๅผ Markdownใ€ๅทฅๅ…ทๆŠ˜ๅ ่กŒใ€ๅŽŸ็”Ÿๅทฅๅ…ท็š„ diff/้ซ˜ไบฎ้ข„่งˆใ€‚
  • ๆ‰ฉๅฑ•ๅทฅๅ…ท๏ผšๅฑ•็คบไธŽๅผน็ช—็”ฑๅ…ผๅฎนๅฑ‚ + ้€‚้…ๅ™จๅ†ณๅฎš๏ผˆไธ‹ไธ€่Š‚๏ผ‰ใ€‚
  • ๆจกๅž‹ / ๆ€่€ƒ็ญ‰็บงๅœจ่พ“ๅ…ฅๅŒบๅˆ‡ๆข๏ผ›ๅ…จๅฑ€ pi ๅ‚ๆ•ฐๅœจ ่ฎพ็ฝฎ โ†’ Piใ€‚

่ฎพ็ฝฎไธ€่งˆ

้กต้ข ไฝœ็”จ
ๅธธ่ง„ / ๅค–่ง‚ ๅฏๅŠจใ€ไธป้ข˜
Pi ้ป˜่ฎคๆจกๅž‹ใ€ๅŽ‹็ผฉใ€้‡่ฏ•็ญ‰๏ผˆๅ†™ๅ›ž settings.json๏ผ‰๏ผ›ไฟๅญ˜้ป˜่ฎคๆจกๅž‹ไผšๅŒๆญฅๅˆฐๅฝ“ๅ‰ไผš่ฏๅฎž้™…่ฏทๆฑ‚ๆจกๅž‹
ๆจกๅž‹ ็ผ–่พ‘ ~/.pi/agent/models.json๏ผšไพ›ๅบ”ๅ•†้ข„่ฎพใ€ๆ‹‰ๅ–่ฟœ็ซฏๆจกๅž‹็›ฎๅฝ•ใ€ๆœฌๅœฐๆจกๅž‹ๅ‚ๆ•ฐ๏ผˆไธŽ้กน็›ฎๆ— ๅ…ณ๏ผ‰
ๆ‰ฉๅฑ• ๅทฒๆŽขๆต‹ๆ‰ฉๅฑ•ใ€ๅฝ“ๅ‰ไผš่ฏๅฎž้™…ๅŠ ่ฝฝ็š„ๅทฅๅ…ท
ๆกŒ้ข้€‚้…ๅ™จ ๆฏๆ‰ฉๅฑ•็š„ๅ…ผๅฎน่ฏดๆ˜Žใ€้…็ฝฎ่กจๅ•
Skills ๅฏ็”จ/็ฆ็”จ๏ผˆdesktopSkillOverrides๏ผ‰
ๆ็คบ่ฏ ้กน็›ฎไธŠไธ‹ๆ–‡ / pi ๅ†…็ฝฎ / ๆจกๆฟ / ๆ’ไปถๆณจๅ…ฅ๏ผ›็ผ–่พ‘ไธŽ็‰ˆๆœฌๅ›ž้€€

ๆ‰ฉๅฑ•ๅ…ผๅฎนๅฑ‚ไธŽ้€‚้…ๅ™จ

ๅพˆๅคš pi ๆ‰ฉๅฑ•ไพ่ต–็ปˆ็ซฏ TUIใ€‚่‹ฅๆฏไธชๆ‰ฉๅฑ•ๅ„ๅ†™ไธ€ๅฅ—ๆกŒ้ข UI๏ผŒๅบ”็”จไผš้šพไปฅ็ปดๆŠคใ€‚

ๅ…ผๅฎนๅฑ‚่ดŸ่ดฃ๏ผš

  • ๅœจๅŽๅฐ pi ไผš่ฏไธŽๅ‰ๅฐ็ช—ๅฃไน‹้—ด่ฝฌๅ‘๏ผšๅทฅๅ…ท่ฟ›ๅบฆไธŽ็ป“ๆžœใ€ๆ‰ฉๅฑ•ๅผน็ช—๏ผˆ้€‰ๆ‹ฉ/็กฎ่ฎค/้—ฎๅท/ๅฎกๅ›พ็ญ‰๏ผ‰ใ€้…็ฝฎ่ฏปๅ†™๏ผˆไปๅฐฝ้‡ๅ†™ๆ‰ฉๅฑ•่‡ชๅทฑ็š„้…็ฝฎๆ–‡ไปถ๏ผ‰ใ€‚
  • ไธไฟฎๆ”นๆ‰ฉๅฑ•ๅฎ‰่ฃ…็›ฎๅฝ•้‡Œ็š„ไปฃ็ ๏ผŒไธไฟฎๆ”น pi SDK ๆบ็ ใ€‚

้€‚้…ๅ™จ๏ผˆๆฏไธชๆ‰ฉๅฑ•ไธ€ไปฝ๏ผ‰่ฏดๆ˜Ž๏ผš

ๅ†…ๅฎน ็”จๆˆทๅฏ่งไฝ็ฝฎ
้…็ฝฎ้กนไธŽ่ฏปๅ†™ไฝ็ฝฎ ่ฎพ็ฝฎ โ†’ ๆกŒ้ข้€‚้…ๅ™จ โ†’ ่ฏฅๆ‰ฉๅฑ•
ๅทฅๅ…ท็ป“ๆžœๅฆ‚ไฝ•ๅฑ•็คบ ๆ—ถ้—ด็บฟๅทฅๅ…ท่กŒ๏ผˆๅˆ—่กจใ€้ข„่งˆใ€ๅฏผๅ‡บ้“พๆŽฅ็ญ‰๏ผ‰
้œ€่ฆไธญ้€”ไบ’ๅŠจ็š„ๅทฅๅ…ท ๅฏน่ฏไธญๅผน็ช—๏ผŒ็‚น้€‰ๅŽๅฏน่ฏ็ปง็ปญ
้ƒจๅˆ† /ๅ‘ฝไปค ๆ‰“ๅผ€้…็ฝฎ้กตใ€ๆ็คบ๏ผŒๆˆ–ๆŒ‰ pi ๅŽŸ้€ป่พ‘ๆ‰ง่กŒ

ๅ†…็ฝฎ้€‚้…้šๅบ”็”จๅ‘ๅธƒ๏ผ›ๅฏๅœจ ~/.pi/desktop/adapters/ ๆˆ–้กน็›ฎ .pi/desktop/adapters/ ๆ”พ JSON ่ฆ†็›–๏ผˆ้ซ˜็บง๏ผ‰ใ€‚

้€‚้…ๅ™จ JSON ไธŽๅทฅๅ…ทๅกๆจกๆฟ๏ผšๆฏไธชๆ‰ฉๅฑ•ไธ€ไปฝ *.adapter.json๏ผˆๅŒน้…ๅŒ…ๅ / ๅทฅๅ…ทๅใ€้…็ฝฎ้กตใ€ๆ–œๆ ่ฏญไน‰๏ผ‰ใ€‚ๆ—ถ้—ด็บฟๅฑ•็คบ็”ฑ toolCard.template ๆŸฅ่กจ๏ผšdefault / list / media / tree / kv / hashline๏ผˆhashline ๅ่ฎฎ่พ“ๅ‡บ๏ผŒๅฎž็ŽฐไฝไบŽ src/extension-compat/renderer/๏ผŒๆ— ้œ€ๅœจ src/renderer ๅ†™ๆ’ไปถๅๅˆ†ๆ”ฏ๏ผ‰ใ€‚ๅฎ‰่ฃ…ๆ‰ฉๅฑ•ๅŽ้œ€ๅœจ settings.json ็š„ packages ไธญๅฏ็”จ๏ผŒๅนถ้‡ๅฏ Workerใ€‚

ๅ†…็ฝฎ้€‚้…ๅ™จๅˆ—่กจ

ไปฅไธ‹้€‚้…ๅ™จๅทฒๅ†…็ฝฎๅœจๅบ”็”จไธญ๏ผˆๅฏนๅบ”ๆ‰ฉๅฑ•้œ€ๅœจ ~/.pi/agent/settings.json ็š„ packages ไธญๅฎ‰่ฃ…ๆ‰็”Ÿๆ•ˆ๏ผ‰ใ€‚็ปˆ็ซฏๅฎ‰่ฃ…็คบไพ‹๏ผšpi install npm:pi-subagentsใ€pi install git:github.com/justhil/pi-search๏ผˆnpm ๅŒ…็”จ npm:๏ผŒGitHub ็”จ git:๏ผŒไธŽไธŠ่กจใ€Œๆ‰ฉๅฑ•ๅŒ…ใ€ๅˆ—ๅŒ…ๅไธ€่‡ด๏ผ‰ใ€‚

้€‚้…ๅ™จ ๆ‰ฉๅฑ•ๅŒ… ่ฏดๆ˜Ž
Trellis trellis ้กน็›ฎไปปๅŠก้ขๆฟ๏ผˆๅช่ฏป sidePanel๏ผŒ่ฏปๅ– .trellis/๏ผ‰
pi-rewind pi-rewind Git ๆฃ€ๆŸฅ็‚นๅ›ž้€€๏ผ›ไผš่ฏๆ ‘่ทณ่ฝฌๆ—ถ่ฏข้—ฎๆ˜ฏๅฆๆขๅคๆ–‡ไปถ
Ask User Question @juicesharp/rpiv-ask-user-question ็ป“ๆž„ๅŒ–้—ฎ็ญ”ๅผน็ช—
Image Gen pi-image-gen ๅ›พ็‰‡็”Ÿๆˆ / ๅฎกๆŸฅๅผน็ช—
Multimodal Vision pi-multimodal-proxy ๅคšๆจกๆ€่ง†่ง‰ไปฃ็†
Markdown Preview pi-markdown-preview Markdown ๅฎžๆ—ถ้ข„่งˆๅก็‰‡
Studio pi-studio Studio REPL ้›†ๆˆ
Fast Context pi-fast-context ๅฟซ้€ŸไธŠไธ‹ๆ–‡ๆฃ€็ดข
Subagents pi-subagents ๅญ Agent ๆดพๅ‘ไธŽ็ฎก็†
Cache Optimizer pi-cache-optimizer ็ผ“ๅญ˜ไผ˜ๅŒ–้…็ฝฎ
Skills Manager @vanillagreen/pi-skills-manager Skills ็ฎก็†้…็ฝฎ UI
MCP Adapter pi-mcp-adapter MCP ๆœๅŠกๅ™จ้€‚้…
Context Viewer @agnishc/edb-context-viewer ไธŠไธ‹ๆ–‡ๆŸฅ็œ‹ๅ™จ
FFF @ff-labs/pi-fff fuzzy ๆ–‡ไปถๆŸฅๆ‰พ
Sync @narumitw/pi-sync ไผš่ฏๅŒๆญฅ้…็ฝฎ
Continue pi-continue ็ปง็ปญๅฏน่ฏ้…็ฝฎ
Goal pi-goal ็›ฎๆ ‡็ฎก็†
BTW pi-btw ๆ—ๆณจ่ฎฐๅฝ•
Simplify pi-simplify ไปฃ็ ็ฎ€ๅŒ–ๅปบ่ฎฎ
Advisor @juicesharp/rpiv-advisor ้กพ้—ฎๅปบ่ฎฎๅผน็ช—
Observational Memory pi-observational-memory ่ง‚ๅฏŸ่ฎฐๅฟ†้…็ฝฎ
Tool Display pi-tool-display ๅทฅๅ…ทๅฑ•็คบๅก็‰‡
Hashline Edit @jerryan/pi-hashline-edit ๅ“ˆๅธŒ้”šๅฎš read/edit/insert/grep + ๆ—ถ้—ด็บฟ hashline ้ข„่งˆ
Agents.md pi-agentsmd AGENTS.md ็ฎก็†้…็ฝฎ
ACE Tool pi-ace-tool ACE ๅทฅๅ…ท้›†ๆˆ
Sequential Thinking @feniix/pi-sequential-thinking ้กบๅบๆ€่€ƒ้…็ฝฎ
Aegis aegis Aegis ๅทฅไฝœๆตๅผ•ๆ“Ž
TPS Extensions @kinarajv/pi-tps-extensions TPS ๆ‰ฉๅฑ•้…็ฝฎ
Nano Context pi-nano-context ็บณ็ฑณไธŠไธ‹ๆ–‡
Powerline Footer pi-powerline-footer ๅบ•ๆ ็Šถๆ€่กŒ
Amp Themes amp-themes Amp ไธป้ข˜
Curated Themes @victor-software-house/pi-curated-themes ็ฒพ้€‰ไธป้ข˜
Themes Bundle @firstpick/pi-themes-bundle ไธป้ข˜ๅˆ้›†
Pi Search pi-search ๆœ็ดขๅทฅๅ…ท

ไธŽ็ปˆ็ซฏ pi

่ƒฝๅŠ› ็ปˆ็ซฏ pi pi Desktop
ๅฏน่ฏไธŽ session TUI ๅ›พๅฝขๆ—ถ้—ด็บฟ + ่พ“ๅ…ฅๅŒบ
ๆ‰ฉๅฑ•ๅผน็ช— ็ปˆ็ซฏ็ป„ไปถ ๅ…ผๅฎนๅฑ‚ โ†’ ็ช—ๅฃ
ๆ‰ฉๅฑ•้…็ฝฎ TUI / ๆ–‡ไปถ ่ฎพ็ฝฎ โ†’ ้€‚้…ๅ™จ๏ผˆไปๅ†™ๆ‰ฉๅฑ•ๅธธ็”จ้…็ฝฎๆ–‡ไปถ๏ผ‰
Skills / ๆ็คบ่ฏ ็›ฎๅฝ• + settings ่ฎพ็ฝฎ้›†ไธญ็ฎก็† + ๆœฌๅœฐไฟฎ่ฎขๅކๅฒ

ๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ็•Œ้ข (React) โ€” ๆ—ถ้—ด็บฟใ€่พ“ๅ…ฅๅŒบใ€่ฎพ็ฝฎใ€ๆ‰ฉๅฑ•ๅผน็ช—ๅฎฟไธป              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚ preload ็™ฝๅๅ• IPC
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ไธป่ฟ›็จ‹ โ€” ็ช—ๅฃใ€ๅบ”็”จ้…็ฝฎใ€ๆฒ™็ฎฑ/ๆ–‡ไปถใ€้€‚้…ๅ™จ้…็ฝฎๅŽ็ซฏใ€ไผš่ฏๆ ‘ๆ–‡ไปถ่งฃๆž  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Pi ๅŽๅฐ่ฟ›็จ‹ โ€” pi SDKใ€ๅŠ ่ฝฝๆ‰ฉๅฑ•ใ€ไบ‹ไปถไธŽ UI ่ฏทๆฑ‚                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ•ฐๆฎ่ฝ็‚น

ๆ•ฐๆฎ ไฝ็ฝฎ
ไผš่ฏไธŽ่ฟ่กŒๅކๅฒ ~/.pi/agent/sessions/๏ผˆpi JSONL๏ผ‰
่ฎค่ฏไธŽๅ…จๅฑ€ pi ่ฎพ็ฝฎ ~/.pi/agent/
ๅบ”็”จๅๅฅฝ๏ผˆไธป้ข˜ใ€ไพงๆ ๅฎฝๅบฆ็ญ‰๏ผ‰ ๆœฌๆœบ electron-store
ๆ็คบ่ฏ/ๆŠ€่ƒฝ็ผ–่พ‘ๅฟซ็…ง ~/.pi/agent/desktop-revisions/
ไธดๆ—ถๅฏน่ฏๆฒ™็ฎฑ ๅบ”็”จ userData/sandbox-workspaces/

็›ฎๅฝ•็ป“ๆž„

pi-app/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ electron.vite.config.ts      # main / preload / renderer / worker ๆž„ๅปบ
โ”œโ”€โ”€ electron-builder.yml           # ๅฎ‰่ฃ…ๅŒ…
โ”œโ”€โ”€ resources/
โ”‚   โ””โ”€โ”€ icon.svg                   # ๅบ”็”จๅ›พๆ ‡ๆบ๏ผˆnpm run icon:export โ†’ build/icon.png๏ผ‰
โ”‚
โ”œโ”€โ”€ packages/
โ”‚   โ””โ”€โ”€ shared/                    # IPC ๆ–นๆณ•ๅใ€AppEventใ€Zod ๆ ก้ชŒ๏ผˆๅ‰ๅŽ็ซฏๅ…ฑ็”จ๏ผ‰
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main/                      # Electron ไธป่ฟ›็จ‹
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts               # ๅ…ฅๅฃใ€็ช—ๅฃใ€่‡ชๅŠจๆ‰“ๅผ€ไธŠๆฌก้กน็›ฎ
โ”‚   โ”‚   โ”œโ”€โ”€ ipc.ts                 # ipc:* ๅค„็†ๅ‡ฝๆ•ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ worker-manager.ts      # Pi ๅŽๅฐ่ฟ›็จ‹็”Ÿๅ‘ฝๅ‘จๆœŸไธŽ่ฏทๆฑ‚
โ”‚   โ”‚   โ”œโ”€โ”€ config-store.ts        # ๅบ”็”จๆœฌๅœฐ้…็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ sandbox-workspaces.ts  # ๅฏน่ฏๅˆ†ๅŒบๆฒ™็ฎฑ
โ”‚   โ”‚   โ”œโ”€โ”€ session-tree-from-file.ts  # ๆœช็ป‘ๅฎšไผš่ฏๆ—ถไปŽ JSONL ่ฏปๆ ‘
โ”‚   โ”‚   โ”œโ”€โ”€ pi-resources-editor.ts # Skills/ๆ็คบ่ฏ็ฃ็›˜่ฏปๅ†™
โ”‚   โ”‚   โ”œโ”€โ”€ resource-revisions.ts  # ็ผ–่พ‘็‰ˆๆœฌๅ›ž้€€
โ”‚   โ”‚   โ”œโ”€โ”€ workspace-task-panel-reader.ts  # ๅณๆ ๅŽŸ่ฏญ workspace-trellis
โ”‚   โ”‚   โ”œโ”€โ”€ side-panel-registry.ts   # adapter sidePanel.stateProvider
โ”‚   โ”‚   โ””โ”€โ”€ โ€ฆ
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ preload/                   # contextBridge ๆšด้œฒ็ป™็•Œ้ข็š„ๅฎ‰ๅ…จ API
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ worker/                    # Pi ๅŽๅฐ่ฟ›็จ‹๏ผˆutilityProcess๏ผ‰
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts               # createAgentSessionใ€ๆถˆๆฏๅค„็†
โ”‚   โ”‚   โ””โ”€โ”€ desktop-ui-bridge.ts   # ๆ‰ฉๅฑ• ctx.ui โ†’ ๅ‘็ป™็•Œ้ข
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ extension-compat/          # โ˜… ๆ‰ฉๅฑ•ๅ…ผๅฎนๅฑ‚
โ”‚   โ”‚   โ”œโ”€โ”€ builtin/*.adapter.json # ๅ„ๆ‰ฉๅฑ•ๅ†…็ฝฎ้€‚้…ๆ่ฟฐ
โ”‚   โ”‚   โ”œโ”€โ”€ adapter-loader.ts      # ๅˆๅนถๅ†…็ฝฎไธŽ็”จๆˆท่ฆ†็›–
โ”‚   โ”‚   โ”œโ”€โ”€ adapter-backend.ts     # ้…็ฝฎ่ฏปๅ†™ใ€ๆŽขๆต‹ใ€้€š็”จๅŠจไฝœ
โ”‚   โ”‚   โ”œโ”€โ”€ extension-probe.ts     # ๆ‰ซๆๅทฒๅฎ‰่ฃ…ๆ‰ฉๅฑ•
โ”‚   โ”‚   โ””โ”€โ”€ โ€ฆ
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ renderer/                  # React ็•Œ้ข
โ”‚       โ”œโ”€โ”€ index.html
โ”‚       โ””โ”€โ”€ src/
โ”‚           โ”œโ”€โ”€ app/               # ๅฃณๅฑ‚ใ€ไธ‰ๆ ๅธƒๅฑ€
โ”‚           โ”œโ”€โ”€ features/          # ๆŒ‰ๅŠŸ่ƒฝๅˆ’ๅˆ†
โ”‚           โ”‚   โ”œโ”€โ”€ timeline/      # ๆ—ถ้—ด็บฟใ€Markdownใ€ๅทฅๅ…ท้ข„่งˆ
โ”‚           โ”‚   โ”œโ”€โ”€ composer/      # ่พ“ๅ…ฅๅŒบใ€ๆ–œๆ ใ€ๆจกๅž‹้€‰ๆ‹ฉ
โ”‚           โ”‚   โ”œโ”€โ”€ review/        # ๆ”นๅŠจๅฎกๆŸฅ
โ”‚           โ”‚   โ”œโ”€โ”€ run/ context/ trellis/ rewind/
โ”‚           โ”‚   โ”œโ”€โ”€ settings/      # ่ฎพ็ฝฎๅ„้กต
โ”‚           โ”‚   โ”œโ”€โ”€ extension-ui/  # ๆ‰ฉๅฑ•ๅผน็ช—ใ€้€‚้…ๅ™จ้…็ฝฎ่กจๅ•
โ”‚           โ”‚   โ””โ”€โ”€ workspace/     # ไพงๆ ้กน็›ฎไธŽไผš่ฏ
โ”‚           โ”œโ”€โ”€ components/ui/     # shadcn ๅŸบ็ก€็ป„ไปถ
โ”‚           โ”œโ”€โ”€ stores/            # Zustand๏ผˆๅซๆŒไน…ๅŒ– UI ็Šถๆ€๏ผ‰
โ”‚           โ”œโ”€โ”€ lib/               # IPC ๅฎขๆˆท็ซฏใ€ไผš่ฏๅˆ‡ๆขใ€ๅކๅฒๅˆ†้กต
โ”‚           โ”œโ”€โ”€ locales/           # i18n
โ”‚           โ””โ”€โ”€ styles/            # globals.cssใ€ๅŠจๆ•ˆ token
โ”‚
โ””โ”€โ”€ scripts/                       # ๅ›พๆ ‡ๅฏผๅ‡บ็ญ‰ๆž„ๅปบ่„šๆœฌ

ๆ”น็•Œ้ข โ†’ ไผ˜ๅ…ˆ src/renderer/src/features/ใ€‚
ๆ”น IPC ๆˆ–ๆฒ™็ฎฑ/่ต„ๆบๆ–‡ไปถ โ†’ src/main/ + packages/shared/ใ€‚
ๆ”น pi ไผš่ฏ่กŒไธบ โ†’ src/worker/ใ€‚
ๆ–ฐๆ‰ฉๅฑ•ๆกŒ้ขๆ”ฏๆŒ โ†’ src/extension-compat/builtin/ ๅขžๅŠ ้€‚้… JSONใ€‚


่„šๆœฌ

ๅ‘ฝไปค ่ฏดๆ˜Ž
npm run dev ๅผ€ๅ‘ๆจกๅผ
npm run build ๆž„ๅปบ main / preload / renderer / worker
npm run typecheck TypeScript ๆฃ€ๆŸฅ
npm run icon:export resources/icon.svg โ†’ build/icon.png
npm run package:win Windows NSIS ๅฎ‰่ฃ…ๅŒ… + ไพฟๆบ็‰ˆ๏ผˆdist/๏ผ‰

GitHub Release๏ผˆCI๏ผ‰

  • ๅทฅไฝœๆต๏ผš.github/workflows/release.yml
  • ๆŽจ้€ๆ ‡็ญพ v*๏ผˆๅฆ‚ v0.1.0๏ผ‰ๆˆ– Actions ้‡Œๆ‰‹ๅŠจ Run workflow๏ผŒๅœจ Windows ไธŠๆž„ๅปบๅนถไธŠไผ ๏ผš
    • pi Desktop-Setup-<version>-x64.exe๏ผˆๅฎ‰่ฃ…ๅŒ…๏ผ‰
    • pi Desktop-Portable-<version>-x64.exe๏ผˆไพฟๆบๅŒ…๏ผ‰
  • ๆ‰“ๆ ‡็ญพ็คบไพ‹๏ผšgit tag v0.1.0 && git push origin v0.1.0

ๆŠ€ๆœฏๆ ˆ

Electron 35 ยท electron-vite ยท React 18 ยท TypeScript ยท Tailwind ยท shadcn/Radix ยท Zustand ยท TanStack Query ยท i18next ยท react-markdown ยท Shiki ยท @earendil-works/pi-coding-agent ^0.79 ยท electron-store ยท better-sqlite3 ยท electron-updater


่ฎธๅฏ่ฏ

MIT


ๅ‹้“พ

  • LinuxDo โ€” ็คพๅŒบ่ฎจ่ฎบไธŽๅ้ฆˆ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages