npcsh 1.1.20__py3-none-any.whl → 1.1.22__py3-none-any.whl
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.
- npcsh/_state.py +15 -76
- npcsh/benchmark/npcsh_agent.py +22 -14
- npcsh/benchmark/templates/install-npcsh.sh.j2 +2 -2
- npcsh/diff_viewer.py +3 -3
- npcsh/mcp_server.py +9 -1
- npcsh/npc_team/alicanto.npc +12 -6
- npcsh/npc_team/corca.npc +0 -1
- npcsh/npc_team/frederic.npc +2 -3
- npcsh/npc_team/jinxs/lib/core/compress.jinx +373 -85
- npcsh/npc_team/jinxs/lib/core/edit_file.jinx +83 -61
- npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +17 -6
- npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +17 -6
- npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +52 -14
- npcsh/npc_team/jinxs/{bin → lib/utils}/benchmark.jinx +2 -2
- npcsh/npc_team/jinxs/{bin → lib/utils}/jinxs.jinx +12 -12
- npcsh/npc_team/jinxs/{bin → lib/utils}/models.jinx +7 -7
- npcsh/npc_team/jinxs/{bin → lib/utils}/setup.jinx +6 -6
- npcsh/npc_team/jinxs/modes/alicanto.jinx +1633 -295
- npcsh/npc_team/jinxs/modes/arxiv.jinx +5 -5
- npcsh/npc_team/jinxs/modes/build.jinx +378 -0
- npcsh/npc_team/jinxs/modes/config_tui.jinx +300 -0
- npcsh/npc_team/jinxs/modes/convene.jinx +597 -0
- npcsh/npc_team/jinxs/modes/corca.jinx +777 -387
- npcsh/npc_team/jinxs/modes/git.jinx +795 -0
- {npcsh-1.1.20.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/modes}/kg.jinx +82 -15
- npcsh/npc_team/jinxs/modes/memories.jinx +414 -0
- npcsh/npc_team/jinxs/{bin → modes}/nql.jinx +10 -21
- npcsh/npc_team/jinxs/modes/papers.jinx +578 -0
- npcsh/npc_team/jinxs/modes/plonk.jinx +503 -308
- npcsh/npc_team/jinxs/modes/reattach.jinx +3 -3
- npcsh/npc_team/jinxs/modes/spool.jinx +3 -3
- npcsh/npc_team/jinxs/{bin → modes}/team.jinx +12 -12
- npcsh/npc_team/jinxs/modes/vixynt.jinx +388 -0
- npcsh/npc_team/jinxs/modes/wander.jinx +454 -181
- npcsh/npc_team/jinxs/modes/yap.jinx +630 -182
- npcsh/npc_team/kadiefa.npc +2 -1
- npcsh/npc_team/sibiji.npc +3 -3
- npcsh/npcsh.py +112 -47
- npcsh/routes.py +4 -1
- npcsh/salmon_simulation.py +0 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/alicanto.jinx +1694 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/alicanto.npc +12 -6
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/arxiv.jinx +5 -5
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/benchmark.jinx +2 -2
- npcsh-1.1.22.data/data/npcsh/npc_team/build.jinx +378 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/compress.jinx +428 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/config_tui.jinx +300 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/corca.jinx +820 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/corca.npc +0 -1
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/db_search.jinx +17 -6
- npcsh-1.1.22.data/data/npcsh/npc_team/edit_file.jinx +119 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/file_search.jinx +17 -6
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/frederic.npc +2 -3
- npcsh-1.1.22.data/data/npcsh/npc_team/git.jinx +795 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/jinxs.jinx +12 -12
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/kadiefa.npc +2 -1
- {npcsh/npc_team/jinxs/bin → npcsh-1.1.22.data/data/npcsh/npc_team}/kg.jinx +82 -15
- npcsh-1.1.22.data/data/npcsh/npc_team/memories.jinx +414 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/models.jinx +7 -7
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/nql.jinx +10 -21
- npcsh-1.1.22.data/data/npcsh/npc_team/papers.jinx +578 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/plonk.jinx +574 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/reattach.jinx +3 -3
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/setup.jinx +6 -6
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sibiji.npc +3 -3
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/spool.jinx +3 -3
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/team.jinx +12 -12
- npcsh-1.1.22.data/data/npcsh/npc_team/vixynt.jinx +388 -0
- npcsh-1.1.22.data/data/npcsh/npc_team/wander.jinx +728 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/web_search.jinx +52 -14
- npcsh-1.1.22.data/data/npcsh/npc_team/yap.jinx +716 -0
- {npcsh-1.1.20.dist-info → npcsh-1.1.22.dist-info}/METADATA +246 -281
- npcsh-1.1.22.dist-info/RECORD +240 -0
- npcsh-1.1.22.dist-info/entry_points.txt +11 -0
- npcsh/npc_team/jinxs/bin/config_tui.jinx +0 -300
- npcsh/npc_team/jinxs/bin/memories.jinx +0 -317
- npcsh/npc_team/jinxs/bin/vixynt.jinx +0 -122
- npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx +0 -418
- npcsh/npc_team/jinxs/lib/core/search/mem_review.jinx +0 -73
- npcsh/npc_team/jinxs/lib/core/search/mem_search.jinx +0 -388
- npcsh/npc_team/jinxs/lib/core/search.jinx +0 -54
- npcsh/npc_team/jinxs/lib/research/paper_search.jinx +0 -412
- npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +0 -386
- npcsh/npc_team/jinxs/lib/utils/build.jinx +0 -65
- npcsh/npc_team/plonkjr.npc +0 -23
- npcsh-1.1.20.data/data/npcsh/npc_team/alicanto.jinx +0 -356
- npcsh-1.1.20.data/data/npcsh/npc_team/build.jinx +0 -65
- npcsh-1.1.20.data/data/npcsh/npc_team/compress.jinx +0 -140
- npcsh-1.1.20.data/data/npcsh/npc_team/config_tui.jinx +0 -300
- npcsh-1.1.20.data/data/npcsh/npc_team/corca.jinx +0 -430
- npcsh-1.1.20.data/data/npcsh/npc_team/edit_file.jinx +0 -97
- npcsh-1.1.20.data/data/npcsh/npc_team/kg_search.jinx +0 -418
- npcsh-1.1.20.data/data/npcsh/npc_team/mem_review.jinx +0 -73
- npcsh-1.1.20.data/data/npcsh/npc_team/mem_search.jinx +0 -388
- npcsh-1.1.20.data/data/npcsh/npc_team/memories.jinx +0 -317
- npcsh-1.1.20.data/data/npcsh/npc_team/paper_search.jinx +0 -412
- npcsh-1.1.20.data/data/npcsh/npc_team/plonk.jinx +0 -379
- npcsh-1.1.20.data/data/npcsh/npc_team/plonkjr.npc +0 -23
- npcsh-1.1.20.data/data/npcsh/npc_team/search.jinx +0 -54
- npcsh-1.1.20.data/data/npcsh/npc_team/semantic_scholar.jinx +0 -386
- npcsh-1.1.20.data/data/npcsh/npc_team/vixynt.jinx +0 -122
- npcsh-1.1.20.data/data/npcsh/npc_team/wander.jinx +0 -455
- npcsh-1.1.20.data/data/npcsh/npc_team/yap.jinx +0 -268
- npcsh-1.1.20.dist-info/RECORD +0 -248
- npcsh-1.1.20.dist-info/entry_points.txt +0 -25
- /npcsh/npc_team/jinxs/lib/{orchestration → core}/convene.jinx +0 -0
- /npcsh/npc_team/jinxs/lib/{orchestration → core}/delegate.jinx +0 -0
- /npcsh/npc_team/jinxs/{bin → lib/core}/sample.jinx +0 -0
- /npcsh/npc_team/jinxs/lib/{core → utils}/chat.jinx +0 -0
- /npcsh/npc_team/jinxs/lib/{core → utils}/cmd.jinx +0 -0
- /npcsh/npc_team/jinxs/{bin → lib/utils}/sync.jinx +0 -0
- /npcsh/npc_team/jinxs/{bin → modes}/roll.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/add_tab.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/alicanto.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/browser_action.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/browser_screenshot.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/chat.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/click.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/close_browser.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/close_pane.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/close_tab.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/cmd.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/compile.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/confirm.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/convene.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/corca.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/corca_example.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/delegate.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/focus_pane.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/frederic4.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/guac.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/guac.npc +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/guac.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/help.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/incognide.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/init.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/kadiefa.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/key_press.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/launch_app.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/list_panes.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/load_file.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/navigate.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/notify.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/open_browser.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/open_pane.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/ots.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/paste.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/plonk.npc +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/plonk.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/plonkjr.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/pti.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/python.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/read_pane.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/roll.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/run_terminal.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sample.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/screenshot.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/send_message.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/serve.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/set.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sh.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/shh.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sibiji.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sleep.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/split_pane.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/spool.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sql.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/switch.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/switch_npc.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/switch_tab.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/switches.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/sync.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/teamviz.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/trigger.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/type_text.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/usage.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/verbose.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/wait.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/write_file.jinx +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/yap.png +0 -0
- {npcsh-1.1.20.data → npcsh-1.1.22.data}/data/npcsh/npc_team/zen_mode.jinx +0 -0
- {npcsh-1.1.20.dist-info → npcsh-1.1.22.dist-info}/WHEEL +0 -0
- {npcsh-1.1.20.dist-info → npcsh-1.1.22.dist-info}/licenses/LICENSE +0 -0
- {npcsh-1.1.20.dist-info → npcsh-1.1.22.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: npcsh
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.22
|
|
4
4
|
Summary: npcsh is a command-line toolkit for using AI agents in novel ways.
|
|
5
5
|
Home-page: https://github.com/NPC-Worldwide/npcsh
|
|
6
6
|
Author: Christopher Agostino
|
|
@@ -47,6 +47,7 @@ Requires-Dist: mcp
|
|
|
47
47
|
Provides-Extra: lite
|
|
48
48
|
Requires-Dist: anthropic; extra == "lite"
|
|
49
49
|
Requires-Dist: openai; extra == "lite"
|
|
50
|
+
Requires-Dist: ollama; extra == "lite"
|
|
50
51
|
Requires-Dist: google-generativeai; extra == "lite"
|
|
51
52
|
Requires-Dist: google-genai; extra == "lite"
|
|
52
53
|
Provides-Extra: local
|
|
@@ -72,6 +73,7 @@ Requires-Dist: terminal-bench; extra == "bench"
|
|
|
72
73
|
Provides-Extra: all
|
|
73
74
|
Requires-Dist: anthropic; extra == "all"
|
|
74
75
|
Requires-Dist: openai; extra == "all"
|
|
76
|
+
Requires-Dist: ollama; extra == "all"
|
|
75
77
|
Requires-Dist: google-generativeai; extra == "all"
|
|
76
78
|
Requires-Dist: google-genai; extra == "all"
|
|
77
79
|
Requires-Dist: sentence_transformers; extra == "all"
|
|
@@ -108,46 +110,31 @@ Dynamic: summary
|
|
|
108
110
|
|
|
109
111
|
# npcsh
|
|
110
112
|
|
|
111
|
-
The NPC shell (`npcsh`) makes the most of multi-modal LLMs and agents through a powerful set of simple slash
|
|
113
|
+
The NPC shell (`npcsh`) makes the most of multi-modal LLMs and agents through a powerful set of simple slash commands and novel interactive modes, all from the comfort of the command line. Build teams of agents and schedule them on jobs, engineer context, and design custom interaction modes and Jinja Execution templates (Jinxs) for you and your agents to invoke, all managed scalably for organizations of any size through the NPC data layer.
|
|
112
114
|
|
|
113
115
|
To get started:
|
|
114
|
-
For users who want to mainly use models through APIs (`ollama`, `gemini`, `kimi`, `grok`, `deepseek`, `anthropic`, `openai`, `mistral`, or any others provided by litellm )
|
|
115
116
|
```bash
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
For users who want to use and fine-tune local models (this installs `diffusers`/`transformers`/`torch` stack so it is big):
|
|
117
|
+
# API providers (ollama, gemini, kimi, grok, deepseek, anthropic, openai, mistral, etc.)
|
|
118
|
+
pip install 'npcsh[lite]'
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
# Local models (diffusers/transformers/torch — large install)
|
|
121
121
|
pip install 'npcsh[local]'
|
|
122
|
-
```
|
|
123
|
-
|
|
124
122
|
|
|
125
|
-
|
|
126
|
-
```bash
|
|
123
|
+
# Voice mode (see OS-specific audio library instructions below)
|
|
127
124
|
pip install 'npcsh[yap]'
|
|
128
|
-
```
|
|
129
125
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
npcsh
|
|
126
|
+
# Everything
|
|
127
|
+
pip install 'npcsh[all]'
|
|
133
128
|
```
|
|
134
|
-
and you will enter the NPC shell.
|
|
135
|
-
|
|
136
|
-
If you do not have any local models
|
|
137
129
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
Additionally, the pip installation includes the following CLI tools available in bash: `npc` cli, `wander`, `spool`, `yap`, and `nql`. Bin jinxs in `npc_team/jinxs/bin/` are automatically registered as CLI commands.
|
|
130
|
+
Once installed, run `npcsh` to enter the NPC shell. The pip installation also provides the CLI tools `npc`, `wander`, `spool`, `yap`, and `nql` in your shell. Bin jinxs in `npc_team/jinxs/bin/` are automatically registered as additional CLI commands.
|
|
141
131
|
|
|
142
132
|
|
|
143
133
|
# Usage
|
|
144
|
-
- Get help with a task:
|
|
134
|
+
- Get help with a task:
|
|
145
135
|
```bash
|
|
146
|
-
npcsh>can you help me identify what process is listening on port 5337?
|
|
136
|
+
npcsh>can you help me identify what process is listening on port 5337?
|
|
147
137
|
```
|
|
148
|
-
<p align="center">
|
|
149
|
-
<img src="https://raw.githubusercontent.com/npc-worldwide/npcsh/main/test_data/port5337.png" alt="example of running npcsh to check what processes are listening on port 5337", width=600>
|
|
150
|
-
</p>
|
|
151
138
|
|
|
152
139
|
- Edit files
|
|
153
140
|
```bash
|
|
@@ -155,68 +142,70 @@ Additionally, the pip installation includes the following CLI tools available in
|
|
|
155
142
|
```
|
|
156
143
|
|
|
157
144
|
|
|
158
|
-
- **Search**
|
|
159
|
-
- search the web
|
|
145
|
+
- **Search & Knowledge**
|
|
160
146
|
```bash
|
|
161
|
-
/
|
|
162
|
-
|
|
147
|
+
/web_search "cerulean city" # Web search
|
|
148
|
+
/db_search "query" # Database search
|
|
149
|
+
/file_search "pattern" # File search
|
|
150
|
+
/memories # Interactive memory browser TUI
|
|
151
|
+
/kg # Interactive knowledge graph TUI
|
|
152
|
+
/kg sleep # Evolve the knowledge graph
|
|
153
|
+
/kg dream # Creative synthesis across domains
|
|
154
|
+
/nql # Database query TUI
|
|
163
155
|
```
|
|
164
156
|
<p align="center">
|
|
165
|
-
<img src="
|
|
157
|
+
<img src="gh_images/Screenshot%20from%202026-01-29%2015-02-52.png" alt="Web search results", width=600>
|
|
158
|
+
</p>
|
|
159
|
+
<p align="center">
|
|
160
|
+
<img src="gh_images/kg_facts_viewer.png" alt="Knowledge Graph TUI", width=500>
|
|
161
|
+
</p>
|
|
162
|
+
<p align="center">
|
|
163
|
+
<img src="gh_images/nql_menu.png" alt="NQL data browser", width=500>
|
|
164
|
+
<img src="gh_images/nql_table.png" alt="NQL table viewer", width=500>
|
|
166
165
|
</p>
|
|
167
|
-
|
|
168
|
-
- search approved memories
|
|
169
|
-
```bash
|
|
170
|
-
/search query="how to deploy python apps" memory=true
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
- search the knowledge graph
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
/search query="user preferences for database" kg=true
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
- execute a RAG search across files
|
|
180
166
|
|
|
181
|
-
|
|
182
|
-
/search --rag -f ~/docs/api.md,~/docs/config.yaml "authentication setup"
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
- brainblast search (searches many keyword combinations)
|
|
167
|
+
- **Computer Use**
|
|
186
168
|
|
|
187
169
|
```bash
|
|
188
|
-
/
|
|
170
|
+
/plonk 'find out the latest news on cnn' gemma3:12b ollama
|
|
189
171
|
```
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
/search query="family vacations" sprovider="perplexity"
|
|
195
|
-
```
|
|
172
|
+
<p align="center">
|
|
173
|
+
<img src="gh_images/plonk.png" alt="Plonk GUI automation TUI", width=500>
|
|
174
|
+
</p>
|
|
196
175
|
|
|
197
|
-
- **
|
|
176
|
+
- **Generate Images with Vixynt**
|
|
198
177
|
|
|
199
178
|
```bash
|
|
200
|
-
/
|
|
179
|
+
/vixynt
|
|
201
180
|
```
|
|
181
|
+
<p align="center">
|
|
182
|
+
<img src="gh_images/vixynt.png" alt="Vixynt Image Creation Studio", width=500>
|
|
183
|
+
</p>
|
|
202
184
|
|
|
203
|
-
-
|
|
185
|
+
- Generate images directly
|
|
204
186
|
```bash
|
|
205
187
|
/vixynt 'generate an image of a rabbit eating ham in the brink of dawn' model='gpt-image-1' provider='openai'
|
|
206
188
|
```
|
|
207
189
|
<p align="center">
|
|
208
|
-
<img src="https://raw.githubusercontent.com/npc-worldwide/npcsh/main/test_data/rabbit.PNG" alt="a rabbit eating ham in the bring of dawn", width=
|
|
190
|
+
<img src="https://raw.githubusercontent.com/npc-worldwide/npcsh/main/test_data/rabbit.PNG" alt="a rabbit eating ham in the bring of dawn", width=350>
|
|
209
191
|
</p>
|
|
210
|
-
- **Generate
|
|
192
|
+
- **Generate Videos**
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
/roll
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
- Generate videos directly
|
|
199
|
+
|
|
211
200
|
```bash
|
|
212
201
|
/roll 'generate a video of a hat riding a dog' veo-3.1-fast-generate-preview gemini
|
|
213
202
|
```
|
|
214
203
|
|
|
215
204
|
<p align="center">
|
|
216
|
-
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/test_data/hatridingdog.gif" alt="video of a hat riding a dog", width=
|
|
205
|
+
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/test_data/hatridingdog.gif" alt="video of a hat riding a dog", width=350>
|
|
217
206
|
</p>
|
|
218
207
|
|
|
219
|
-
- **Serve an NPC Team**
|
|
208
|
+
- **Serve an NPC Team**
|
|
220
209
|
```bash
|
|
221
210
|
/serve --port 5337 --cors='http://localhost:5137/'
|
|
222
211
|
```
|
|
@@ -233,42 +222,20 @@ Additionally, the pip installation includes the following CLI tools available in
|
|
|
233
222
|
```bash
|
|
234
223
|
/ots
|
|
235
224
|
```
|
|
236
|
-
- **
|
|
225
|
+
- **MCP-powered agentic shell**: full tabbed TUI with chat, tool management, and server controls.
|
|
237
226
|
```bash
|
|
238
|
-
/corca
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
- **Build an NPC Team**:
|
|
242
|
-
|
|
243
|
-
``` bash
|
|
244
|
-
npc build flask --output ./dist --port 5337
|
|
245
|
-
npc build docker --output ./deploy
|
|
246
|
-
npc build cli --output ./bin
|
|
247
|
-
npc build static --api_url https://api.example.com
|
|
227
|
+
/corca
|
|
228
|
+
/corca mcp_server_path=/path/to/server.py
|
|
248
229
|
```
|
|
249
230
|
|
|
250
|
-
- **
|
|
251
|
-
Run SQL models with embedded AI transformations using NPC agents:
|
|
231
|
+
- **Build an NPC Team**: Generate deployment artifacts for your team.
|
|
252
232
|
```bash
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
nql
|
|
258
|
-
|
|
259
|
-
# Run a specific model
|
|
260
|
-
nql model=daily_summary
|
|
261
|
-
|
|
262
|
-
# Schedule with cron (runs daily at 6am)
|
|
263
|
-
nql install_cron="0 6 * * *"
|
|
233
|
+
/build target=flask outdir=./dist port=5337
|
|
234
|
+
/build target=docker outdir=./deploy
|
|
235
|
+
/build target=cli outdir=./bin
|
|
236
|
+
/build target=static outdir=./site
|
|
264
237
|
```
|
|
265
238
|
|
|
266
|
-
- **Visualize Team Structure**:
|
|
267
|
-
```bash
|
|
268
|
-
npc teamviz save=team_structure.png
|
|
269
|
-
```
|
|
270
|
-
Generates network and ordered views showing NPCs, jinxs, and their relationships.
|
|
271
|
-
|
|
272
239
|
# NPC Data Layer
|
|
273
240
|
|
|
274
241
|
The core of npcsh's capabilities is powered by the NPC Data Layer. Upon initialization, a user will be prompted to make a team in the current directory or to use a global team stored in `~/.npcsh/` which houses the NPC team with its jinxs, models, contexts, assembly lines. By implementing these components as simple data structures, users can focus on tweaking the relevant parts of their multi-agent systems.
|
|
@@ -306,15 +273,19 @@ jinxs:
|
|
|
306
273
|
- lib/core/python
|
|
307
274
|
- lib/core/sh
|
|
308
275
|
- lib/core/edit_file
|
|
309
|
-
- lib/core/
|
|
276
|
+
- lib/core/load_file
|
|
310
277
|
```
|
|
311
278
|
|
|
312
279
|
When an NPC is invoked, they can only use the jinxs assigned to them. This creates **specialization**:
|
|
313
|
-
- `corca` has coding tools (python, sh, edit_file)
|
|
314
|
-
- `plonk` has browser automation (browser_action, screenshot)
|
|
315
|
-
- `alicanto` has research tools (
|
|
280
|
+
- `corca` has coding tools (python, sh, edit_file, load_file)
|
|
281
|
+
- `plonk` has browser automation (browser_action, screenshot, click)
|
|
282
|
+
- `alicanto` has research tools (python, sh, load_file)
|
|
316
283
|
- `frederic` has generation tools (vixynt, roll, sample)
|
|
317
284
|
|
|
285
|
+
<p align="center">
|
|
286
|
+
<img src="gh_images/team_npc.png" alt="NPC team browser", width=700>
|
|
287
|
+
</p>
|
|
288
|
+
|
|
318
289
|
The forenpc (orchestrator) can delegate to any team member based on their specialization.
|
|
319
290
|
|
|
320
291
|
## Delegation with Review Loop
|
|
@@ -347,6 +318,15 @@ The `/delegate` jinx sends a task to another NPC with automatic review and feedb
|
|
|
347
318
|
task complete
|
|
348
319
|
```
|
|
349
320
|
|
|
321
|
+
## Deep Research with Alicanto
|
|
322
|
+
|
|
323
|
+
The `/alicanto` mode runs multi-agent deep research — generates hypotheses, assigns persona-based sub-agents, runs iterative tool-calling loops, and synthesizes findings.
|
|
324
|
+
|
|
325
|
+
<p align="center">
|
|
326
|
+
<img src="gh_images/alicanto.png" alt="Alicanto deep research mode", width=500>
|
|
327
|
+
<img src="gh_images/alicanto_2.png" alt="Alicanto execution phase", width=500>
|
|
328
|
+
</p>
|
|
329
|
+
|
|
350
330
|
## Convening Multi-NPC Discussions
|
|
351
331
|
|
|
352
332
|
The `/convene` jinx brings multiple NPCs together for a structured discussion:
|
|
@@ -391,6 +371,10 @@ This generates two views:
|
|
|
391
371
|
|
|
392
372
|
Shared jinxs (like `python` used by 7 NPCs) appear with thicker connection bundles, helping you identify common capabilities and potential consolidation opportunities.
|
|
393
373
|
|
|
374
|
+
<p align="center">
|
|
375
|
+
<img src="gh_images/teamviz.png" alt="Team structure visualization", width=700>
|
|
376
|
+
</p>
|
|
377
|
+
|
|
394
378
|
# NQL - SQL Models with AI Functions
|
|
395
379
|
|
|
396
380
|
NQL (NPC Query Language) enables AI-powered data transformations directly in SQL, similar to dbt but with embedded LLM calls. Create `.sql` files in `npc_team/models/` that combine standard SQL with `nql.*` AI function calls, then run them on a schedule to build analytical tables enriched with AI insights.
|
|
@@ -550,93 +534,115 @@ The NPC responds using their persona and available jinxs, then control returns t
|
|
|
550
534
|
|
|
551
535
|
| NPC | Specialty | Key Jinxs |
|
|
552
536
|
|-----|-----------|-----------|
|
|
553
|
-
| `sibiji` | Orchestrator/coordinator | delegate, convene,
|
|
554
|
-
| `corca` | Coding and development | python, sh, edit_file,
|
|
555
|
-
| `plonk` | Browser/GUI automation | browser_action, screenshot, click |
|
|
556
|
-
| `alicanto` | Research and analysis |
|
|
557
|
-
| `frederic` | Math, physics, music | python, vixynt, roll, sample
|
|
558
|
-
| `guac` | General assistant | python, sh,
|
|
559
|
-
| `kadiefa` | Creative generation | vixynt
|
|
537
|
+
| `sibiji` | Orchestrator/coordinator | delegate, convene, python, sh |
|
|
538
|
+
| `corca` | Coding and development | python, sh, edit_file, load_file |
|
|
539
|
+
| `plonk` | Browser/GUI automation | browser_action, screenshot, click, key_press |
|
|
540
|
+
| `alicanto` | Research and analysis | python, sh, load_file |
|
|
541
|
+
| `frederic` | Math, physics, music | python, vixynt, roll, sample |
|
|
542
|
+
| `guac` | General assistant | python, sh, edit_file, load_file |
|
|
543
|
+
| `kadiefa` | Creative generation | vixynt |
|
|
544
|
+
|
|
545
|
+
<p align="center">
|
|
546
|
+
<img src="gh_images/npc_menu.png" alt="NPC menu", width=700>
|
|
547
|
+
</p>
|
|
560
548
|
|
|
561
549
|
# Jinxs (Macros/Tools)
|
|
562
550
|
|
|
563
|
-
Jinxs are reusable tools that
|
|
551
|
+
Jinxs are reusable tools that users and agents can invoke. They're activated with `/<jinx_name> ...` in npcsh or via the `npc` CLI in bash. For converting any `/<command>` in npcsh to bash, replace `/` with `npc `:
|
|
564
552
|
|
|
565
553
|
```bash
|
|
566
554
|
# In npcsh:
|
|
567
|
-
/
|
|
555
|
+
/sample "tell me a story about a sunset over the mountains"
|
|
568
556
|
|
|
569
557
|
# In bash:
|
|
570
|
-
npc
|
|
558
|
+
npc sample "a sunset over mountains"
|
|
571
559
|
```
|
|
572
560
|
|
|
573
|
-
##
|
|
561
|
+
## All Commands
|
|
574
562
|
|
|
575
|
-
### Orchestration & Research
|
|
576
563
|
| Command | Description |
|
|
577
564
|
|---------|-------------|
|
|
578
|
-
| `/alicanto` |
|
|
579
|
-
| `/
|
|
580
|
-
| `/
|
|
581
|
-
| `/
|
|
565
|
+
| `/alicanto` | Multi-agent deep research — hypotheses, persona sub-agents, paper writing |
|
|
566
|
+
| `/corca` | MCP-powered agentic shell — chat, tool management, server controls |
|
|
567
|
+
| `/convene` | Multi-NPC structured discussion with live trains of thought |
|
|
568
|
+
| `/spool` | Chat session with fresh context, file attachments, and RAG |
|
|
569
|
+
| `/pti` | Pardon-the-interruption reasoning mode |
|
|
570
|
+
| `/plonk` | GUI automation with vision |
|
|
571
|
+
| `/wander` | Exploratory thinking with temperature shifts |
|
|
572
|
+
| `/yap` | Voice chat — continuous VAD listening, auto-transcribe, TTS |
|
|
573
|
+
| `/guac` | Interactive Python REPL with LLM code generation |
|
|
574
|
+
| `/kg` | Knowledge graph browser — facts, concepts, links, search, graph |
|
|
575
|
+
| `/kg sleep` | Evolve knowledge graph through consolidation |
|
|
576
|
+
| `/kg dream` | Creative synthesis across KG domains |
|
|
577
|
+
| `/memories` | Memory browser — browse, approve, reject, filter by status |
|
|
578
|
+
| `/nql` | Database browser and NQL SQL model runner |
|
|
579
|
+
| `/papers` | Multi-platform research paper browser |
|
|
580
|
+
| `/arxiv` | ArXiv paper browser |
|
|
581
|
+
| `/git` | Git integration TUI |
|
|
582
|
+
| `/build` | Build team to deployable format (flask, docker, cli, static) |
|
|
583
|
+
| `/team` | Team config browser — context, NPCs, jinxs |
|
|
584
|
+
| `/config_tui` | Interactive config editor |
|
|
585
|
+
| `/reattach` | Resume previous conversation sessions |
|
|
586
|
+
| `/delegate` | Delegate task to NPC with review loop |
|
|
587
|
+
| `/web_search` | Web search |
|
|
588
|
+
| `/db_search` | Database search |
|
|
589
|
+
| `/file_search` | File search |
|
|
590
|
+
| `/vixynt` | Generate/edit images |
|
|
591
|
+
| `/roll` | Generate videos |
|
|
592
|
+
| `/sample` | Context-free LLM prompt |
|
|
593
|
+
| `/serve` | Serve NPC team as API with OpenAI-compatible endpoints |
|
|
594
|
+
| `/compile` | Compile NPC profiles |
|
|
595
|
+
| `/set` | Set config values — `/set model gemma3:4b`, `/set provider ollama` |
|
|
596
|
+
| `/teamviz` | Visualize team structure |
|
|
597
|
+
| `/ots` | Screenshot analysis |
|
|
598
|
+
| `/models` | Browse available models |
|
|
599
|
+
| `/chat` | Switch to chat mode |
|
|
600
|
+
| `/cmd` | Switch to command mode |
|
|
601
|
+
| `/switch` | Switch NPC |
|
|
602
|
+
| `/sync` | Sync npc_team files from repo to home |
|
|
603
|
+
|
|
604
|
+
Most commands launch full-screen TUIs — just type and interact. For CLI usage with `npc`, common flags include `--model (-mo)`, `--provider (-pr)`, `--npc (-np)`, and `--temperature (-t)`. Run `npc --help` for the full list.
|
|
605
|
+
|
|
606
|
+
### `/wander` — Creative Exploration
|
|
607
|
+
Wander mode shifts the model's temperature up and down as it explores a problem, producing divergent ideas followed by convergent synthesis. The live TUI dashboard shows the current temperature, accumulated thoughts, and a running summary.
|
|
582
608
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
| `/vixynt` | Generate/edit images. Usage: `/vixynt 'description' --igmodel gpt-image-1 --igprovider openai` |
|
|
587
|
-
| `/roll` | Generate videos. Usage: `/roll 'description' --vgmodel veo-3.1-fast-generate-preview --vgprovider gemini` |
|
|
588
|
-
| `/sample` | Context-free LLM prompt. Usage: `/sample 'question' -m gpt-4o-mini --temp 0.7` |
|
|
609
|
+
<p align="center">
|
|
610
|
+
<img src="gh_images/wander.png" alt="Wander TUI", width=500>
|
|
611
|
+
</p>
|
|
589
612
|
|
|
590
|
-
###
|
|
591
|
-
|
|
592
|
-
|---------|-------------|
|
|
593
|
-
| `/spool` | Interactive chat with fresh context/RAG. Usage: `/spool --attachments 'file1,file2' -n corca` |
|
|
594
|
-
| `/yap` | Voice chat mode. Usage: `/yap -n frederic` |
|
|
595
|
-
| `/pti` | Pardon-the-interruption reasoning mode. Usage: `/pti` |
|
|
596
|
-
| `/plonk` | GUI automation with vision. Usage: `/plonk 'click the submit button'` |
|
|
597
|
-
| `/wander` | Exploratory thinking with temperature shifts. Usage: `/wander 'query' --model deepseek-r1:32b` |
|
|
613
|
+
### `/guac` — Interactive Python REPL
|
|
614
|
+
Guac is an LLM-powered Python REPL with a live variable inspector, DataFrame viewer, and inline code execution. Describe what you want in natural language and the model writes and runs the code. Variables persist across turns.
|
|
598
615
|
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
| `/nql` | Run NQL SQL models. Usage: `/nql show=1`, `/nql model=daily_summary` |
|
|
603
|
-
| `/teamviz` | Visualize team structure. Usage: `/teamviz save=output.png` |
|
|
604
|
-
| `/ots` | Screenshot analysis. Usage: `/ots` then select area |
|
|
605
|
-
| `/sleep` | Evolve knowledge graph. Usage: `/sleep --ops link_facts,deepen` |
|
|
606
|
-
| `/kg_search` | Search knowledge graph with multiple modes. Usage: `/kg_search query mode=hybrid depth=2` |
|
|
607
|
-
| `/mem_search` | Search approved memories. Usage: `/mem_search query status=approved top_k=10` |
|
|
608
|
-
| `/mem_review` | Review pending memories interactively. Usage: `/mem_review limit=50` |
|
|
609
|
-
|
|
610
|
-
### System & Config
|
|
611
|
-
| Command | Description |
|
|
612
|
-
|---------|-------------|
|
|
613
|
-
| `/build` | Build team to deployable format. Usage: `/build docker --output ./deploy` |
|
|
614
|
-
| `/serve` | Full agentic server with NPC management, jinx controls, and OpenAI-compatible endpoints. Usage: `/serve --port 5337` |
|
|
615
|
-
| `/compile` | Compile NPC profiles. Usage: `/compile path/to/npc` |
|
|
616
|
-
| `/init` | Initialize NPC project. Usage: `/init` |
|
|
617
|
-
| `/set` | Set config values. Usage: `/set model gemma3:4b`, `/set provider ollama` |
|
|
618
|
-
| `/help` | Show help. Usage: `/help` |
|
|
619
|
-
| `/jinxs` | List available jinxs. Usage: `/jinxs` |
|
|
620
|
-
| `/incognide` | Launch Incognide GUI. Usage: `/incognide` |
|
|
621
|
-
| `/trigger` | Set up system triggers. Usage: `/trigger 'description' -m gemma3:27b` |
|
|
622
|
-
|
|
623
|
-
## Common Command-Line Flags:
|
|
624
|
-
|
|
625
|
-
```
|
|
626
|
-
Flag Shorthand | Flag Shorthand | Flag Shorthand | Flag Shorthand
|
|
627
|
-
------------------------------ | ------------------------------ | ------------------------------ | ------------------------------
|
|
628
|
-
--attachments (-a) | --height (-h) | --num_npcs (-num_n) | --team (-tea)
|
|
629
|
-
--config_dir (-con) | --igmodel (-igm) | --output_file (-o) | --temperature (-t)
|
|
630
|
-
--cors (-cor) | --igprovider (-igp) | --plots_dir (-pl) | --top_k
|
|
631
|
-
--creativity (-cr) | --lang (-l) | --port (-po) | --top_p
|
|
632
|
-
--depth (-d) | --max_tokens (-ma) | --provider (-pr) | --vmodel (-vm)
|
|
633
|
-
--emodel (-em) | --messages (-me) | --refresh_period (-re) | --vprovider (-vp)
|
|
634
|
-
--eprovider (-ep) | --model (-mo) | --rmodel (-rm) | --width (-w)
|
|
635
|
-
--exploration (-ex) | --npc (-np) | --rprovider (-rp) |
|
|
636
|
-
--format (-f) | --num_frames (-num_f) | --sprovider (-s) |
|
|
637
|
-
```
|
|
616
|
+
<p align="center">
|
|
617
|
+
<img src="gh_images/guac_session.png" alt="Guac Python REPL", width=500>
|
|
618
|
+
</p>
|
|
638
619
|
|
|
639
|
-
|
|
620
|
+
### `/arxiv` — Paper Browser
|
|
621
|
+
Browse, search, and read arXiv papers from the terminal. The TUI shows search results, full paper metadata, and rendered abstracts with j/k navigation and Enter to drill in.
|
|
622
|
+
|
|
623
|
+
<p align="center">
|
|
624
|
+
<img src="gh_images/arxiv_search.png" alt="ArXiv search", width=500>
|
|
625
|
+
<img src="gh_images/arxiv_paper.png" alt="ArXiv paper view", width=500>
|
|
626
|
+
</p>
|
|
627
|
+
<p align="center">
|
|
628
|
+
<img src="gh_images/arxiv_abs.png" alt="ArXiv abstract view", width=700>
|
|
629
|
+
</p>
|
|
630
|
+
|
|
631
|
+
### `/reattach` — Session Browser
|
|
632
|
+
Resume previous conversation sessions. The TUI lists past sessions with timestamps and previews — select one to pick up where you left off.
|
|
633
|
+
|
|
634
|
+
<p align="center">
|
|
635
|
+
<img src="gh_images/Screenshot%20from%202026-01-29%2014-43-20.png" alt="Reattach session browser", width=500>
|
|
636
|
+
</p>
|
|
637
|
+
|
|
638
|
+
### `/models` — Model Browser
|
|
639
|
+
Browse all available models across providers (Ollama, OpenAI, Anthropic, etc.), see which are currently active, and set new defaults interactively.
|
|
640
|
+
|
|
641
|
+
<p align="center">
|
|
642
|
+
<img src="gh_images/models.png" alt="Models browser", width=500>
|
|
643
|
+
</p>
|
|
644
|
+
|
|
645
|
+
# Memory & Knowledge Graph
|
|
640
646
|
|
|
641
647
|
`npcsh` maintains a memory lifecycle system that allows agents to learn and grow from past interactions. Memories progress through stages and can be incorporated into a knowledge graph for advanced retrieval.
|
|
642
648
|
|
|
@@ -650,67 +656,52 @@ Memories are extracted from conversations and follow this lifecycle:
|
|
|
650
656
|
4. **human-edited** - Modified by user before approval
|
|
651
657
|
5. **skipped** - Deferred for later review
|
|
652
658
|
|
|
653
|
-
###
|
|
654
|
-
|
|
655
|
-
```bash
|
|
656
|
-
# Search through approved memories
|
|
657
|
-
/mem_search python # Keyword search
|
|
658
|
-
/mem_search python status=approved # Filter by status
|
|
659
|
-
/mem_search python top_k=20 # Limit results
|
|
660
|
-
|
|
661
|
-
# Review pending memories interactively
|
|
662
|
-
/mem_review # Review with default limit
|
|
663
|
-
/mem_review limit=50 # Review more at once
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
### Knowledge Graph
|
|
659
|
+
### Memories
|
|
667
660
|
|
|
668
|
-
The
|
|
661
|
+
The `/memories` command opens an interactive TUI for browsing, reviewing, and managing memories:
|
|
669
662
|
|
|
670
663
|
```bash
|
|
671
|
-
|
|
672
|
-
/kg_search python # Simple keyword match
|
|
673
|
-
|
|
674
|
-
# Semantic similarity search
|
|
675
|
-
/kg_search python mode=embedding # Find semantically similar facts
|
|
676
|
-
|
|
677
|
-
# Graph traversal search
|
|
678
|
-
/kg_search python mode=link depth=3 # Traverse graph links
|
|
679
|
-
|
|
680
|
-
# Hybrid search (combines methods)
|
|
681
|
-
/kg_search python mode=all # All methods combined
|
|
682
|
-
|
|
683
|
-
# Explore concepts
|
|
684
|
-
/kg_search type=concepts # List all concepts
|
|
685
|
-
/kg_search concept="Machine Learning" # Explore a specific concept
|
|
664
|
+
/memories
|
|
686
665
|
```
|
|
687
666
|
|
|
688
|
-
|
|
667
|
+
The TUI provides:
|
|
668
|
+
- **Tab-based filtering** — switch between All, Pending, Approved, Rejected, etc.
|
|
669
|
+
- **Approve/Reject** — press `a` to approve, `x` to reject
|
|
670
|
+
- **Preview** — press Enter to see full memory content
|
|
671
|
+
- **Session stats** — tracks approvals/rejections during session
|
|
689
672
|
|
|
690
|
-
|
|
673
|
+
<p align="center">
|
|
674
|
+
<img src="gh_images/Screenshot%20from%202026-01-29%2016-03-08.png" alt="Memory Browser TUI", width=700>
|
|
675
|
+
</p>
|
|
691
676
|
|
|
692
|
-
|
|
693
|
-
# Basic sleep (consolidation)
|
|
694
|
-
/sleep
|
|
677
|
+
### Knowledge Graph
|
|
695
678
|
|
|
696
|
-
|
|
697
|
-
/sleep backfill=true
|
|
679
|
+
The `/kg` command opens an interactive browser for exploring the knowledge graph:
|
|
698
680
|
|
|
699
|
-
|
|
700
|
-
/
|
|
681
|
+
```bash
|
|
682
|
+
/kg # Browse facts, concepts, links, search, graph view
|
|
683
|
+
/kg sleep # Evolve KG through consolidation
|
|
684
|
+
/kg dream # Creative synthesis across domains
|
|
685
|
+
/kg evolve # Alias for sleep
|
|
686
|
+
/kg sleep backfill=true # Import approved memories first, then evolve
|
|
687
|
+
/kg sleep ops=prune,deepen,abstract # Specific operations
|
|
688
|
+
```
|
|
701
689
|
|
|
702
|
-
|
|
703
|
-
/sleep backfill=true dream=true
|
|
690
|
+
The TUI browser has 5 tabs: **Facts**, **Concepts**, **Links**, **Search**, and **Graph** — navigate with Tab, j/k, and Enter to drill into details.
|
|
704
691
|
|
|
705
|
-
|
|
706
|
-
/
|
|
707
|
-
|
|
692
|
+
<p align="center">
|
|
693
|
+
<img src="gh_images/kg_facts_viewer.png" alt="Knowledge Graph Facts", width=500>
|
|
694
|
+
<img src="gh_images/kg_links.png" alt="Knowledge Graph Links", width=500>
|
|
695
|
+
</p>
|
|
696
|
+
<p align="center">
|
|
697
|
+
<img src="gh_images/kg_viewer.png" alt="Knowledge Graph Viewer", width=700>
|
|
698
|
+
</p>
|
|
708
699
|
|
|
709
|
-
**
|
|
710
|
-
- **prune**
|
|
711
|
-
- **deepen**
|
|
712
|
-
- **abstract**
|
|
713
|
-
- **link**
|
|
700
|
+
**Evolution operations** (via `/kg sleep` or `/sleep`):
|
|
701
|
+
- **prune** — Remove redundant or low-value facts
|
|
702
|
+
- **deepen** — Add detail to existing facts
|
|
703
|
+
- **abstract** — Create higher-level generalizations
|
|
704
|
+
- **link** — Connect related facts and concepts
|
|
714
705
|
|
|
715
706
|
### Environment Variables
|
|
716
707
|
|
|
@@ -722,28 +713,20 @@ export NPCSH_BUILD_KG=1
|
|
|
722
713
|
export NPCSH_DB_PATH=~/npcsh_history.db
|
|
723
714
|
```
|
|
724
715
|
|
|
725
|
-
|
|
726
|
-
To see more about how to use the jinxs and modes in the NPC Shell, read the docs at [npc-shell.readthedocs.io](https://npc-shell.readthedocs.io/en/latest/)
|
|
727
|
-
|
|
716
|
+
Full documentation: [npc-shell.readthedocs.io](https://npc-shell.readthedocs.io/en/latest/)
|
|
728
717
|
|
|
729
|
-
|
|
730
|
-
- `npcsh` works with local and enterprise LLM providers through its LiteLLM integration, allowing users to run inference from Ollama, LMStudio, vLLM, MLX, OpenAI, Anthropic, Gemini, and Deepseek, making it a versatile tool for both simple commands and sophisticated AI-driven tasks.
|
|
718
|
+
`npcsh` works with local and enterprise LLM providers through LiteLLM — Ollama, LMStudio, vLLM, MLX, OpenAI, Anthropic, Gemini, Deepseek, and more.
|
|
731
719
|
|
|
732
720
|
## Incognide
|
|
733
|
-
Incognide is a desktop workspace environment for integrating LLMs into your workflows in an organized and seamless manner. See the source code for Incognide [here](https://github.com/npc-worldwide/incognide). Download the executables at [our website](https://enpisi.com/downloads). For the most up to date development version, you can use Incognide by invoking it in npcsh
|
|
734
721
|
|
|
735
|
-
|
|
736
|
-
/incognide
|
|
737
|
-
```
|
|
738
|
-
which will download and set up and serve the Incognide application within your `~/.npcsh` folder. It requires `npm` and `node` to work, and of course npcpy !
|
|
739
|
-
|
|
740
|
-
## Mailing List and Community
|
|
741
|
-
Interested to stay in the loop and to hear the latest and greatest about `npcpy`, `npcsh`, and Incognide? Be sure to sign up for the [newsletter](https://forms.gle/n1NzQmwjsV4xv1B2A)!
|
|
722
|
+
[Incognide](https://github.com/npc-worldwide/incognide) is a desktop workspace environment for integrating LLMs into your workflows. [Download executables](https://enpisi.com/downloads) or run `/incognide` in npcsh to install and serve it locally (requires `npm` and `node`).
|
|
742
723
|
|
|
743
|
-
|
|
744
|
-
## Support
|
|
745
|
-
If you appreciate the work here, [consider supporting NPC Worldwide with a monthly donation](https://buymeacoffee.com/npcworldwide), [buying NPC-WW themed merch](https://enpisi.com/shop), [using and subscribing to Lavanzaro](lavanzaro.com),s or hiring us to help you explore how to use the NPC Toolkit and AI tools to help your business or research team, please reach out to info@npcworldwi.de .
|
|
724
|
+
## Community & Support
|
|
746
725
|
|
|
726
|
+
- [Newsletter](https://forms.gle/n1NzQmwjsV4xv1B2A) — latest updates on `npcpy`, `npcsh`, and Incognide
|
|
727
|
+
- [Discord](https://discord.gg/VvYVT5YC) — discuss ideas for NPC tools
|
|
728
|
+
- [Buy us a coffee](https://buymeacoffee.com/npcworldwide) | [Merch](https://enpisi.com/shop) | [Lavanzaro](https://lavanzaro.com)
|
|
729
|
+
- For consulting: info@npcworldwi.de
|
|
747
730
|
|
|
748
731
|
## Installation
|
|
749
732
|
`npcsh` is available on PyPI and can be installed using pip. Before installing, make sure you have the necessary dependencies installed on your system. Below are the instructions for installing such dependencies on Linux, Mac, and Windows. If you find any other dependencies that are needed, please let us know so we can update the installation instructions to be more accommodating.
|
|
@@ -761,10 +744,6 @@ sudo apt-get install libcairo2-dev
|
|
|
761
744
|
sudo apt-get install libgirepository1.0-dev
|
|
762
745
|
sudo apt-get install ffmpeg
|
|
763
746
|
|
|
764
|
-
# for triggers
|
|
765
|
-
sudo apt install inotify-tools
|
|
766
|
-
|
|
767
|
-
|
|
768
747
|
#And if you don't have ollama installed, use this:
|
|
769
748
|
curl -fsSL https://ollama.com/install.sh | sh
|
|
770
749
|
|
|
@@ -796,10 +775,6 @@ brew install portaudio
|
|
|
796
775
|
brew install ffmpeg
|
|
797
776
|
brew install pygobject3
|
|
798
777
|
|
|
799
|
-
# for triggers
|
|
800
|
-
brew install inotify-tools
|
|
801
|
-
|
|
802
|
-
|
|
803
778
|
brew install ollama
|
|
804
779
|
brew services start ollama
|
|
805
780
|
ollama pull llama3.2
|
|
@@ -912,51 +887,41 @@ export PERPLEXITY_API_KEY='your_perplexity_key'
|
|
|
912
887
|
|
|
913
888
|
Individual npcs can also be set to use different models and providers by setting the `model` and `provider` keys in the npc files.
|
|
914
889
|
|
|
915
|
-
Once initialized
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
│
|
|
921
|
-
│
|
|
922
|
-
│ │
|
|
923
|
-
│ │
|
|
924
|
-
│ │
|
|
925
|
-
│ │
|
|
926
|
-
│
|
|
927
|
-
│
|
|
928
|
-
|
|
929
|
-
│ ├──
|
|
930
|
-
│
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
├── jinxs/ # Project jinxs
|
|
938
|
-
│ ├── bin/ # Standalone CLI commands (unique names, auto-registered)
|
|
939
|
-
│ │ └── wander, spool, yap, nql, vixynt, roll, sample
|
|
940
|
-
│ └── lib/ # Library jinxs organized by category
|
|
941
|
-
│ ├── core/ # Core utilities (python, sh, sql, search, etc.)
|
|
942
|
-
│ ├── browser/ # Browser automation
|
|
943
|
-
│ ├── orchestration/ # delegate, convene
|
|
944
|
-
│ └── research/ # Research tools (arxiv, semantic_scholar)
|
|
945
|
-
├── models/ # NQL SQL models for AI-powered data pipelines
|
|
946
|
-
│ ├── base/ # Base statistics models
|
|
947
|
-
│ └── insights/ # Models with nql.* AI functions
|
|
948
|
-
├── assembly_lines/ # Agentic Workflows
|
|
949
|
-
│ └── example.line
|
|
950
|
-
├── example1.npc # Example NPC
|
|
951
|
-
├── example2.npc # Example NPC
|
|
952
|
-
└── team.ctx # Team context file
|
|
953
|
-
|
|
954
|
-
|
|
890
|
+
Once initialized, the global team lives in `~/.npcsh/npc_team/`. You can also create a project-specific team by adding an `npc_team/` directory to any project — npcsh picks it up automatically and overlays it on the global team.
|
|
891
|
+
|
|
892
|
+
```
|
|
893
|
+
npc_team/
|
|
894
|
+
├── jinxs/
|
|
895
|
+
│ ├── modes/ # TUI modes (alicanto, corca, kg, yap, etc.)
|
|
896
|
+
│ ├── lib/
|
|
897
|
+
│ │ ├── core/ # Core tools (python, sh, sql, edit_file, delegate, etc.)
|
|
898
|
+
│ │ │ └── search/ # Search tools (web_search, db_search, file_search)
|
|
899
|
+
│ │ ├── utils/ # Utility jinxs (set, compile, serve, teamviz, etc.)
|
|
900
|
+
│ │ ├── browser/ # Browser automation (browser_action, screenshot, etc.)
|
|
901
|
+
│ │ └── computer_use/ # Computer use (click, key_press, screenshot, etc.)
|
|
902
|
+
│ └── incognide/ # Incognide desktop workspace jinxs
|
|
903
|
+
├── models/ # NQL SQL models
|
|
904
|
+
│ ├── base/ # Base statistics models
|
|
905
|
+
│ └── insights/ # Models with nql.* AI functions
|
|
906
|
+
├── assembly_lines/ # Workflow pipelines
|
|
907
|
+
├── sibiji.npc # Orchestrator NPC
|
|
908
|
+
├── corca.npc # Coding specialist
|
|
909
|
+
├── ... # Other NPCs
|
|
910
|
+
├── mcp_server.py # MCP server for tool integration
|
|
911
|
+
└── npcsh.ctx # Team context (sets forenpc, team name)
|
|
955
912
|
```
|
|
956
913
|
|
|
914
|
+
<p align="center">
|
|
915
|
+
<img src="gh_images/team_ui.png" alt="Team config browser", width=500>
|
|
916
|
+
<img src="gh_images/jinx_menu.png" alt="Jinx browser", width=500>
|
|
917
|
+
</p>
|
|
918
|
+
<p align="center">
|
|
919
|
+
<img src="gh_images/jinx_folder_viewer.png" alt="Jinx folder viewer", width=500>
|
|
920
|
+
<img src="gh_images/jinx_ui.png" alt="Jinx detail view", width=500>
|
|
921
|
+
</p>
|
|
922
|
+
|
|
957
923
|
## Contributing
|
|
958
924
|
Contributions are welcome! Please submit issues and pull requests on the GitHub repository.
|
|
959
925
|
|
|
960
|
-
|
|
961
926
|
## License
|
|
962
927
|
This project is licensed under the MIT License.
|