npcsh 1.1.21__tar.gz → 1.1.22__tar.gz

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.
Files changed (153) hide show
  1. {npcsh-1.1.21/npcsh.egg-info → npcsh-1.1.22}/PKG-INFO +246 -281
  2. {npcsh-1.1.21 → npcsh-1.1.22}/README.md +243 -280
  3. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/_state.py +10 -5
  4. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/benchmark/npcsh_agent.py +22 -14
  5. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/benchmark/templates/install-npcsh.sh.j2 +2 -2
  6. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/mcp_server.py +9 -1
  7. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/alicanto.npc +12 -6
  8. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/corca.npc +0 -1
  9. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/frederic.npc +2 -3
  10. npcsh-1.1.22/npcsh/npc_team/jinxs/lib/core/edit_file.jinx +119 -0
  11. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/alicanto.jinx +102 -41
  12. npcsh-1.1.22/npcsh/npc_team/jinxs/modes/build.jinx +378 -0
  13. npcsh-1.1.22/npcsh/npc_team/jinxs/modes/convene.jinx +597 -0
  14. npcsh-1.1.22/npcsh/npc_team/jinxs/modes/corca.jinx +820 -0
  15. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/kg.jinx +69 -2
  16. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/plonk.jinx +16 -7
  17. npcsh-1.1.22/npcsh/npc_team/jinxs/modes/yap.jinx +716 -0
  18. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/kadiefa.npc +2 -1
  19. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/sibiji.npc +3 -3
  20. {npcsh-1.1.21 → npcsh-1.1.22/npcsh.egg-info}/PKG-INFO +246 -281
  21. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh.egg-info/SOURCES.txt +4 -5
  22. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh.egg-info/requires.txt +2 -1
  23. {npcsh-1.1.21 → npcsh-1.1.22}/setup.py +2 -1
  24. npcsh-1.1.21/npcsh/npc_team/jinxs/lib/core/edit_file.jinx +0 -97
  25. npcsh-1.1.21/npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx +0 -429
  26. npcsh-1.1.21/npcsh/npc_team/jinxs/lib/core/search.jinx +0 -54
  27. npcsh-1.1.21/npcsh/npc_team/jinxs/lib/utils/build.jinx +0 -65
  28. npcsh-1.1.21/npcsh/npc_team/jinxs/modes/corca.jinx +0 -430
  29. npcsh-1.1.21/npcsh/npc_team/jinxs/modes/yap.jinx +0 -275
  30. {npcsh-1.1.21 → npcsh-1.1.22}/LICENSE +0 -0
  31. {npcsh-1.1.21 → npcsh-1.1.22}/MANIFEST.in +0 -0
  32. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/__init__.py +0 -0
  33. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/alicanto.py +0 -0
  34. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/benchmark/__init__.py +0 -0
  35. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/benchmark/runner.py +0 -0
  36. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/build.py +0 -0
  37. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/completion.py +0 -0
  38. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/config.py +0 -0
  39. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/conversation_viewer.py +0 -0
  40. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/corca.py +0 -0
  41. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/diff_viewer.py +0 -0
  42. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/execution.py +0 -0
  43. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/guac.py +0 -0
  44. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/mcp_helpers.py +0 -0
  45. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc.py +0 -0
  46. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/alicanto.png +0 -0
  47. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/corca.png +0 -0
  48. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/corca_example.png +0 -0
  49. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/frederic4.png +0 -0
  50. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/guac.npc +0 -0
  51. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/guac.png +0 -0
  52. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/add_tab.jinx +0 -0
  53. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/close_pane.jinx +0 -0
  54. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/close_tab.jinx +0 -0
  55. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/confirm.jinx +0 -0
  56. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/focus_pane.jinx +0 -0
  57. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/incognide.jinx +0 -0
  58. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/list_panes.jinx +0 -0
  59. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/navigate.jinx +0 -0
  60. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/notify.jinx +0 -0
  61. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/open_pane.jinx +0 -0
  62. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/read_pane.jinx +0 -0
  63. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/run_terminal.jinx +0 -0
  64. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/send_message.jinx +0 -0
  65. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/split_pane.jinx +0 -0
  66. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/switch_npc.jinx +0 -0
  67. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/switch_tab.jinx +0 -0
  68. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/write_file.jinx +0 -0
  69. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/incognide/zen_mode.jinx +0 -0
  70. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/browser/browser_action.jinx +0 -0
  71. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx +0 -0
  72. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/browser/close_browser.jinx +0 -0
  73. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/browser/open_browser.jinx +0 -0
  74. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/click.jinx +0 -0
  75. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx +0 -0
  76. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx +0 -0
  77. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx +0 -0
  78. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/trigger.jinx +0 -0
  79. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx +0 -0
  80. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/computer_use/wait.jinx +0 -0
  81. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/compress.jinx +0 -0
  82. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/convene.jinx +0 -0
  83. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/delegate.jinx +0 -0
  84. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/load_file.jinx +0 -0
  85. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/ots.jinx +0 -0
  86. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/paste.jinx +0 -0
  87. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/python.jinx +0 -0
  88. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/sample.jinx +0 -0
  89. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +0 -0
  90. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +0 -0
  91. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +0 -0
  92. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/sh.jinx +0 -0
  93. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/sleep.jinx +0 -0
  94. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/core/sql.jinx +0 -0
  95. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/benchmark.jinx +0 -0
  96. {npcsh-1.1.21/npcsh/npc_team/jinxs/lib/core → npcsh-1.1.22/npcsh/npc_team/jinxs/lib/utils}/chat.jinx +0 -0
  97. {npcsh-1.1.21/npcsh/npc_team/jinxs/lib/core → npcsh-1.1.22/npcsh/npc_team/jinxs/lib/utils}/cmd.jinx +0 -0
  98. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/compile.jinx +0 -0
  99. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/help.jinx +0 -0
  100. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/init.jinx +0 -0
  101. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +0 -0
  102. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/models.jinx +0 -0
  103. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/serve.jinx +0 -0
  104. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/set.jinx +0 -0
  105. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/setup.jinx +0 -0
  106. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/shh.jinx +0 -0
  107. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/switch.jinx +0 -0
  108. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/switches.jinx +0 -0
  109. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/sync.jinx +0 -0
  110. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/teamviz.jinx +0 -0
  111. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/usage.jinx +0 -0
  112. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/lib/utils/verbose.jinx +0 -0
  113. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/arxiv.jinx +0 -0
  114. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/config_tui.jinx +0 -0
  115. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/git.jinx +0 -0
  116. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/guac.jinx +0 -0
  117. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/memories.jinx +0 -0
  118. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/nql.jinx +0 -0
  119. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/papers.jinx +0 -0
  120. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/pti.jinx +0 -0
  121. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/reattach.jinx +0 -0
  122. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/roll.jinx +0 -0
  123. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/spool.jinx +0 -0
  124. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/team.jinx +0 -0
  125. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/vixynt.jinx +0 -0
  126. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/jinxs/modes/wander.jinx +0 -0
  127. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/kadiefa.png +0 -0
  128. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/npcsh.ctx +0 -0
  129. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/npcsh_sibiji.png +0 -0
  130. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/plonk.npc +0 -0
  131. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/plonk.png +0 -0
  132. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/plonkjr.png +0 -0
  133. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/sibiji.png +0 -0
  134. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/spool.png +0 -0
  135. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npc_team/yap.png +0 -0
  136. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/npcsh.py +0 -0
  137. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/parsing.py +0 -0
  138. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/plonk.py +0 -0
  139. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/pti.py +0 -0
  140. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/routes.py +0 -0
  141. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/salmon_simulation.py +0 -0
  142. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/spool.py +0 -0
  143. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/ui.py +0 -0
  144. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/wander.py +0 -0
  145. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh/yap.py +0 -0
  146. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh.egg-info/dependency_links.txt +0 -0
  147. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh.egg-info/entry_points.txt +0 -0
  148. {npcsh-1.1.21 → npcsh-1.1.22}/npcsh.egg-info/top_level.txt +0 -0
  149. {npcsh-1.1.21 → npcsh-1.1.22}/project/__init__.py +0 -0
  150. {npcsh-1.1.21 → npcsh-1.1.22}/setup.cfg +0 -0
  151. {npcsh-1.1.21 → npcsh-1.1.22}/tests/test_config.py +0 -0
  152. {npcsh-1.1.21 → npcsh-1.1.22}/tests/test_jinxs.py +0 -0
  153. {npcsh-1.1.21 → npcsh-1.1.22}/tests/test_tool_routing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: npcsh
