@pencil-agent/nano-pencil 1.13.12 → 1.13.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +267 -267
- package/dist/build-meta.json +3 -3
- package/dist/cli/args.js +140 -140
- package/dist/config.d.ts +6 -0
- package/dist/config.js +29 -0
- package/dist/core/export-html/AGENT.md +11 -11
- package/dist/core/export-html/CLAUDE.md +11 -11
- package/dist/core/export-html/template.css +971 -971
- package/dist/core/export-html/template.html +54 -54
- package/dist/core/export-html/template.js +1586 -1586
- package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
- package/dist/core/export-html/vendor/marked.min.js +6 -6
- package/dist/core/mcp/figma-auth.js +20 -20
- package/dist/core/mcp/mcp-guidance.js +44 -44
- package/dist/core/messages.js +7 -7
- package/dist/core/prompt/system-prompt.js +103 -103
- package/dist/core/runtime/sdk.js +22 -3
- package/dist/core/session/compaction/branch-summarization.js +30 -30
- package/dist/core/session/compaction/compaction.js +81 -81
- package/dist/core/session/compaction/utils.js +2 -2
- package/dist/core/tools/bash.js +9 -2
- package/dist/extensions/defaults/AGENT.md +82 -81
- package/dist/extensions/defaults/CLAUDE.md +68 -68
- package/dist/extensions/defaults/browser/AGENT.md +17 -17
- package/dist/extensions/defaults/browser/agent-workspace/agent_helpers.py +12 -0
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -198
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -341
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -311
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -333
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/atlas/overview.md +70 -70
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -578
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -440
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -110
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -325
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -463
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -360
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -390
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -568
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -323
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -349
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -435
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -506
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -363
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/expedia/automation.md +168 -168
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/facebook/groups.md +236 -236
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/facebook/pages.md +295 -295
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/framer/editor.md +108 -108
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/fred/scraping.md +493 -493
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/g2/scraping.md +580 -580
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/genius/scraping.md +511 -511
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -65
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/github/scraping.md +184 -184
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -543
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/gmail/compose.md +122 -122
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -461
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -383
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -243
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -473
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -271
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -436
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -1021
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -349
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -109
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -170
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -537
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -120
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/medium/scraping.md +414 -414
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -477
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -478
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -339
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -205
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -472
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -470
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -490
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -478
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -234
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -307
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -421
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/quora/scraping.md +364 -364
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -352
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -124
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -233
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -361
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -36
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -72
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -109
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -137
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -362
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -339
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -435
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/steam/scraping.md +575 -575
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/substack/scraping.md +338 -338
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -52
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -107
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -309
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -88
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -375
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -444
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -306
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/weather/scraping.md +398 -398
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -596
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -356
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -84
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -418
- package/dist/extensions/defaults/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -433
- package/dist/extensions/defaults/browser/browser.md +73 -73
- package/dist/extensions/defaults/browser/index.js +10 -9
- package/dist/extensions/defaults/browser/install.md +142 -142
- package/dist/extensions/defaults/browser/interaction-skills/connection.md +48 -48
- package/dist/extensions/defaults/browser/interaction-skills/cookies.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/cross-origin-iframes.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/dialogs.md +64 -64
- package/dist/extensions/defaults/browser/interaction-skills/downloads.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/drag-and-drop.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/dropdowns.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/iframes.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/network-requests.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/print-as-pdf.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/profile-sync.md +90 -90
- package/dist/extensions/defaults/browser/interaction-skills/screenshots.md +17 -17
- package/dist/extensions/defaults/browser/interaction-skills/scrolling.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/shadow-dom.md +3 -3
- package/dist/extensions/defaults/browser/interaction-skills/tabs.md +69 -69
- package/dist/extensions/defaults/browser/interaction-skills/uploads.md +1 -1
- package/dist/extensions/defaults/browser/interaction-skills/viewport.md +3 -3
- package/dist/extensions/defaults/browser/src/browser_harness/AGENT.md +15 -15
- package/dist/extensions/defaults/browser/src/browser_harness/__init__.py +8 -0
- package/dist/extensions/defaults/browser/src/browser_harness/_ipc.py +90 -0
- package/dist/extensions/defaults/browser/src/browser_harness/admin.py +722 -0
- package/dist/extensions/defaults/browser/src/browser_harness/daemon.py +328 -0
- package/dist/extensions/defaults/browser/src/browser_harness/helpers.py +396 -0
- package/dist/extensions/defaults/browser/src/browser_harness/run.py +103 -0
- package/dist/extensions/defaults/btw/index.js +7 -7
- package/dist/extensions/defaults/debug/index.js +30 -30
- package/dist/extensions/defaults/diagnostics/reporter.js +2 -1
- package/dist/extensions/defaults/grub/README.md +96 -96
- package/dist/extensions/defaults/grub/index.js +69 -69
- package/dist/extensions/defaults/interview/index.js +66 -66
- package/dist/extensions/defaults/link-world/agent-workspace/README.md +16 -16
- package/dist/extensions/defaults/link-world/index.js +9 -8
- package/dist/extensions/defaults/link-world/internet-search/internet-search.md +65 -65
- package/dist/extensions/defaults/link-world/link-world-agent.md +82 -82
- package/dist/extensions/defaults/link-world/linkworld.md +313 -313
- package/dist/extensions/defaults/link-world/network-routing.md +67 -67
- package/dist/extensions/defaults/loop/README.md +92 -92
- package/dist/extensions/defaults/loop/skill/SKILL.md +79 -79
- package/dist/extensions/defaults/mcp/figma-design.md +68 -68
- package/dist/extensions/defaults/mcp/mcp-management.md +85 -85
- package/dist/extensions/defaults/plan/plan-agents.js +42 -42
- package/dist/extensions/defaults/plan/plan-workflow-prompt.js +47 -47
- package/dist/extensions/defaults/sal/README.md +72 -72
- package/dist/extensions/defaults/security-audit/README.md +289 -289
- package/dist/extensions/defaults/security-audit/engine/interceptor.js +26 -26
- package/dist/extensions/defaults/security-audit/engine/logger.js +63 -63
- package/dist/extensions/defaults/subagent/subagent-parser.js +14 -14
- package/dist/extensions/defaults/team/AGENT.md +110 -105
- package/dist/extensions/defaults/team/CLAUDE.md +97 -97
- package/dist/extensions/defaults/team/TESTING.md +299 -299
- package/dist/extensions/defaults/team/index.js +154 -40
- package/dist/extensions/defaults/team/team-dashboard.d.ts +6 -2
- package/dist/extensions/defaults/team/team-dashboard.js +65 -90
- package/dist/extensions/defaults/team/team-mailbox.d.ts +1 -1
- package/dist/extensions/defaults/team/team-orchestrator.d.ts +39 -0
- package/dist/extensions/defaults/team/team-orchestrator.js +469 -0
- package/dist/extensions/defaults/team/team-parser.js +50 -38
- package/dist/extensions/defaults/team/team-permissions.js +6 -2
- package/dist/extensions/defaults/team/team-presets.js +107 -51
- package/dist/extensions/defaults/team/team-psyche.js +5 -0
- package/dist/extensions/defaults/team/team-runtime.d.ts +4 -0
- package/dist/extensions/defaults/team/team-runtime.js +124 -8
- package/dist/extensions/defaults/team/team-types.d.ts +81 -7
- package/dist/extensions/defaults/team/team-types.js +3 -3
- package/dist/extensions/optional/AGENT.md +10 -10
- package/dist/extensions/optional/CLAUDE.md +10 -10
- package/dist/extensions/optional/simplify/index.js +50 -50
- package/dist/main.js +34 -34
- package/dist/modes/interactive/components/custom-message.d.ts +1 -0
- package/dist/modes/interactive/components/custom-message.js +4 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.js +85 -75
- package/dist/modes/interactive/theme/dark.json +85 -85
- package/dist/modes/interactive/theme/light.json +84 -84
- package/dist/modes/interactive/theme/theme-schema.json +335 -335
- package/dist/modes/interactive/theme/warm.json +81 -81
- package/dist/nanopencil-defaults.js +21 -21
- package/dist/node_modules/@pencil-agent/ai/cli.js +13 -13
- package/dist/node_modules/@pencil-agent/ai/models.generated.js +5 -5
- package/dist/node_modules/@pencil-agent/ai/utils/oauth/openai-codex.js +10 -10
- package/dist/packages/mem-core/cli.js +18 -18
- package/dist/packages/mem-core/extraction.js +3 -3
- package/dist/packages/mem-core/full-insights-html.js +268 -268
- package/dist/packages/mem-core/human-insights.js +49 -49
- package/dist/packages/mem-core/i18n.js +244 -244
- package/dist/packages/mem-core/insights-html.js +204 -204
- package/docs/ACP/345/215/217/350/256/256/351/233/206/346/210/220/345/274/200/345/217/221/346/226/207/346/241/243.md +851 -0
- package/docs/API/345/257/206/351/222/245/344/277/256/345/244/215/346/200/273/347/273/223.md +147 -147
- package/docs/API/345/257/206/351/222/245/345/221/275/344/273/244.md +66 -66
- package/docs/API/345/257/206/351/222/245/346/214/207/345/215/227.md +292 -292
- package/docs/ARK/347/274/226/347/240/201/350/256/241/345/210/222.md +51 -51
- package/docs/AgentTeam/351/207/215/346/236/204/346/226/271/346/241/210.md +446 -446
- package/docs/Insight /346/264/236/345/257/237/346/212/245/345/221/212.md" +352 -352
- package/docs/InterviewRegression.md +122 -122
- package/docs/MCP/345/277/253/351/200/237/345/217/202/350/200/203.md +113 -113
- package/docs/MCP/351/233/206/346/210/220/346/214/207/345/215/227.md +255 -255
- package/docs/Persona/345/210/207/346/215/242.md +97 -97
- package/docs/SAL/345/256/236/351/252/214/350/257/204/344/274/260/346/226/271/345/274/217/357/274/210/344/273/243/347/240/201/345/257/271/346/257/224/344/270/216/345/244/232worktree/357/274/211.md +158 -158
- package/docs/SAL/346/200/273/344/275/223/350/267/257/347/272/277/344/270/216/345/256/236/351/252/214/345/244/247/347/272/262.md +213 -213
- package/docs/SDK-TESTING.md +364 -0
- package/docs/SDK.md +439 -0
- package/docs/Simplify/346/211/251/345/261/225.md +277 -277
- package/docs/debug-logging.md +148 -148
- package/docs/eval/AGENT.md +36 -36
- package/docs/eval/README.md +72 -72
- package/docs/eval/decision-log-template.md +51 -51
- package/docs/eval/experiment-protocol.md +77 -77
- package/docs/eval/issue-usage/README.md +32 -32
- package/docs/eval/issue-usage/cases.md +31 -31
- package/docs/eval/issue-usage/metrics.md +23 -23
- package/docs/eval/issue-usage/workflow.md +39 -39
- package/docs/eval/sal-memory-anchor/README.md +32 -32
- package/docs/eval/sal-memory-anchor/hypothesis.md +45 -45
- package/docs/eval/sal-memory-anchor/metrics.md +24 -24
- package/docs/eval/sal-memory-anchor/runs.md +29 -29
- package/docs/eval/tool-usage-analysis/README.md +32 -32
- package/docs/eval/tool-usage-analysis/invalid-data-rules.md +29 -29
- package/docs/eval/tool-usage-analysis/metrics.md +35 -35
- package/docs/eval/tool-usage-analysis/report-template.md +49 -49
- package/docs/eval/tool-usage-analysis/sop.md +63 -63
- package/docs/mem-core/346/212/200/346/234/257/346/226/207/346/241/243.md +593 -0
- package/docs/startup-performance-optimization.md +301 -0
- package/docs//345/206/205/347/275/256MCP/345/267/245/345/205/267.md +326 -326
- package/docs//345/215/203/345/270/206/347/274/226/347/240/201/350/256/241/345/210/222.md +52 -52
- package/docs//345/215/225/344/275/223/344/273/223/345/272/223/350/207/252/350/277/260.md +189 -189
- package/docs//345/215/225/344/275/223/344/273/223/345/272/223/350/277/201/347/247/273/346/214/207/345/215/227.md +232 -232
- package/docs//345/217/221/345/270/203/346/214/207/345/215/227.md +129 -129
- package/docs//345/217/230/346/233/264/346/200/273/347/273/223.md +138 -138
- package/docs//345/217/230/346/233/264/346/227/245/345/277/227.md +50 -50
- package/docs//345/267/245/345/205/267/347/256/241/347/220/206/345/231/250/344/274/230/345/214/226.md +208 -208
- package/docs//345/276/252/347/216/257/345/221/275/344/273/244/350/256/241/345/210/222.md +56 -56
- package/docs//346/226/207/346/241/243/344/270/255/345/277/203.md +140 -140
- package/docs//346/236/266/346/236/204/344/274/230/345/214/226.md +404 -404
- package/docs//346/236/266/346/236/204/346/274/224/350/277/233.md +228 -228
- package/docs//347/211/210/346/234/2542.md +198 -198
- package/docs//347/272/263/350/257/272/350/256/260/345/277/206/350/257/273/345/206/231.md +352 -352
- package/docs//347/273/223/346/236/204.md +339 -339
- package/docs//350/256/241/345/210/222.md +43 -43
- package/docs//350/256/244/347/237/245/345/234/260/345/233/276.md +47 -0
- package/docs//350/256/244/347/237/245/345/234/260/345/233/276/346/236/266/346/236/204/350/215/211/346/241/210.md +600 -600
- package/docs//350/256/260/345/277/206/347/263/273/347/273/237.md +236 -236
- package/docs//350/277/201/347/247/273/346/200/273/347/273/223.md +204 -204
- package/docs//351/207/215/346/236/204/344/273/273/345/212/241.md +181 -181
- package/docs//351/207/215/346/236/204/350/256/241/345/210/222.md +592 -592
- package/package.json +134 -133
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +0 -251
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +0 -123
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +0 -1222
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +0 -158
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +0 -128
- package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +0 -321
- package/docs/loop-usage-examples.md +0 -215
- package/docs/planmode.md +0 -1987
package/README.md
CHANGED
|
@@ -1,267 +1,267 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<pre>
|
|
4
|
-
.-~~~~~~~~~-._ _.-~~~~~~~~~-.
|
|
5
|
-
__.' ~. .~ `.__
|
|
6
|
-
.'// \./ \\`.
|
|
7
|
-
.'// | \\`.
|
|
8
|
-
.'// .-~""""""""""""""-._ | _,-""""""""""""""~-. \\`.
|
|
9
|
-
.'//.-" `-. | .-' "-.\\`.
|
|
10
|
-
.'//______.============-.. \ | / ..-============.______\\`.
|
|
11
|
-
.'______________________________\|/______________________________`.
|
|
12
|
-
</pre>
|
|
13
|
-
|
|
14
|
-
<h1>✎ NanoPencil</h1>
|
|
15
|
-
|
|
16
|
-
<p><strong>The AI Coding Agent That Remembers & Evolves</strong></p>
|
|
17
|
-
|
|
18
|
-
<p>
|
|
19
|
-
<a href="https://www.npmjs.com/package/@pencil-agent/nano-pencil">
|
|
20
|
-
<img src="https://img.shields.io/npm/v/@pencil-agent/nano-pencil.svg?style=flat-square&color=cb3837" alt="npm version">
|
|
21
|
-
</a>
|
|
22
|
-
<a href="https://nodejs.org">
|
|
23
|
-
<img src="https://img.shields.io/node/v/@pencil-agent/nano-pencil.svg?style=flat-square&color=339933" alt="Node.js">
|
|
24
|
-
</a>
|
|
25
|
-
<a href="https://www.npmjs.com/package/@pencil-agent/nano-pencil">
|
|
26
|
-
<img src="https://img.shields.io/npm/dm/@pencil-agent/nano-pencil.svg?style=flat-square&color=cb3837" alt="Downloads">
|
|
27
|
-
</a>
|
|
28
|
-
<img src="https://img.shields.io/badge/TypeScript-5.0+-blue?style=flat-square&color=3178C6" alt="TypeScript">
|
|
29
|
-
<img src="https://img.shields.io/badge/License-GPL--3.0-green?style=flat-square&color=brightgreen" alt="License">
|
|
30
|
-
</p>
|
|
31
|
-
|
|
32
|
-
<p>
|
|
33
|
-
<a href="#-why-nanopencil">Why NanoPencil?</a> •
|
|
34
|
-
<a href="#-features">Features</a> •
|
|
35
|
-
<a href="#-quick-start">Quick Start</a> •
|
|
36
|
-
<a href="#-documentation">Docs</a>
|
|
37
|
-
</p>
|
|
38
|
-
|
|
39
|
-
<p>
|
|
40
|
-
<a href="./README.md"><img src="https://img.shields.io/badge/English-Active-blue?style=flat-square" alt="English"></a>
|
|
41
|
-
<a href="./README_CN.md"><img src="https://img.shields.io/badge/中文-切换-orange?style=flat-square" alt="中文"></a>
|
|
42
|
-
</p>
|
|
43
|
-
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 🌟 Why NanoPencil?
|
|
49
|
-
|
|
50
|
-
> **"The only AI coding assistant that truly learns from you"**
|
|
51
|
-
|
|
52
|
-
NanoPencil isn't just another AI coding tool. It's a **terminal-native AI agent** with **persistent memory** and **evolving personality** — designed for developers who live in the terminal.
|
|
53
|
-
|
|
54
|
-
### What Makes It Different?
|
|
55
|
-
|
|
56
|
-
| | Other Tools | NanoPencil |
|
|
57
|
-
|---|---|---|
|
|
58
|
-
| **Memory** | ❌ Starts fresh every session | ✅ Remembers your projects, preferences, and coding style |
|
|
59
|
-
| **Personality** | ❌ Generic responses | ✅ Evolves a unique personality based on your interactions |
|
|
60
|
-
| **Terminal Native** | ❌ GUI wrappers or plugins | ✅ Pure TUI built for terminal workflows |
|
|
61
|
-
| **Model Freedom** | ❌ Vendor lock-in | ✅ 10+ providers, switch instantly |
|
|
62
|
-
| **Offline Ready** | ❌ Cloud dependent | ✅ Local models via Ollama |
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## ✨ Features
|
|
67
|
-
|
|
68
|
-
### 🧠 Persistent Memory (NanoMem)
|
|
69
|
-
Your projects have context. So should your AI.
|
|
70
|
-
|
|
71
|
-
- **Project Knowledge** — API endpoints, database schemas, architecture decisions
|
|
72
|
-
- **Error Patterns** — Remembers bugs and their solutions
|
|
73
|
-
- **User Preferences** — Coding style, naming conventions, framework choices
|
|
74
|
-
- **Smart Retrieval** — Automatically recalls relevant context when needed
|
|
75
|
-
|
|
76
|
-
### 💫 AI Personality Evolution (NanoSoul)
|
|
77
|
-
Your AI assistant develops its own character.
|
|
78
|
-
|
|
79
|
-
- **Big Five Traits** — Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism
|
|
80
|
-
- **Coding Style** — Verbosity, abstraction level, safety margins
|
|
81
|
-
- **Domain Expertise** — Frontend, Backend, DevOps, AI/ML specializations
|
|
82
|
-
- **Emotional States** — Confidence, curiosity, flow state
|
|
83
|
-
|
|
84
|
-
> *After 50 sessions, your NanoPencil will code differently than anyone else's.*
|
|
85
|
-
|
|
86
|
-
### 🎨 Beautiful TUI
|
|
87
|
-
A terminal interface that feels alive.
|
|
88
|
-
|
|
89
|
-
- **Three Themes** — Dark, Light, and Warm (eye-friendly)
|
|
90
|
-
- **Smooth Animations** — Breathing pencil loader
|
|
91
|
-
- **Intuitive Navigation** — Vim-like keybindings, fuzzy search
|
|
92
|
-
- **Real-time Streaming** — Watch the AI think in real-time
|
|
93
|
-
|
|
94
|
-
### 🔌 MCP Protocol Support
|
|
95
|
-
Extend with the Model Context Protocol.
|
|
96
|
-
|
|
97
|
-
Built-in tools include:
|
|
98
|
-
- 📁 Filesystem operations
|
|
99
|
-
- 🌐 HTTP requests (Fetch)
|
|
100
|
-
- 🎭 Browser automation (Puppeteer)
|
|
101
|
-
- 🗄️ Database queries (SQLite)
|
|
102
|
-
- 🔧 Git operations
|
|
103
|
-
|
|
104
|
-
### 🌐 Multi-Model Support
|
|
105
|
-
Use the best model for each task.
|
|
106
|
-
|
|
107
|
-
- 🇨🇳 **Alibaba DashScope / Token Plan** — Qwen, GLM, MiniMax, DeepSeek text models
|
|
108
|
-
- 🤖 **OpenAI** — GPT-4, GPT-3.5
|
|
109
|
-
- 💬 **Anthropic** — Claude 3 Opus/Sonnet/Haiku
|
|
110
|
-
- 🔍 **Google** — Gemini Pro/Ultra
|
|
111
|
-
- 🏠 **Local** — Ollama (Qwen, Llama, Mistral, etc.)
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## 🚀 Quick Start
|
|
116
|
-
|
|
117
|
-
### Installation
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
npm install -g @pencil-agent/nano-pencil
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### First Run
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
nanopencil
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
1. **Select your model** — Choose from available providers
|
|
130
|
-
2. **Enter API key** — Securely stored in `~/.nanopencil/agent/auth.json`
|
|
131
|
-
3. **Start coding** — Just type what you want to build
|
|
132
|
-
|
|
133
|
-
### Example Session
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
You: Create a JWT authentication middleware for Express
|
|
137
|
-
|
|
138
|
-
AI: [Analyzing project structure...]
|
|
139
|
-
[Creating auth.middleware.ts...]
|
|
140
|
-
[Adding TypeScript types...]
|
|
141
|
-
[Writing tests...]
|
|
142
|
-
|
|
143
|
-
✅ Done! Created:
|
|
144
|
-
- src/middleware/auth.middleware.ts
|
|
145
|
-
- src/types/auth.d.ts
|
|
146
|
-
- tests/auth.middleware.test.ts
|
|
147
|
-
|
|
148
|
-
Features:
|
|
149
|
-
• JWT verification with RS256
|
|
150
|
-
• Refresh token rotation
|
|
151
|
-
• Role-based access control
|
|
152
|
-
• Rate limiting integration
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## 🎮 Usage
|
|
158
|
-
|
|
159
|
-
### Interactive Mode
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
nanopencil # Start new session
|
|
163
|
-
nanopencil -c # Continue last session
|
|
164
|
-
nanopencil -r # Resume from history
|
|
165
|
-
nanopencil -m qwen-max # Use specific model
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Print Mode (Scripts)
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# Single query
|
|
172
|
-
nanopencil -p "Refactor this to use async/await"
|
|
173
|
-
|
|
174
|
-
# Pipe input
|
|
175
|
-
cat bug-report.md | nanopencil -p "Analyze this bug"
|
|
176
|
-
|
|
177
|
-
# Chain commands
|
|
178
|
-
nanopencil -p "Generate API" | nanopencil -p "Write tests for it"
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### Slash Commands
|
|
182
|
-
|
|
183
|
-
| Command | Description |
|
|
184
|
-
|---------|-------------|
|
|
185
|
-
| `/model` | Switch AI model |
|
|
186
|
-
| `/thinking` | Adjust reasoning depth |
|
|
187
|
-
| `/fork` | Branch conversation |
|
|
188
|
-
| `/tree` | Browse session history |
|
|
189
|
-
| `/memory` | View project memories |
|
|
190
|
-
| `/soul` | Check AI personality |
|
|
191
|
-
| `/settings` | Configure preferences |
|
|
192
|
-
| `/export` | Save as HTML |
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## 📊 Comparison
|
|
197
|
-
|
|
198
|
-
| Feature | NanoPencil | Cursor | Claude Code | Aider |
|
|
199
|
-
|---------|:----------:|:------:|:-----------:|:-----:|
|
|
200
|
-
| Terminal Native | ✅ | ❌ | ✅ | ✅ |
|
|
201
|
-
| Persistent Memory | ✅ | ❌ | ❌ | ❌ |
|
|
202
|
-
| AI Personality | ✅ | ❌ | ❌ | ❌ |
|
|
203
|
-
| Session Branching | ✅ | ✅ | ✅ | ❌ |
|
|
204
|
-
| Multi-Model | ✅ | ✅ | ❌ | ✅ |
|
|
205
|
-
| MCP Support | ✅ | ❌ | ✅ | ❌ |
|
|
206
|
-
| Offline Mode | ✅ | ❌ | ❌ | ✅ |
|
|
207
|
-
| Chinese Optimized | ✅ | ❌ | ❌ | ❌ |
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## 🏗️ Architecture Philosophy
|
|
212
|
-
|
|
213
|
-
NanoPencil is built on three pillars:
|
|
214
|
-
|
|
215
|
-
```
|
|
216
|
-
┌─────────────────────────────────────────┐
|
|
217
|
-
│ 🧠 COGNITIVE LAYER │
|
|
218
|
-
│ (Memory + Personality + Context) │
|
|
219
|
-
├─────────────────────────────────────────┤
|
|
220
|
-
│ 🔧 TOOL LAYER │
|
|
221
|
-
│ (File Ops + Bash + Search + MCP) │
|
|
222
|
-
├─────────────────────────────────────────┤
|
|
223
|
-
│ 🎨 INTERFACE LAYER │
|
|
224
|
-
│ (TUI + Themes + Keybindings) │
|
|
225
|
-
└─────────────────────────────────────────┘
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
**Design Principles:**
|
|
229
|
-
- **Terminal First** — No Electron, no browser, pure terminal
|
|
230
|
-
- **Privacy First** — Local storage, no telemetry, your data stays yours
|
|
231
|
-
- **Extensible** — Plugin system for tools, themes, and behaviors
|
|
232
|
-
- **Fast** — Sub-second startup, instant response
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## 📚 Documentation
|
|
237
|
-
|
|
238
|
-
- [Installation Guide](docs/INSTALL.md)
|
|
239
|
-
- [Configuration](docs/CONFIG.md)
|
|
240
|
-
- [Memory System](docs/记忆系统.md)
|
|
241
|
-
- [MCP Guide](docs/MCP集成指南.md)
|
|
242
|
-
- [Keybindings](docs/KEYBINDINGS.md)
|
|
243
|
-
- [Extensions](docs/EXTENSIONS.md)
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## 🌍 Community
|
|
248
|
-
|
|
249
|
-
- 💬 [Discussions](https://github.com/pencil-agent/nano-pencil/discussions)
|
|
250
|
-
- 🐛 [Issues](https://github.com/pencil-agent/nano-pencil/issues)
|
|
251
|
-
- 📝 [Changelog](CHANGELOG.md)
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## 📄 License
|
|
256
|
-
|
|
257
|
-
MIT © [Pencil Agent](https://github.com/pencil-agent)
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
<div align="center">
|
|
262
|
-
|
|
263
|
-
**[⬆ Back to Top](#-nanopencil)**
|
|
264
|
-
|
|
265
|
-
<sub>Built with ❤️ for terminal dwellers everywhere</sub>
|
|
266
|
-
|
|
267
|
-
</div>
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<pre>
|
|
4
|
+
.-~~~~~~~~~-._ _.-~~~~~~~~~-.
|
|
5
|
+
__.' ~. .~ `.__
|
|
6
|
+
.'// \./ \\`.
|
|
7
|
+
.'// | \\`.
|
|
8
|
+
.'// .-~""""""""""""""-._ | _,-""""""""""""""~-. \\`.
|
|
9
|
+
.'//.-" `-. | .-' "-.\\`.
|
|
10
|
+
.'//______.============-.. \ | / ..-============.______\\`.
|
|
11
|
+
.'______________________________\|/______________________________`.
|
|
12
|
+
</pre>
|
|
13
|
+
|
|
14
|
+
<h1>✎ NanoPencil</h1>
|
|
15
|
+
|
|
16
|
+
<p><strong>The AI Coding Agent That Remembers & Evolves</strong></p>
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
<a href="https://www.npmjs.com/package/@pencil-agent/nano-pencil">
|
|
20
|
+
<img src="https://img.shields.io/npm/v/@pencil-agent/nano-pencil.svg?style=flat-square&color=cb3837" alt="npm version">
|
|
21
|
+
</a>
|
|
22
|
+
<a href="https://nodejs.org">
|
|
23
|
+
<img src="https://img.shields.io/node/v/@pencil-agent/nano-pencil.svg?style=flat-square&color=339933" alt="Node.js">
|
|
24
|
+
</a>
|
|
25
|
+
<a href="https://www.npmjs.com/package/@pencil-agent/nano-pencil">
|
|
26
|
+
<img src="https://img.shields.io/npm/dm/@pencil-agent/nano-pencil.svg?style=flat-square&color=cb3837" alt="Downloads">
|
|
27
|
+
</a>
|
|
28
|
+
<img src="https://img.shields.io/badge/TypeScript-5.0+-blue?style=flat-square&color=3178C6" alt="TypeScript">
|
|
29
|
+
<img src="https://img.shields.io/badge/License-GPL--3.0-green?style=flat-square&color=brightgreen" alt="License">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<p>
|
|
33
|
+
<a href="#-why-nanopencil">Why NanoPencil?</a> •
|
|
34
|
+
<a href="#-features">Features</a> •
|
|
35
|
+
<a href="#-quick-start">Quick Start</a> •
|
|
36
|
+
<a href="#-documentation">Docs</a>
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
<p>
|
|
40
|
+
<a href="./README.md"><img src="https://img.shields.io/badge/English-Active-blue?style=flat-square" alt="English"></a>
|
|
41
|
+
<a href="./README_CN.md"><img src="https://img.shields.io/badge/中文-切换-orange?style=flat-square" alt="中文"></a>
|
|
42
|
+
</p>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🌟 Why NanoPencil?
|
|
49
|
+
|
|
50
|
+
> **"The only AI coding assistant that truly learns from you"**
|
|
51
|
+
|
|
52
|
+
NanoPencil isn't just another AI coding tool. It's a **terminal-native AI agent** with **persistent memory** and **evolving personality** — designed for developers who live in the terminal.
|
|
53
|
+
|
|
54
|
+
### What Makes It Different?
|
|
55
|
+
|
|
56
|
+
| | Other Tools | NanoPencil |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| **Memory** | ❌ Starts fresh every session | ✅ Remembers your projects, preferences, and coding style |
|
|
59
|
+
| **Personality** | ❌ Generic responses | ✅ Evolves a unique personality based on your interactions |
|
|
60
|
+
| **Terminal Native** | ❌ GUI wrappers or plugins | ✅ Pure TUI built for terminal workflows |
|
|
61
|
+
| **Model Freedom** | ❌ Vendor lock-in | ✅ 10+ providers, switch instantly |
|
|
62
|
+
| **Offline Ready** | ❌ Cloud dependent | ✅ Local models via Ollama |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## ✨ Features
|
|
67
|
+
|
|
68
|
+
### 🧠 Persistent Memory (NanoMem)
|
|
69
|
+
Your projects have context. So should your AI.
|
|
70
|
+
|
|
71
|
+
- **Project Knowledge** — API endpoints, database schemas, architecture decisions
|
|
72
|
+
- **Error Patterns** — Remembers bugs and their solutions
|
|
73
|
+
- **User Preferences** — Coding style, naming conventions, framework choices
|
|
74
|
+
- **Smart Retrieval** — Automatically recalls relevant context when needed
|
|
75
|
+
|
|
76
|
+
### 💫 AI Personality Evolution (NanoSoul)
|
|
77
|
+
Your AI assistant develops its own character.
|
|
78
|
+
|
|
79
|
+
- **Big Five Traits** — Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism
|
|
80
|
+
- **Coding Style** — Verbosity, abstraction level, safety margins
|
|
81
|
+
- **Domain Expertise** — Frontend, Backend, DevOps, AI/ML specializations
|
|
82
|
+
- **Emotional States** — Confidence, curiosity, flow state
|
|
83
|
+
|
|
84
|
+
> *After 50 sessions, your NanoPencil will code differently than anyone else's.*
|
|
85
|
+
|
|
86
|
+
### 🎨 Beautiful TUI
|
|
87
|
+
A terminal interface that feels alive.
|
|
88
|
+
|
|
89
|
+
- **Three Themes** — Dark, Light, and Warm (eye-friendly)
|
|
90
|
+
- **Smooth Animations** — Breathing pencil loader
|
|
91
|
+
- **Intuitive Navigation** — Vim-like keybindings, fuzzy search
|
|
92
|
+
- **Real-time Streaming** — Watch the AI think in real-time
|
|
93
|
+
|
|
94
|
+
### 🔌 MCP Protocol Support
|
|
95
|
+
Extend with the Model Context Protocol.
|
|
96
|
+
|
|
97
|
+
Built-in tools include:
|
|
98
|
+
- 📁 Filesystem operations
|
|
99
|
+
- 🌐 HTTP requests (Fetch)
|
|
100
|
+
- 🎭 Browser automation (Puppeteer)
|
|
101
|
+
- 🗄️ Database queries (SQLite)
|
|
102
|
+
- 🔧 Git operations
|
|
103
|
+
|
|
104
|
+
### 🌐 Multi-Model Support
|
|
105
|
+
Use the best model for each task.
|
|
106
|
+
|
|
107
|
+
- 🇨🇳 **Alibaba DashScope / Token Plan** — Qwen, GLM, MiniMax, DeepSeek text models
|
|
108
|
+
- 🤖 **OpenAI** — GPT-4, GPT-3.5
|
|
109
|
+
- 💬 **Anthropic** — Claude 3 Opus/Sonnet/Haiku
|
|
110
|
+
- 🔍 **Google** — Gemini Pro/Ultra
|
|
111
|
+
- 🏠 **Local** — Ollama (Qwen, Llama, Mistral, etc.)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🚀 Quick Start
|
|
116
|
+
|
|
117
|
+
### Installation
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npm install -g @pencil-agent/nano-pencil
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### First Run
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
nanopencil
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
1. **Select your model** — Choose from available providers
|
|
130
|
+
2. **Enter API key** — Securely stored in `~/.nanopencil/agent/auth.json`
|
|
131
|
+
3. **Start coding** — Just type what you want to build
|
|
132
|
+
|
|
133
|
+
### Example Session
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
You: Create a JWT authentication middleware for Express
|
|
137
|
+
|
|
138
|
+
AI: [Analyzing project structure...]
|
|
139
|
+
[Creating auth.middleware.ts...]
|
|
140
|
+
[Adding TypeScript types...]
|
|
141
|
+
[Writing tests...]
|
|
142
|
+
|
|
143
|
+
✅ Done! Created:
|
|
144
|
+
- src/middleware/auth.middleware.ts
|
|
145
|
+
- src/types/auth.d.ts
|
|
146
|
+
- tests/auth.middleware.test.ts
|
|
147
|
+
|
|
148
|
+
Features:
|
|
149
|
+
• JWT verification with RS256
|
|
150
|
+
• Refresh token rotation
|
|
151
|
+
• Role-based access control
|
|
152
|
+
• Rate limiting integration
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 🎮 Usage
|
|
158
|
+
|
|
159
|
+
### Interactive Mode
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
nanopencil # Start new session
|
|
163
|
+
nanopencil -c # Continue last session
|
|
164
|
+
nanopencil -r # Resume from history
|
|
165
|
+
nanopencil -m qwen-max # Use specific model
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Print Mode (Scripts)
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Single query
|
|
172
|
+
nanopencil -p "Refactor this to use async/await"
|
|
173
|
+
|
|
174
|
+
# Pipe input
|
|
175
|
+
cat bug-report.md | nanopencil -p "Analyze this bug"
|
|
176
|
+
|
|
177
|
+
# Chain commands
|
|
178
|
+
nanopencil -p "Generate API" | nanopencil -p "Write tests for it"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Slash Commands
|
|
182
|
+
|
|
183
|
+
| Command | Description |
|
|
184
|
+
|---------|-------------|
|
|
185
|
+
| `/model` | Switch AI model |
|
|
186
|
+
| `/thinking` | Adjust reasoning depth |
|
|
187
|
+
| `/fork` | Branch conversation |
|
|
188
|
+
| `/tree` | Browse session history |
|
|
189
|
+
| `/memory` | View project memories |
|
|
190
|
+
| `/soul` | Check AI personality |
|
|
191
|
+
| `/settings` | Configure preferences |
|
|
192
|
+
| `/export` | Save as HTML |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 📊 Comparison
|
|
197
|
+
|
|
198
|
+
| Feature | NanoPencil | Cursor | Claude Code | Aider |
|
|
199
|
+
|---------|:----------:|:------:|:-----------:|:-----:|
|
|
200
|
+
| Terminal Native | ✅ | ❌ | ✅ | ✅ |
|
|
201
|
+
| Persistent Memory | ✅ | ❌ | ❌ | ❌ |
|
|
202
|
+
| AI Personality | ✅ | ❌ | ❌ | ❌ |
|
|
203
|
+
| Session Branching | ✅ | ✅ | ✅ | ❌ |
|
|
204
|
+
| Multi-Model | ✅ | ✅ | ❌ | ✅ |
|
|
205
|
+
| MCP Support | ✅ | ❌ | ✅ | ❌ |
|
|
206
|
+
| Offline Mode | ✅ | ❌ | ❌ | ✅ |
|
|
207
|
+
| Chinese Optimized | ✅ | ❌ | ❌ | ❌ |
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 🏗️ Architecture Philosophy
|
|
212
|
+
|
|
213
|
+
NanoPencil is built on three pillars:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
┌─────────────────────────────────────────┐
|
|
217
|
+
│ 🧠 COGNITIVE LAYER │
|
|
218
|
+
│ (Memory + Personality + Context) │
|
|
219
|
+
├─────────────────────────────────────────┤
|
|
220
|
+
│ 🔧 TOOL LAYER │
|
|
221
|
+
│ (File Ops + Bash + Search + MCP) │
|
|
222
|
+
├─────────────────────────────────────────┤
|
|
223
|
+
│ 🎨 INTERFACE LAYER │
|
|
224
|
+
│ (TUI + Themes + Keybindings) │
|
|
225
|
+
└─────────────────────────────────────────┘
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Design Principles:**
|
|
229
|
+
- **Terminal First** — No Electron, no browser, pure terminal
|
|
230
|
+
- **Privacy First** — Local storage, no telemetry, your data stays yours
|
|
231
|
+
- **Extensible** — Plugin system for tools, themes, and behaviors
|
|
232
|
+
- **Fast** — Sub-second startup, instant response
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 📚 Documentation
|
|
237
|
+
|
|
238
|
+
- [Installation Guide](docs/INSTALL.md)
|
|
239
|
+
- [Configuration](docs/CONFIG.md)
|
|
240
|
+
- [Memory System](docs/记忆系统.md)
|
|
241
|
+
- [MCP Guide](docs/MCP集成指南.md)
|
|
242
|
+
- [Keybindings](docs/KEYBINDINGS.md)
|
|
243
|
+
- [Extensions](docs/EXTENSIONS.md)
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🌍 Community
|
|
248
|
+
|
|
249
|
+
- 💬 [Discussions](https://github.com/pencil-agent/nano-pencil/discussions)
|
|
250
|
+
- 🐛 [Issues](https://github.com/pencil-agent/nano-pencil/issues)
|
|
251
|
+
- 📝 [Changelog](CHANGELOG.md)
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## 📄 License
|
|
256
|
+
|
|
257
|
+
MIT © [Pencil Agent](https://github.com/pencil-agent)
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
<div align="center">
|
|
262
|
+
|
|
263
|
+
**[⬆ Back to Top](#-nanopencil)**
|
|
264
|
+
|
|
265
|
+
<sub>Built with ❤️ for terminal dwellers everywhere</sub>
|
|
266
|
+
|
|
267
|
+
</div>
|
package/dist/build-meta.json
CHANGED