npcsh 1.1.17__tar.gz → 1.1.19__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.17/npcsh.egg-info → npcsh-1.1.19}/PKG-INFO +110 -14
- {npcsh-1.1.17 → npcsh-1.1.19}/README.md +109 -13
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/_state.py +122 -91
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/alicanto.py +2 -2
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/benchmark/__init__.py +8 -2
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/benchmark/npcsh_agent.py +87 -22
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/benchmark/runner.py +85 -43
- npcsh-1.1.19/npcsh/benchmark/templates/install-npcsh.sh.j2 +35 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/build.py +2 -4
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/completion.py +2 -6
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/config.py +2 -3
- npcsh-1.1.19/npcsh/conversation_viewer.py +389 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/corca.py +0 -1
- npcsh-1.1.19/npcsh/diff_viewer.py +452 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/execution.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/guac.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/mcp_helpers.py +2 -3
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/mcp_server.py +5 -10
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc.py +10 -11
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/bin/benchmark.jinx +1 -1
- npcsh-1.1.19/npcsh/npc_team/jinxs/bin/config_tui.jinx +299 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/bin/memories.jinx +316 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/bin/setup.jinx +240 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/bin/sync.jinx +223 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/bin/team_tui.jinx +327 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/add_tab.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/close_pane.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/close_tab.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/confirm.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/focus_pane.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/list_panes.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/navigate.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/notify.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/open_pane.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/read_pane.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/run_terminal.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/send_message.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/split_pane.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/switch_npc.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/switch_tab.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/write_file.jinx +1 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/zen_mode.jinx +1 -1
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +348 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +339 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx +418 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/mem_review.jinx +73 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/mem_search.jinx +388 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +283 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/sleep.jinx +22 -11
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/core/sql.jinx +20 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/research/paper_search.jinx +412 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +386 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +331 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/alicanto.jinx +356 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/arxiv.jinx +720 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/corca.jinx +430 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/guac.jinx +542 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/plonk.jinx +379 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/pti.jinx +357 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/reattach.jinx +291 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/spool.jinx +350 -0
- npcsh-1.1.19/npcsh/npc_team/jinxs/modes/wander.jinx +455 -0
- {npcsh-1.1.17/npcsh/npc_team/jinxs/bin → npcsh-1.1.19/npcsh/npc_team/jinxs/modes}/yap.jinx +13 -7
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npcsh.py +7 -4
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/plonk.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/pti.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/routes.py +1 -3
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/spool.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/ui.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/wander.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/yap.py +0 -1
- {npcsh-1.1.17 → npcsh-1.1.19/npcsh.egg-info}/PKG-INFO +110 -14
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh.egg-info/SOURCES.txt +20 -4
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh.egg-info/entry_points.txt +4 -3
- {npcsh-1.1.17 → npcsh-1.1.19}/setup.py +1 -1
- npcsh-1.1.19/tests/test_config.py +48 -0
- npcsh-1.1.19/tests/test_jinxs.py +58 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/tests/test_tool_routing.py +16 -3
- npcsh-1.1.17/npcsh/npc_team/jinxs/bin/spool.jinx +0 -161
- npcsh-1.1.17/npcsh/npc_team/jinxs/bin/sync.jinx +0 -230
- npcsh-1.1.17/npcsh/npc_team/jinxs/bin/wander.jinx +0 -242
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +0 -44
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +0 -94
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx +0 -96
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/search/mem_search.jinx +0 -80
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +0 -51
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/core/sql.jinx +0 -16
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/research/arxiv.jinx +0 -76
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/research/paper_search.jinx +0 -101
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +0 -69
- npcsh-1.1.17/npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +0 -176
- {npcsh-1.1.17 → npcsh-1.1.19}/LICENSE +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/MANIFEST.in +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/__init__.py +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/alicanto.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/alicanto.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/corca.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/corca.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/corca_example.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/frederic.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/frederic4.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/guac.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/guac.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/bin/nql.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/bin/roll.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/bin/sample.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/bin/vixynt.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/incognide/incognide.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/browser/browser_action.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/browser/close_browser.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/browser/open_browser.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/click.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/trigger.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/computer_use/wait.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/chat.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/cmd.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/compress.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/edit_file.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/load_file.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/ots.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/paste.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/python.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/search.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/core/sh.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/orchestration/convene.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/orchestration/delegate.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/build.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/compile.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/help.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/init.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/serve.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/set.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/shh.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/switch.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/switches.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/teamviz.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/usage.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/jinxs/lib/utils/verbose.jinx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/kadiefa.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/kadiefa.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/npcsh.ctx +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/npcsh_sibiji.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/plonk.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/plonk.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/plonkjr.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/plonkjr.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/sibiji.npc +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/sibiji.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/spool.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/npc_team/yap.png +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh/parsing.py +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh.egg-info/dependency_links.txt +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh.egg-info/requires.txt +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/npcsh.egg-info/top_level.txt +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/project/__init__.py +0 -0
- {npcsh-1.1.17 → npcsh-1.1.19}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: npcsh
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.19
|
|
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
|
|
@@ -106,31 +106,38 @@ Dynamic: summary
|
|
|
106
106
|
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/npcsh/npcsh.png" alt="npcsh logo" width=600></a>
|
|
107
107
|
</p>
|
|
108
108
|
|
|
109
|
-
#
|
|
109
|
+
# npcsh
|
|
110
110
|
|
|
111
|
-
`npcsh` - a
|
|
112
|
-
|
|
113
|
-
The NPC shell is a suite of programs to make use of multi-modal LLMs and agents in novel interactive modes. Based in the command line, use it wherever you work.
|
|
114
|
-
|
|
115
|
-
- It is developed to work reliably with small models and performs excellently with the state-of-the-art models from major model providers.
|
|
116
|
-
- Fundamentally, the core program of npcsh extends the familiar bash environment with an intelligent layer that lets users seamlessly ask agents questions, run pre-built or custom macros or agents, all without breaking the flow of command-line work.
|
|
117
|
-
- Switching between agents is a breeze in `npcsh`, letting you quickly and easily take advantage of a variety of agents (e.g. coding agents versus tool-calling agents versus prompt-based ReACT Flow agents) and personas (e.g. Data scientist, mapmaker with ennui, etc.).
|
|
118
|
-
- Project variables and context can be stored in team `.ctx` files. Personas (`.npc`) and Jinja execution templates (`.jinx`) are likewise stored in `yaml` within the global `npcsh` team or your project-specific one, letting you focus on adjusting and engineering context and system prompts iteratively so you can constantly improve your agent team's performance.
|
|
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.
|
|
119
112
|
|
|
120
113
|
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 )
|
|
121
115
|
```bash
|
|
122
|
-
# for users who want to mainly use models through APIs (e.g. , gemini, grok, deepseek, anthropic, openai, mistral, , any others provided by litellm ):
|
|
123
116
|
pip install 'npcsh[lite]'
|
|
124
|
-
|
|
117
|
+
```
|
|
118
|
+
For users who want to use and fine-tune local models (this installs `diffusers`/`transformers`/`torch` stack so it is big):
|
|
119
|
+
|
|
120
|
+
```bash
|
|
125
121
|
pip install 'npcsh[local]'
|
|
126
|
-
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
|
|
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
|
|
127
127
|
pip install 'npcsh[yap]'
|
|
128
128
|
```
|
|
129
|
+
|
|
129
130
|
Once installed: run
|
|
130
131
|
```bash
|
|
131
132
|
npcsh
|
|
132
133
|
```
|
|
133
|
-
and you will enter the NPC shell.
|
|
134
|
+
and you will enter the NPC shell.
|
|
135
|
+
|
|
136
|
+
If you do not have any local models
|
|
137
|
+
|
|
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.
|
|
134
141
|
|
|
135
142
|
|
|
136
143
|
# Usage
|
|
@@ -596,6 +603,9 @@ npc vixynt "a sunset over mountains"
|
|
|
596
603
|
| `/teamviz` | Visualize team structure. Usage: `/teamviz save=output.png` |
|
|
597
604
|
| `/ots` | Screenshot analysis. Usage: `/ots` then select area |
|
|
598
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` |
|
|
599
609
|
|
|
600
610
|
### System & Config
|
|
601
611
|
| Command | Description |
|
|
@@ -626,6 +636,92 @@ npc vixynt "a sunset over mountains"
|
|
|
626
636
|
--format (-f) | --num_frames (-num_f) | --sprovider (-s) |
|
|
627
637
|
```
|
|
628
638
|
|
|
639
|
+
## Memory & Knowledge Graph
|
|
640
|
+
|
|
641
|
+
`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
|
+
|
|
643
|
+
### Memory Lifecycle
|
|
644
|
+
|
|
645
|
+
Memories are extracted from conversations and follow this lifecycle:
|
|
646
|
+
|
|
647
|
+
1. **pending_approval** - New memories awaiting review
|
|
648
|
+
2. **human-approved** - Approved and ready for KG integration
|
|
649
|
+
3. **human-rejected** - Rejected (used as negative examples)
|
|
650
|
+
4. **human-edited** - Modified by user before approval
|
|
651
|
+
5. **skipped** - Deferred for later review
|
|
652
|
+
|
|
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
|
|
667
|
+
|
|
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.
|
|
669
|
+
|
|
670
|
+
```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
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
### Knowledge Graph Evolution
|
|
689
|
+
|
|
690
|
+
The `/sleep` command evolves the knowledge graph through consolidation, abstraction, and creative synthesis:
|
|
691
|
+
|
|
692
|
+
```bash
|
|
693
|
+
# Basic sleep (consolidation)
|
|
694
|
+
/sleep
|
|
695
|
+
|
|
696
|
+
# Import approved memories first, then evolve
|
|
697
|
+
/sleep backfill=true
|
|
698
|
+
|
|
699
|
+
# Dream mode - creative synthesis across domains
|
|
700
|
+
/sleep dream=true
|
|
701
|
+
|
|
702
|
+
# Combined backfill and dream
|
|
703
|
+
/sleep backfill=true dream=true
|
|
704
|
+
|
|
705
|
+
# Specific operations
|
|
706
|
+
/sleep ops=prune,deepen,abstract
|
|
707
|
+
```
|
|
708
|
+
|
|
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
|
|
714
|
+
|
|
715
|
+
### Environment Variables
|
|
716
|
+
|
|
717
|
+
```bash
|
|
718
|
+
# Enable/disable automatic KG building (default: enabled)
|
|
719
|
+
export NPCSH_BUILD_KG=1
|
|
720
|
+
|
|
721
|
+
# Database path
|
|
722
|
+
export NPCSH_DB_PATH=~/npcsh_history.db
|
|
723
|
+
```
|
|
724
|
+
|
|
629
725
|
## Read the Docs
|
|
630
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/)
|
|
631
727
|
|
|
@@ -3,31 +3,38 @@
|
|
|
3
3
|
<img src="https://raw.githubusercontent.com/NPC-Worldwide/npcsh/main/npcsh/npcsh.png" alt="npcsh logo" width=600></a>
|
|
4
4
|
</p>
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# npcsh
|
|
7
7
|
|
|
8
|
-
`npcsh` - a
|
|
9
|
-
|
|
10
|
-
The NPC shell is a suite of programs to make use of multi-modal LLMs and agents in novel interactive modes. Based in the command line, use it wherever you work.
|
|
11
|
-
|
|
12
|
-
- It is developed to work reliably with small models and performs excellently with the state-of-the-art models from major model providers.
|
|
13
|
-
- Fundamentally, the core program of npcsh extends the familiar bash environment with an intelligent layer that lets users seamlessly ask agents questions, run pre-built or custom macros or agents, all without breaking the flow of command-line work.
|
|
14
|
-
- Switching between agents is a breeze in `npcsh`, letting you quickly and easily take advantage of a variety of agents (e.g. coding agents versus tool-calling agents versus prompt-based ReACT Flow agents) and personas (e.g. Data scientist, mapmaker with ennui, etc.).
|
|
15
|
-
- Project variables and context can be stored in team `.ctx` files. Personas (`.npc`) and Jinja execution templates (`.jinx`) are likewise stored in `yaml` within the global `npcsh` team or your project-specific one, letting you focus on adjusting and engineering context and system prompts iteratively so you can constantly improve your agent team's performance.
|
|
8
|
+
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.
|
|
16
9
|
|
|
17
10
|
To get started:
|
|
11
|
+
For users who want to mainly use models through APIs (`ollama`, `gemini`, `kimi`, `grok`, `deepseek`, `anthropic`, `openai`, `mistral`, or any others provided by litellm )
|
|
18
12
|
```bash
|
|
19
|
-
# for users who want to mainly use models through APIs (e.g. , gemini, grok, deepseek, anthropic, openai, mistral, , any others provided by litellm ):
|
|
20
13
|
pip install 'npcsh[lite]'
|
|
21
|
-
|
|
14
|
+
```
|
|
15
|
+
For users who want to use and fine-tune local models (this installs `diffusers`/`transformers`/`torch` stack so it is big):
|
|
16
|
+
|
|
17
|
+
```bash
|
|
22
18
|
pip install 'npcsh[local]'
|
|
23
|
-
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
For users who want to use the voice mode `yap` (see also the OS-specific installation instructions for installing needed system audio libraries)
|
|
23
|
+
```bash
|
|
24
24
|
pip install 'npcsh[yap]'
|
|
25
25
|
```
|
|
26
|
+
|
|
26
27
|
Once installed: run
|
|
27
28
|
```bash
|
|
28
29
|
npcsh
|
|
29
30
|
```
|
|
30
|
-
and you will enter the NPC shell.
|
|
31
|
+
and you will enter the NPC shell.
|
|
32
|
+
|
|
33
|
+
If you do not have any local models
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
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.
|
|
31
38
|
|
|
32
39
|
|
|
33
40
|
# Usage
|
|
@@ -493,6 +500,9 @@ npc vixynt "a sunset over mountains"
|
|
|
493
500
|
| `/teamviz` | Visualize team structure. Usage: `/teamviz save=output.png` |
|
|
494
501
|
| `/ots` | Screenshot analysis. Usage: `/ots` then select area |
|
|
495
502
|
| `/sleep` | Evolve knowledge graph. Usage: `/sleep --ops link_facts,deepen` |
|
|
503
|
+
| `/kg_search` | Search knowledge graph with multiple modes. Usage: `/kg_search query mode=hybrid depth=2` |
|
|
504
|
+
| `/mem_search` | Search approved memories. Usage: `/mem_search query status=approved top_k=10` |
|
|
505
|
+
| `/mem_review` | Review pending memories interactively. Usage: `/mem_review limit=50` |
|
|
496
506
|
|
|
497
507
|
### System & Config
|
|
498
508
|
| Command | Description |
|
|
@@ -523,6 +533,92 @@ npc vixynt "a sunset over mountains"
|
|
|
523
533
|
--format (-f) | --num_frames (-num_f) | --sprovider (-s) |
|
|
524
534
|
```
|
|
525
535
|
|
|
536
|
+
## Memory & Knowledge Graph
|
|
537
|
+
|
|
538
|
+
`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.
|
|
539
|
+
|
|
540
|
+
### Memory Lifecycle
|
|
541
|
+
|
|
542
|
+
Memories are extracted from conversations and follow this lifecycle:
|
|
543
|
+
|
|
544
|
+
1. **pending_approval** - New memories awaiting review
|
|
545
|
+
2. **human-approved** - Approved and ready for KG integration
|
|
546
|
+
3. **human-rejected** - Rejected (used as negative examples)
|
|
547
|
+
4. **human-edited** - Modified by user before approval
|
|
548
|
+
5. **skipped** - Deferred for later review
|
|
549
|
+
|
|
550
|
+
### Memory Commands
|
|
551
|
+
|
|
552
|
+
```bash
|
|
553
|
+
# Search through approved memories
|
|
554
|
+
/mem_search python # Keyword search
|
|
555
|
+
/mem_search python status=approved # Filter by status
|
|
556
|
+
/mem_search python top_k=20 # Limit results
|
|
557
|
+
|
|
558
|
+
# Review pending memories interactively
|
|
559
|
+
/mem_review # Review with default limit
|
|
560
|
+
/mem_review limit=50 # Review more at once
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
### Knowledge Graph
|
|
564
|
+
|
|
565
|
+
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.
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
# Keyword search
|
|
569
|
+
/kg_search python # Simple keyword match
|
|
570
|
+
|
|
571
|
+
# Semantic similarity search
|
|
572
|
+
/kg_search python mode=embedding # Find semantically similar facts
|
|
573
|
+
|
|
574
|
+
# Graph traversal search
|
|
575
|
+
/kg_search python mode=link depth=3 # Traverse graph links
|
|
576
|
+
|
|
577
|
+
# Hybrid search (combines methods)
|
|
578
|
+
/kg_search python mode=all # All methods combined
|
|
579
|
+
|
|
580
|
+
# Explore concepts
|
|
581
|
+
/kg_search type=concepts # List all concepts
|
|
582
|
+
/kg_search concept="Machine Learning" # Explore a specific concept
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
### Knowledge Graph Evolution
|
|
586
|
+
|
|
587
|
+
The `/sleep` command evolves the knowledge graph through consolidation, abstraction, and creative synthesis:
|
|
588
|
+
|
|
589
|
+
```bash
|
|
590
|
+
# Basic sleep (consolidation)
|
|
591
|
+
/sleep
|
|
592
|
+
|
|
593
|
+
# Import approved memories first, then evolve
|
|
594
|
+
/sleep backfill=true
|
|
595
|
+
|
|
596
|
+
# Dream mode - creative synthesis across domains
|
|
597
|
+
/sleep dream=true
|
|
598
|
+
|
|
599
|
+
# Combined backfill and dream
|
|
600
|
+
/sleep backfill=true dream=true
|
|
601
|
+
|
|
602
|
+
# Specific operations
|
|
603
|
+
/sleep ops=prune,deepen,abstract
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
**Operations:**
|
|
607
|
+
- **prune** - Remove redundant or low-value facts
|
|
608
|
+
- **deepen** - Add detail to existing facts
|
|
609
|
+
- **abstract** - Create higher-level generalizations
|
|
610
|
+
- **link** - Connect related facts and concepts
|
|
611
|
+
|
|
612
|
+
### Environment Variables
|
|
613
|
+
|
|
614
|
+
```bash
|
|
615
|
+
# Enable/disable automatic KG building (default: enabled)
|
|
616
|
+
export NPCSH_BUILD_KG=1
|
|
617
|
+
|
|
618
|
+
# Database path
|
|
619
|
+
export NPCSH_DB_PATH=~/npcsh_history.db
|
|
620
|
+
```
|
|
621
|
+
|
|
526
622
|
## Read the Docs
|
|
527
623
|
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/)
|
|
528
624
|
|