# Eli Mode · DSH Agent Preset

English | [中文](README.md) · [GitHub](https://github.com/CeilCelia/dsh-eli-mode)

[![npm version](https://img.shields.io/npm/v/dsh-eli-mode)](https://www.npmjs.com/package/dsh-eli-mode)

Eli Mode is an agent preset for [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness)
built around **wiki-driven long-term memory and skills**, on an extremely minimal
Harness setup.


## Features

- **Wiki-driven memory**: a persistent, cross-session wiki that replaces the memory and
  skill modules — try it and you'll know. Entries cross-link with `[[id]]`; forward/back
  links and the tree index are maintained automatically.
- **Extremely minimal Harness**: only the essential tools; the injected system prompt and
  context are deliberately tuned.
- **Management page**: Settings → Plugin Configuration → Eli Mode — edit the persona prompt
  and the knowledge-base injection prompt from a form.
- **UI polish (submodule eli-polish)**: adds a KB tab, token stats, tool-call collapsing
  and character art on top of the default theme. **Off by default** — tick "UI polish" in the
  Eli Mode config page to enable it (no restart needed).
## Install

This plugin is listed on **dsh-market**: if you have dsh-market installed, search for `eli-mode` in **Settings → Plugin Market** to install it.

Requires DSH 0.1.0-rc.6 or newer (Node.js >= 22) and pnpm (`npm install -g pnpm` — the `dsh plugin` command depends on it).

```sh
npx -y @deepseek-ai/dsh plugin --profile web add dsh-eli-mode@latest
```

After restarting `dsh web`:

1. Open a new session and pick the **Eli Mode** preset;
2. On first run a default knowledge base is created under `~/.dsh/eli-knowledge/`
   (existing content is never overwritten);
3. Settings → Plugin Configuration → Eli Mode: edit the persona prompt and the KB
   injection prompt (**takes effect on new sessions**), or tick "UI polish" and swap the
   character art (**takes effect immediately**).

### Preset updates

After upgrading the plugin (`dsh plugin --profile web update`), restarting re-syncs
`~/.dsh/.agent-presets/eli-mode/` from the bundled preset.
## Desktop edition (Windows)

An out-of-the-box Windows desktop build: bundles this plugin, enables the
polish/skin by default, auto-initializes on first run, and defaults new
sessions to the Eli Mode preset.

**Download**: [GitHub Releases](https://github.com/CeilCelia/dsh-eli-mode/releases) (DSH Eli Mode v0.1.10, Windows x64)

![Desktop edition](https://ceilcelia.github.io/dsh-eli-mode/assets/figure_package.png)

Built on [anywhere-labs/deepseek-harness-desktop](https://github.com/anywhere-labs/deepseek-harness-desktop) (MIT) - itself a community shell of the official [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness). The distribution carries full LICENSE/NOTICE. Not an official DeepSeek product.

## Configuration

### Management page (recommended)

Settings → Plugin Configuration → Eli Mode:

| Field | Description |
|---|---|
| Persona prompt | Identity / style / memory rules; Role, cwd and date are generated by the system |
| KB injection prompt | Template injected with the directory list; `{{tree}}` is replaced by the list; empty = no injection |
| Inject KB index | Toggle: whether the directory index goes into the session prompt |
| UI polish | Toggle: character art, in-chat "Knowledge base" tab, token stats, tool-call collapsing; applies immediately |

> **Works out of the box**: the plugin ships a built-in settings bridge (loopback) so the config card needs no official-allowlist patch. If your deployment disables the bridge (e.g. remote access), edit `~/.dsh/settings.yaml` directly.

### Direct settings.yaml

```yaml
eli-mode:
  personaPrompt: |
    # Your persona prompt (multiline)
  kbIndexPrompt: |
    Knowledge base index below; use kb_read / kb_search on demand:

    {{tree}}
  kbIndex: true
  polish: false   # true = enable UI polish
```
## Using the knowledge base

![Knowledge base page](https://ceilcelia.github.io/dsh-eli-mode/assets/figure_kb.png)



- Web: `http://<dsh-host>/eli-kb` (browse / edit / search; the page follows the dsh UI language)
- In chat: `kb_search <query>` → `kb_read <id>` → `kb_write <title> + <content>` to persist
- Storage: `~/.dsh/eli-knowledge/wiki/` (override with `ELI_KB_ROOT`)
- The index (`index.md`) is regenerated automatically — no manual maintenance
- With polish on, the composer shows token usage; when a `DEEPSEEK_API_KEY` is configured
  (dsh credentials service or environment variable) it also shows the account balance
## Uninstall

```sh
npx -y @deepseek-ai/dsh plugin --profile web remove dsh-eli-mode
```

Restart `dsh web`. Preset files and KB data remain under `~/.dsh/` for manual cleanup.
## Project layout

```
packages/
└── eli-mode/            # Core package (npm: dsh-eli-mode)
    ├── lib/             # Host modules (KB service, web routes, settings namespace, preset sync) + client (management card + optional polish)
    ├── presets/         # Agent preset (auto-synced to ~/.dsh/.agent-presets/)
    ├── wiki/            # Default knowledge base (seeded on first run)
    └── ui/              # KB web page and character art
```
## License & attribution

- Code: Apache-2.0 (see LICENSE)
- Character art (`ui/art-left.webp` main UI + `ui/art-right.webp` wiki) is a derivative of
  the "Whale Girl" character, **CC BY-NC-SA 4.0 (non-commercial)**; full attribution chain
  in [NOTICE](NOTICE):

1. **上善 (Shangshan)** ([Pixiv](https://www.pixiv.net/users/62155430) ·
   [Bilibili](https://b23.tv/8h5L4xz)) — original creator of the whale-girl character
2. **zipzip / ZipZipPipe** ([Pixiv](https://www.pixiv.net/users/18604994) ·
   [Bilibili](https://b23.tv/Pnw6nG8)) — the DeepSeek-element maid whale-girl redesign
   (generated with GPT Image 2)
3. **Small-tailqwq** ([dsh-deep-whale](https://github.com/Small-tailqwq/dsh-deep-whale)) —
   the DeepSeek-element material curation (tertiary derivative)

Special thanks to the creators above — their art and curation give this UI its soul.