3
- Version: 1.1.21
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 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.
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
- pip install 'npcsh[lite]'
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
- ```bash
120
+ # Local models (diffusers/transformers/torch — large install)
121
121
  pip install 'npcsh[local]'
122
- ```
123
-
124
122
 
125
- For users who want to use the voice mode `yap` (see also the OS-specific installation instructions for installing needed system audio libraries)
126
- ```bash
123
+ # Voice mode (see OS-specific audio library instructions below)
127
124
  pip install 'npcsh[yap]'
128
- ```
129
125
 
130
- Once installed: run
131
- ```bash
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
- /search "cerulean city" perplexity
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="https://raw.githubusercontent.com/npc-worldwide/npcsh/main/test_data/search.gif" alt="example of search results", width=600>
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
- ```bash
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
- /search query="git commands" brainblast=true
170
+ /plonk 'find out the latest news on cnn' gemma3:12b ollama
189
171
  ```
190
-
191
- - web search with specific provider
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
- - **Computer Use**
176
+ - **Generate Images with Vixynt**
198
177
 
199
178
  ```bash
200
- /plonk 'find out the latest news on cnn' gemma3:12b ollama
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
- - **Generate Image**
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=250>
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 Video**
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=250>
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** (Agentic API Server)
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
- - **Use an mcp server**: make use of NPCs with MCP servers.
225
+ - **MCP-powered agentic shell**: full tabbed TUI with chat, tool management, and server controls.
237
226
  ```bash
238
- /corca --mcp-server-path /path.to.server.py
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
- - **NQL - AI-Powered SQL Models**:
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
- # List available models
254
- nql show=1
255
-
256
- # Run all models in dependency order
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/search
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 (arxiv, semantic_scholar, paper_search)
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, search |
554
- | `corca` | Coding and development | python, sh, edit_file, search |
555
- | `plonk` | Browser/GUI automation | browser_action, screenshot, click |
556
- | `alicanto` | Research and analysis | arxiv, semantic_scholar, paper_search |
557
- | `frederic` | Math, physics, music | python, vixynt, roll, sample, wander |
558
- | `guac` | General assistant | python, sh, search |
559
- | `kadiefa` | Creative generation | vixynt, roll, wander |
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 NPCs 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 `:
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
- /vixynt "a sunset over mountains"
555
+ /sample "tell me a story about a sunset over the mountains"
568
556
 
