npcsh 1.1.22__tar.gz → 1.1.23__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.
- {npcsh-1.1.22/npcsh.egg-info → npcsh-1.1.23}/PKG-INFO +168 -7
- {npcsh-1.1.22 → npcsh-1.1.23}/README.md +167 -6
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/_state.py +272 -120
- npcsh-1.1.23/npcsh/benchmark/npcsh_agent.py +172 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/benchmark/templates/install-npcsh.sh.j2 +12 -4
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/config.py +5 -2
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/alicanto.npc +4 -8
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/corca.npc +5 -11
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/frederic.npc +4 -6
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/guac.npc +4 -4
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/delegate.jinx +1 -1
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/edit_file.jinx +1 -1
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/sh.jinx +1 -1
- npcsh-1.1.23/npcsh/npc_team/jinxs/lib/core/skill.jinx +59 -0
- npcsh-1.1.23/npcsh/npc_team/jinxs/lib/utils/help.jinx +236 -0
- npcsh-1.1.23/npcsh/npc_team/jinxs/lib/utils/init.jinx +532 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +0 -1
- npcsh-1.1.23/npcsh/npc_team/jinxs/lib/utils/serve.jinx +943 -0
- npcsh-1.1.22/npcsh/npc_team/jinxs/modes/config_tui.jinx → npcsh-1.1.23/npcsh/npc_team/jinxs/modes/config.jinx +1 -1
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/convene.jinx +76 -3
- npcsh-1.1.23/npcsh/npc_team/jinxs/modes/crond.jinx +818 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/plonk.jinx +76 -14
- npcsh-1.1.23/npcsh/npc_team/jinxs/modes/roll.jinx +378 -0
- npcsh-1.1.23/npcsh/npc_team/jinxs/modes/skills.jinx +621 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/yap.jinx +504 -30
- npcsh-1.1.23/npcsh/npc_team/jinxs/skills/code-review/SKILL.md +45 -0
- npcsh-1.1.23/npcsh/npc_team/jinxs/skills/debugging/SKILL.md +44 -0
- npcsh-1.1.23/npcsh/npc_team/jinxs/skills/git-workflow.jinx +44 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/kadiefa.npc +4 -5
- npcsh-1.1.23/npcsh/npc_team/npcsh.ctx +34 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/plonk.npc +5 -9
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/sibiji.npc +13 -5
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npcsh.py +1 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/routes.py +0 -4
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/yap.py +22 -4
- {npcsh-1.1.22 → npcsh-1.1.23/npcsh.egg-info}/PKG-INFO +168 -7
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh.egg-info/SOURCES.txt +8 -20
- {npcsh-1.1.22 → npcsh-1.1.23}/setup.py +1 -1
- npcsh-1.1.22/npcsh/benchmark/npcsh_agent.py +0 -335
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/add_tab.jinx +0 -11
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/close_pane.jinx +0 -9
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/close_tab.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/confirm.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/focus_pane.jinx +0 -9
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/list_panes.jinx +0 -8
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/navigate.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/notify.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/open_pane.jinx +0 -13
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/read_pane.jinx +0 -9
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/run_terminal.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/send_message.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/split_pane.jinx +0 -12
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/switch_npc.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/switch_tab.jinx +0 -10
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/write_file.jinx +0 -11
- npcsh-1.1.22/npcsh/npc_team/jinxs/incognide/zen_mode.jinx +0 -9
- npcsh-1.1.22/npcsh/npc_team/jinxs/lib/core/convene.jinx +0 -232
- npcsh-1.1.22/npcsh/npc_team/jinxs/lib/utils/help.jinx +0 -52
- npcsh-1.1.22/npcsh/npc_team/jinxs/lib/utils/init.jinx +0 -41
- npcsh-1.1.22/npcsh/npc_team/jinxs/lib/utils/serve.jinx +0 -26
- npcsh-1.1.22/npcsh/npc_team/jinxs/modes/roll.jinx +0 -65
- npcsh-1.1.22/npcsh/npc_team/npcsh.ctx +0 -18
- {npcsh-1.1.22 → npcsh-1.1.23}/LICENSE +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/MANIFEST.in +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/__init__.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/alicanto.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/benchmark/__init__.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/benchmark/runner.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/build.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/completion.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/conversation_viewer.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/corca.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/diff_viewer.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/execution.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/guac.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/mcp_helpers.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/mcp_server.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/alicanto.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/corca.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/corca_example.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/frederic4.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/guac.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/browser/browser_action.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/browser/close_browser.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/browser/open_browser.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/click.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/trigger.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/computer_use/wait.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/compress.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/load_file.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/ots.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/paste.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/python.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/sample.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/sleep.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/core/sql.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/benchmark.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/chat.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/cmd.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/compile.jinx +0 -0
- {npcsh-1.1.22/npcsh/npc_team/jinxs/incognide → npcsh-1.1.23/npcsh/npc_team/jinxs/lib/utils}/incognide.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/models.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/set.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/setup.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/shh.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/switch.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/switches.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/sync.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/teamviz.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/usage.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/lib/utils/verbose.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/alicanto.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/arxiv.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/build.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/corca.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/git.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/guac.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/kg.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/memories.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/nql.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/papers.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/pti.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/reattach.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/spool.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/team.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/vixynt.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/jinxs/modes/wander.jinx +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/kadiefa.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/npcsh_sibiji.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/plonk.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/plonkjr.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/sibiji.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/spool.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/npc_team/yap.png +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/parsing.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/plonk.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/pti.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/salmon_simulation.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/spool.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/ui.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh/wander.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh.egg-info/dependency_links.txt +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh.egg-info/entry_points.txt +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh.egg-info/requires.txt +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/npcsh.egg-info/top_level.txt +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/project/__init__.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/setup.cfg +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/tests/test_config.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/tests/test_jinxs.py +0 -0
- {npcsh-1.1.22 → npcsh-1.1.23}/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.
|
|
3
|
+
Version: 1.1.23
|
|
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
|
|
@@ -167,10 +167,11 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
167
167
|
- **Computer Use**
|
|
168
168
|
|
|
169
169
|
```bash
|
|
170
|
-
/plonk
|
|
170
|
+
/plonk
|
|
171
171
|
```
|
|
172
172
|
<p align="center">
|
|
173
|
-
<img src="gh_images/plonk.png" alt="Plonk GUI automation TUI"
|
|
173
|
+
<img src="gh_images/plonk.png" alt="Plonk GUI automation TUI — task entry" width=500>
|
|
174
|
+
<img src="gh_images/plonk_task.png" alt="Plonk GUI automation — completed flight search task" width=500>
|
|
174
175
|
</p>
|
|
175
176
|
|
|
176
177
|
- **Generate Images with Vixynt**
|
|
@@ -189,11 +190,14 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
189
190
|
<p align="center">
|
|
190
191
|
<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>
|
|
191
192
|
</p>
|
|
192
|
-
- **Generate Videos**
|
|
193
|
+
- **Generate Videos with Roll**
|
|
193
194
|
|
|
194
195
|
```bash
|
|
195
196
|
/roll
|
|
196
197
|
```
|
|
198
|
+
<p align="center">
|
|
199
|
+
<img src="gh_images/roll.png" alt="Roll Video Creation Studio" width=500>
|
|
200
|
+
</p>
|
|
197
201
|
|
|
198
202
|
- Generate videos directly
|
|
199
203
|
|
|
@@ -205,6 +209,16 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
205
209
|
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/test_data/hatridingdog.gif" alt="video of a hat riding a dog", width=350>
|
|
206
210
|
</p>
|
|
207
211
|
|
|
212
|
+
- **Multi-Agent Discussions**
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
/convene "Is the universe a simulation?" npcs=alicanto,corca,guac rounds=3
|
|
216
|
+
```
|
|
217
|
+
<p align="center">
|
|
218
|
+
<img src="gh_images/convene.png" alt="Convene — multi-NPC structured discussion" width=500>
|
|
219
|
+
<img src="gh_images/convene_convene.png" alt="Convene — live discussion view" width=500>
|
|
220
|
+
</p>
|
|
221
|
+
|
|
208
222
|
- **Serve an NPC Team**
|
|
209
223
|
```bash
|
|
210
224
|
/serve --port 5337 --cors='http://localhost:5137/'
|
|
@@ -288,6 +302,108 @@ When an NPC is invoked, they can only use the jinxs assigned to them. This creat
|
|
|
288
302
|
|
|
289
303
|
The forenpc (orchestrator) can delegate to any team member based on their specialization.
|
|
290
304
|
|
|
305
|
+
## Skills — Knowledge Content for Agents
|
|
306
|
+
|
|
307
|
+
Skills are jinxs that serve instructional content instead of executing code. They use the `skill.jinx` sub-jinx (just like code jinxs use `python.jinx` or `sh.jinx`) and return sections of methodology on demand.
|
|
308
|
+
|
|
309
|
+
Because skills are jinxs, they're assigned to agents the same way — through the `jinxs:` list in `.npc` files:
|
|
310
|
+
|
|
311
|
+
```yaml
|
|
312
|
+
# reviewer.npc
|
|
313
|
+
name: reviewer
|
|
314
|
+
primary_directive: "You review code and provide feedback."
|
|
315
|
+
jinxs:
|
|
316
|
+
- lib/core/sh
|
|
317
|
+
- lib/core/python
|
|
318
|
+
- skills/code-review
|
|
319
|
+
- skills/debugging
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
The agent sees `code-review` and `debugging` in its tool catalog alongside `sh` and `python`. When it encounters a review task, it calls the skill to get methodology, then uses `sh` or `python` to do the actual work.
|
|
323
|
+
|
|
324
|
+
### Two Authoring Formats
|
|
325
|
+
|
|
326
|
+
**SKILL.md folder** — a folder with a `SKILL.md` file (folder name = skill name):
|
|
327
|
+
|
|
328
|
+
```
|
|
329
|
+
jinxs/skills/debugging/
|
|
330
|
+
SKILL.md # YAML frontmatter + ## sections
|
|
331
|
+
scripts/ # Optional
|
|
332
|
+
references/ # Optional
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
```markdown
|
|
336
|
+
---
|
|
337
|
+
description: Debugging methodology. Use when asked to debug or troubleshoot.
|
|
338
|
+
---
|
|
339
|
+
# Debugging
|
|
340
|
+
|
|
341
|
+
## reproduce
|
|
342
|
+
First, reproduce the bug consistently.
|
|
343
|
+
Find the minimal reproduction case.
|
|
344
|
+
|
|
345
|
+
## isolate
|
|
346
|
+
Binary search through the codebase (git bisect).
|
|
347
|
+
Comment out components to isolate the cause.
|
|
348
|
+
|
|
349
|
+
## fix
|
|
350
|
+
Fix the root cause, not the symptom.
|
|
351
|
+
Add a test that fails without the fix.
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**`.jinx` file** — a regular jinx with `engine: skill` steps:
|
|
355
|
+
|
|
356
|
+
```yaml
|
|
357
|
+
jinx_name: git-workflow
|
|
358
|
+
description: "Git workflow best practices. [Sections: branching, commits, merging]"
|
|
359
|
+
inputs:
|
|
360
|
+
- section: all
|
|
361
|
+
steps:
|
|
362
|
+
- engine: skill
|
|
363
|
+
skill_name: git-workflow
|
|
364
|
+
skill_description: Git workflow best practices.
|
|
365
|
+
sections:
|
|
366
|
+
branching: |
|
|
367
|
+
Use feature branches off main/develop.
|
|
368
|
+
Name branches: feature/, fix/, chore/
|
|
369
|
+
commits: |
|
|
370
|
+
Imperative summary under 72 chars.
|
|
371
|
+
One logical change per commit.
|
|
372
|
+
merging: |
|
|
373
|
+
Prefer squash merges for feature branches.
|
|
374
|
+
Delete branches after merging.
|
|
375
|
+
scripts_json: '[]'
|
|
376
|
+
references_json: '[]'
|
|
377
|
+
assets_json: '[]'
|
|
378
|
+
section: '{{section}}'
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Using Skills
|
|
382
|
+
|
|
383
|
+
In npcsh, skills work as slash commands like any jinx:
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
/debugging # All sections
|
|
387
|
+
/debugging -s reproduce # Just the reproduce section
|
|
388
|
+
/debugging -s list # Available section names
|
|
389
|
+
/code-review -s correctness # Just the correctness section
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
In the agent loop, the agent calls skills automatically when relevant — requesting specific sections to minimize token usage (progressive disclosure).
|
|
393
|
+
|
|
394
|
+
### Importing External Skills
|
|
395
|
+
|
|
396
|
+
Add `SKILLS_DIRECTORY` to your `.ctx` file to load skills from an external directory:
|
|
397
|
+
|
|
398
|
+
```yaml
|
|
399
|
+
model: llama3.2
|
|
400
|
+
provider: ollama
|
|
401
|
+
forenpc: lead-dev
|
|
402
|
+
SKILLS_DIRECTORY: ~/shared-skills
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
All `SKILL.md` folders and `.jinx` skill files in that directory are loaded alongside the team's own jinxs. This lets you maintain a single skills library shared across multiple teams.
|
|
406
|
+
|
|
291
407
|
## Delegation with Review Loop
|
|
292
408
|
|
|
293
409
|
The `/delegate` jinx sends a task to another NPC with automatic review and feedback:
|
|
@@ -581,14 +697,15 @@ npc sample "a sunset over mountains"
|
|
|
581
697
|
| `/git` | Git integration TUI |
|
|
582
698
|
| `/build` | Build team to deployable format (flask, docker, cli, static) |
|
|
583
699
|
| `/team` | Team config browser — context, NPCs, jinxs |
|
|
584
|
-
| `/
|
|
700
|
+
| `/config` | Interactive config editor |
|
|
585
701
|
| `/reattach` | Resume previous conversation sessions |
|
|
586
702
|
| `/delegate` | Delegate task to NPC with review loop |
|
|
587
703
|
| `/web_search` | Web search |
|
|
588
704
|
| `/db_search` | Database search |
|
|
589
705
|
| `/file_search` | File search |
|
|
590
706
|
| `/vixynt` | Generate/edit images |
|
|
591
|
-
| `/roll` |
|
|
707
|
+
| `/roll` | Video creation studio |
|
|
708
|
+
| `/crond` | System task manager (cron, daemons, processes) |
|
|
592
709
|
| `/sample` | Context-free LLM prompt |
|
|
593
710
|
| `/serve` | Serve NPC team as API with OpenAI-compatible endpoints |
|
|
594
711
|
| `/compile` | Compile NPC profiles |
|
|
@@ -642,6 +759,44 @@ Browse all available models across providers (Ollama, OpenAI, Anthropic, etc.),
|
|
|
642
759
|
<img src="gh_images/models.png" alt="Models browser", width=500>
|
|
643
760
|
</p>
|
|
644
761
|
|
|
762
|
+
### `/roll` — Video Creation Studio
|
|
763
|
+
Interactive TUI for generating videos with parameter controls. Edit prompt, model, provider, dimensions, and frame count, then generate. Includes a gallery browser for previously generated videos.
|
|
764
|
+
|
|
765
|
+
```bash
|
|
766
|
+
/roll # Open interactive TUI
|
|
767
|
+
/roll "a sunset" # Generate video directly (one-shot mode)
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
<p align="center">
|
|
771
|
+
<img src="gh_images/roll.png" alt="Roll Video Creation Studio" width=500>
|
|
772
|
+
</p>
|
|
773
|
+
|
|
774
|
+
### `/config` — Configuration Editor
|
|
775
|
+
Interactive TUI for editing `~/.npcshrc` settings — models, providers, modes, and toggles. Navigate with j/k, edit text fields, toggle booleans, and cycle choices.
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
/config
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
<p align="center">
|
|
782
|
+
<img src="gh_images/config.png" alt="Config editor TUI" width=500>
|
|
783
|
+
</p>
|
|
784
|
+
|
|
785
|
+
### `/crond` — System Task Manager
|
|
786
|
+
Multi-tab TUI for managing cron jobs, systemd user daemons, and system processes. Create new cron jobs and daemons using natural language, start/stop/restart services, kill processes, and monitor resource usage.
|
|
787
|
+
|
|
788
|
+
```bash
|
|
789
|
+
/crond
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
<p align="center">
|
|
793
|
+
<img src="gh_images/crond.png" alt="Crond Cron tab" width=500>
|
|
794
|
+
<img src="gh_images/crondaemon.png" alt="Crond Daemons tab" width=500>
|
|
795
|
+
</p>
|
|
796
|
+
<p align="center">
|
|
797
|
+
<img src="gh_images/cron_processes.png" alt="Crond Processes tab" width=500>
|
|
798
|
+
</p>
|
|
799
|
+
|
|
645
800
|
# Memory & Knowledge Graph
|
|
646
801
|
|
|
647
802
|
`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.
|
|
@@ -893,8 +1048,14 @@ export PERPLEXITY_API_KEY='your_perplexity_key'
|
|
|
893
1048
|
npc_team/
|
|
894
1049
|
├── jinxs/
|
|
895
1050
|
│ ├── modes/ # TUI modes (alicanto, corca, kg, yap, etc.)
|
|
1051
|
+
│ ├── skills/ # Skills — knowledge-content jinxs
|
|
1052
|
+
│ │ ├── code-review/ # SKILL.md folder format
|
|
1053
|
+
│ │ │ └── SKILL.md
|
|
1054
|
+
│ │ ├── debugging/
|
|
1055
|
+
│ │ │ └── SKILL.md
|
|
1056
|
+
│ │ └── git-workflow.jinx # .jinx format
|
|
896
1057
|
│ ├── lib/
|
|
897
|
-
│ │ ├── core/ # Core tools (python, sh, sql, edit_file, delegate, etc.)
|
|
1058
|
+
│ │ ├── core/ # Core tools (python, sh, sql, skill, edit_file, delegate, etc.)
|
|
898
1059
|
│ │ │ └── search/ # Search tools (web_search, db_search, file_search)
|
|
899
1060
|
│ │ ├── utils/ # Utility jinxs (set, compile, serve, teamviz, etc.)
|
|
900
1061
|
│ │ ├── browser/ # Browser automation (browser_action, screenshot, etc.)
|
|
@@ -62,10 +62,11 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
62
62
|
- **Computer Use**
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
/plonk
|
|
65
|
+
/plonk
|
|
66
66
|
```
|
|
67
67
|
<p align="center">
|
|
68
|
-
<img src="gh_images/plonk.png" alt="Plonk GUI automation TUI"
|
|
68
|
+
<img src="gh_images/plonk.png" alt="Plonk GUI automation TUI — task entry" width=500>
|
|
69
|
+
<img src="gh_images/plonk_task.png" alt="Plonk GUI automation — completed flight search task" width=500>
|
|
69
70
|
</p>
|
|
70
71
|
|
|
71
72
|
- **Generate Images with Vixynt**
|
|
@@ -84,11 +85,14 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
84
85
|
<p align="center">
|
|
85
86
|
<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>
|
|
86
87
|
</p>
|
|
87
|
-
- **Generate Videos**
|
|
88
|
+
- **Generate Videos with Roll**
|
|
88
89
|
|
|
89
90
|
```bash
|
|
90
91
|
/roll
|
|
91
92
|
```
|
|
93
|
+
<p align="center">
|
|
94
|
+
<img src="gh_images/roll.png" alt="Roll Video Creation Studio" width=500>
|
|
95
|
+
</p>
|
|
92
96
|
|
|
93
97
|
- Generate videos directly
|
|
94
98
|
|
|
@@ -100,6 +104,16 @@ Once installed, run `npcsh` to enter the NPC shell. The pip installation also pr
|
|
|
100
104
|
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/test_data/hatridingdog.gif" alt="video of a hat riding a dog", width=350>
|
|
101
105
|
</p>
|
|
102
106
|
|
|
107
|
+
- **Multi-Agent Discussions**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
/convene "Is the universe a simulation?" npcs=alicanto,corca,guac rounds=3
|
|
111
|
+
```
|
|
112
|
+
<p align="center">
|
|
113
|
+
<img src="gh_images/convene.png" alt="Convene — multi-NPC structured discussion" width=500>
|
|
114
|
+
<img src="gh_images/convene_convene.png" alt="Convene — live discussion view" width=500>
|
|
115
|
+
</p>
|
|
116
|
+
|
|
103
117
|
- **Serve an NPC Team**
|
|
104
118
|
```bash
|
|
105
119
|
/serve --port 5337 --cors='http://localhost:5137/'
|
|
@@ -183,6 +197,108 @@ When an NPC is invoked, they can only use the jinxs assigned to them. This creat
|
|
|
183
197
|
|
|
184
198
|
The forenpc (orchestrator) can delegate to any team member based on their specialization.
|
|
185
199
|
|
|
200
|
+
## Skills — Knowledge Content for Agents
|
|
201
|
+
|
|
202
|
+
Skills are jinxs that serve instructional content instead of executing code. They use the `skill.jinx` sub-jinx (just like code jinxs use `python.jinx` or `sh.jinx`) and return sections of methodology on demand.
|
|
203
|
+
|
|
204
|
+
Because skills are jinxs, they're assigned to agents the same way — through the `jinxs:` list in `.npc` files:
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
# reviewer.npc
|
|
208
|
+
name: reviewer
|
|
209
|
+
primary_directive: "You review code and provide feedback."
|
|
210
|
+
jinxs:
|
|
211
|
+
- lib/core/sh
|
|
212
|
+
- lib/core/python
|
|
213
|
+
- skills/code-review
|
|
214
|
+
- skills/debugging
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
The agent sees `code-review` and `debugging` in its tool catalog alongside `sh` and `python`. When it encounters a review task, it calls the skill to get methodology, then uses `sh` or `python` to do the actual work.
|
|
218
|
+
|
|
219
|
+
### Two Authoring Formats
|
|
220
|
+
|
|
221
|
+
**SKILL.md folder** — a folder with a `SKILL.md` file (folder name = skill name):
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
jinxs/skills/debugging/
|
|
225
|
+
SKILL.md # YAML frontmatter + ## sections
|
|
226
|
+
scripts/ # Optional
|
|
227
|
+
references/ # Optional
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
```markdown
|
|
231
|
+
---
|
|
232
|
+
description: Debugging methodology. Use when asked to debug or troubleshoot.
|
|
233
|
+
---
|
|
234
|
+
# Debugging
|
|
235
|
+
|
|
236
|
+
## reproduce
|
|
237
|
+
First, reproduce the bug consistently.
|
|
238
|
+
Find the minimal reproduction case.
|
|
239
|
+
|
|
240
|
+
## isolate
|
|
241
|
+
Binary search through the codebase (git bisect).
|
|
242
|
+
Comment out components to isolate the cause.
|
|
243
|
+
|
|
244
|
+
## fix
|
|
245
|
+
Fix the root cause, not the symptom.
|
|
246
|
+
Add a test that fails without the fix.
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**`.jinx` file** — a regular jinx with `engine: skill` steps:
|
|
250
|
+
|
|
251
|
+
```yaml
|
|
252
|
+
jinx_name: git-workflow
|
|
253
|
+
description: "Git workflow best practices. [Sections: branching, commits, merging]"
|
|
254
|
+
inputs:
|
|
255
|
+
- section: all
|
|
256
|
+
steps:
|
|
257
|
+
- engine: skill
|
|
258
|
+
skill_name: git-workflow
|
|
259
|
+
skill_description: Git workflow best practices.
|
|
260
|
+
sections:
|
|
261
|
+
branching: |
|
|
262
|
+
Use feature branches off main/develop.
|
|
263
|
+
Name branches: feature/, fix/, chore/
|
|
264
|
+
commits: |
|
|
265
|
+
Imperative summary under 72 chars.
|
|
266
|
+
One logical change per commit.
|
|
267
|
+
merging: |
|
|
268
|
+
Prefer squash merges for feature branches.
|
|
269
|
+
Delete branches after merging.
|
|
270
|
+
scripts_json: '[]'
|
|
271
|
+
references_json: '[]'
|
|
272
|
+
assets_json: '[]'
|
|
273
|
+
section: '{{section}}'
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Using Skills
|
|
277
|
+
|
|
278
|
+
In npcsh, skills work as slash commands like any jinx:
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
/debugging # All sections
|
|
282
|
+
/debugging -s reproduce # Just the reproduce section
|
|
283
|
+
/debugging -s list # Available section names
|
|
284
|
+
/code-review -s correctness # Just the correctness section
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
In the agent loop, the agent calls skills automatically when relevant — requesting specific sections to minimize token usage (progressive disclosure).
|
|
288
|
+
|
|
289
|
+
### Importing External Skills
|
|
290
|
+
|
|
291
|
+
Add `SKILLS_DIRECTORY` to your `.ctx` file to load skills from an external directory:
|
|
292
|
+
|
|
293
|
+
```yaml
|
|
294
|
+
model: llama3.2
|
|
295
|
+
provider: ollama
|
|
296
|
+
forenpc: lead-dev
|
|
297
|
+
SKILLS_DIRECTORY: ~/shared-skills
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
All `SKILL.md` folders and `.jinx` skill files in that directory are loaded alongside the team's own jinxs. This lets you maintain a single skills library shared across multiple teams.
|
|
301
|
+
|
|
186
302
|
## Delegation with Review Loop
|
|
187
303
|
|
|
188
304
|
The `/delegate` jinx sends a task to another NPC with automatic review and feedback:
|
|
@@ -476,14 +592,15 @@ npc sample "a sunset over mountains"
|
|
|
476
592
|
| `/git` | Git integration TUI |
|
|
477
593
|
| `/build` | Build team to deployable format (flask, docker, cli, static) |
|
|
478
594
|
| `/team` | Team config browser — context, NPCs, jinxs |
|
|
479
|
-
| `/
|
|
595
|
+
| `/config` | Interactive config editor |
|
|
480
596
|
| `/reattach` | Resume previous conversation sessions |
|
|
481
597
|
| `/delegate` | Delegate task to NPC with review loop |
|
|
482
598
|
| `/web_search` | Web search |
|
|
483
599
|
| `/db_search` | Database search |
|
|
484
600
|
| `/file_search` | File search |
|
|
485
601
|
| `/vixynt` | Generate/edit images |
|
|
486
|
-
| `/roll` |
|
|
602
|
+
| `/roll` | Video creation studio |
|
|
603
|
+
| `/crond` | System task manager (cron, daemons, processes) |
|
|
487
604
|
| `/sample` | Context-free LLM prompt |
|
|
488
605
|
| `/serve` | Serve NPC team as API with OpenAI-compatible endpoints |
|
|
489
606
|
| `/compile` | Compile NPC profiles |
|
|
@@ -537,6 +654,44 @@ Browse all available models across providers (Ollama, OpenAI, Anthropic, etc.),
|
|
|
537
654
|
<img src="gh_images/models.png" alt="Models browser", width=500>
|
|
538
655
|
</p>
|
|
539
656
|
|
|
657
|
+
### `/roll` — Video Creation Studio
|
|
658
|
+
Interactive TUI for generating videos with parameter controls. Edit prompt, model, provider, dimensions, and frame count, then generate. Includes a gallery browser for previously generated videos.
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
/roll # Open interactive TUI
|
|
662
|
+
/roll "a sunset" # Generate video directly (one-shot mode)
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
<p align="center">
|
|
666
|
+
<img src="gh_images/roll.png" alt="Roll Video Creation Studio" width=500>
|
|
667
|
+
</p>
|
|
668
|
+
|
|
669
|
+
### `/config` — Configuration Editor
|
|
670
|
+
Interactive TUI for editing `~/.npcshrc` settings — models, providers, modes, and toggles. Navigate with j/k, edit text fields, toggle booleans, and cycle choices.
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
/config
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
<p align="center">
|
|
677
|
+
<img src="gh_images/config.png" alt="Config editor TUI" width=500>
|
|
678
|
+
</p>
|
|
679
|
+
|
|
680
|
+
### `/crond` — System Task Manager
|
|
681
|
+
Multi-tab TUI for managing cron jobs, systemd user daemons, and system processes. Create new cron jobs and daemons using natural language, start/stop/restart services, kill processes, and monitor resource usage.
|
|
682
|
+
|
|
683
|
+
```bash
|
|
684
|
+
/crond
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
<p align="center">
|
|
688
|
+
<img src="gh_images/crond.png" alt="Crond Cron tab" width=500>
|
|
689
|
+
<img src="gh_images/crondaemon.png" alt="Crond Daemons tab" width=500>
|
|
690
|
+
</p>
|
|
691
|
+
<p align="center">
|
|
692
|
+
<img src="gh_images/cron_processes.png" alt="Crond Processes tab" width=500>
|
|
693
|
+
</p>
|
|
694
|
+
|
|
540
695
|
# Memory & Knowledge Graph
|
|
541
696
|
|
|
542
697
|
`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.
|
|
@@ -788,8 +943,14 @@ export PERPLEXITY_API_KEY='your_perplexity_key'
|
|
|
788
943
|
npc_team/
|
|
789
944
|
├── jinxs/
|
|
790
945
|
│ ├── modes/ # TUI modes (alicanto, corca, kg, yap, etc.)
|
|
946
|
+
│ ├── skills/ # Skills — knowledge-content jinxs
|
|
947
|
+
│ │ ├── code-review/ # SKILL.md folder format
|
|
948
|
+
│ │ │ └── SKILL.md
|
|
949
|
+
│ │ ├── debugging/
|
|
950
|
+
│ │ │ └── SKILL.md
|
|
951
|
+
│ │ └── git-workflow.jinx # .jinx format
|
|
791
952
|
│ ├── lib/
|
|
792
|
-
│ │ ├── core/ # Core tools (python, sh, sql, edit_file, delegate, etc.)
|
|
953
|
+
│ │ ├── core/ # Core tools (python, sh, sql, skill, edit_file, delegate, etc.)
|
|
793
954
|
│ │ │ └── search/ # Search tools (web_search, db_search, file_search)
|
|
794
955
|
│ │ ├── utils/ # Utility jinxs (set, compile, serve, teamviz, etc.)
|
|
795
956
|
│ │ ├── browser/ # Browser automation (browser_action, screenshot, etc.)
|