569
557
  # In bash:
570
- npc vixynt "a sunset over mountains"
558
+ npc sample "a sunset over mountains"
571
559
  ```
572
560
 
573
- ## Jinx Commands
561
+ ## All Commands
574
562
 
575
- ### Orchestration & Research
576
563
  | Command | Description |
577
564
  |---------|-------------|
578
- | `/alicanto` | Deep research with multiple perspectives. Usage: `/alicanto 'query' --num-npcs 3 --depth 2` |
579
- | `/convene` | Multi-NPC structured discussion. Usage: `/convene "topic" --npcs corca,guac --rounds 3` |
580
- | `/delegate` | Delegate task to NPC with review loop. Usage: `/delegate npc_name=corca task="..." max_iterations=5` |
581
- | `/search` | Web/memory/knowledge graph search. Usage: `/search 'query' --sprovider perplexity` |
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
- ### Generation
584
- | Command | Description |
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
- ### Modes & Sessions
591
- | Command | Description |
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
- ### Data & Analytics
600
- | Command | Description |
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
- ## Memory & Knowledge Graph
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
- ### Memory Commands
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 knowledge graph stores facts and concepts extracted from approved memories, enabling semantic search and reasoning. Facts are linked to concepts, allowing traversal-based discovery.
661
+ The `/memories` command opens an interactive TUI for browsing, reviewing, and managing memories:
669
662
 
670
663
  ```bash
671
- # Keyword search
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
- ### Knowledge Graph Evolution
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
- The `/sleep` command evolves the knowledge graph through consolidation, abstraction, and creative synthesis:
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
- ```bash
693
- # Basic sleep (consolidation)
694
- /sleep
677
+ ### Knowledge Graph
695
678
 
696
- # Import approved memories first, then evolve
697
- /sleep backfill=true
679
+ The `/kg` command opens an interactive browser for exploring the knowledge graph:
698
680
 
699
- # Dream mode - creative synthesis across domains
700
- /sleep dream=true
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
- # Combined backfill and dream
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
- # Specific operations
706
- /sleep ops=prune,deepen,abstract
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
- **Operations:**
710
- - **prune** - Remove redundant or low-value facts
711
- - **deepen** - Add detail to existing facts
712
- - **abstract** - Create higher-level generalizations
713
- - **link** - Connect related facts and concepts
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
- ## Read the Docs
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
- ## Inference Capabilities
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
- [Join the discord to discuss ideas for npc tools](https://discord.gg/VvYVT5YC)
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 and set up, you will find the following in your `~/.npcsh` directory:
916
- ```bash
917
- ~/.npcsh/
918
- ├── npc_team/ # Global NPC team
919
- ├── jinxs/
920
- ├── bin/ # CLI commands (wander, spool, yap, nql, vixynt, roll, sample)
921
- │ └── lib/ # Library jinxs by category
922
- │ │ ├── core/ # python, sh, sql, search, edit_file, load_file
923
- │ │ ├── browser/ # browser_action, screenshot
924
- │ │ ├── orchestration/ # delegate, convene
925
- │ │ └── research/ # arxiv, semantic_scholar, paper_search
926
- ├── models/ # NQL SQL models
927
- ├── assembly_lines/ # Workflow pipelines
928
- ├── sibiji.npc # Orchestrator NPC
929
- │ ├── corca.npc # Coding specialist
930
- ├── plonk.npc # Browser automation
931
- ├── ... # Other NPCs
932
- │ └── npcsh.ctx # Team context (sets forenpc, team name)
933
- ```
934
- For cases where you wish to set up a project specific set of NPCs, jinxs, and assembly lines, add a `npc_team` directory to your project and `npcsh` should be able to pick up on its presence, like so:
935
- ```bash
936
- ./npc_team/ # Project-specific NPCs
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.