Skip to content
dsh.fish
Bundle

dsh-wsl-wininput

Targeted Windows input from WSL: invoke a UI Automation element, or send keys and clicks to a chosen window without stealing focus.

Source
173787247
stars
1 stars
License
MIT
Updated
Updated 2 days ago

Readme

# dsh-wsl-wininput

DeepSeek Harness plugin: Targeted Windows input from WSL: invoke a UI Automation element, or send keys and clicks to a chosen window without stealing focus.

Part of **[dsh-wsl-kit](https://github.com/173787247/dsh-wsl-kit)**.

[中文说明 → README.zh.md](./README.zh.md)

## Install

```sh
dsh plugin --profile web add github:173787247/dsh-wsl-wininput
```

## Usage

```
win_invoke action=invoke pid=1234 expectName="Save" expectType=Button
win_invoke action=type pid=1234 text="hello"
win_invoke action=click pid=1234 x=100 y=40
```

## Notes

`expectName` is **required** for `invoke`. Elements are found by name, and the
match must be unique: no match means the element is gone, more than one means the name
is too general to act on. Both are refusals, not best-effort clicks.

An earlier version took the element *index* from a `uia_tree` handle. Testing showed
two consecutive walks of a live window disagree about what sits at a given index, which
turned an invoke into a click on whatever had moved into that slot.

## Requirements

- Windows with WSL, and DeepSeek Harness running inside it.
- PowerShell reachable at the standard path (the plugin finds it itself).

## Tests

```sh
npm test
```

The unit tests run anywhere. The live tests are skipped outside WSL.

## Compatibility

| Field | Value |
|-------|-------|
| **Plugin** | `dsh-wsl-wininput` **0.1.0** |
| **Minimum dsh** | ≥ **0.1.2** (web UI one-shot `?token=` on Windows relay `:3081`) |
| **Latest verified** | See [dsh-wsl-kit Compatibility](https://github.com/173787247/dsh-wsl-kit#compatibility-2026-09) (currently **`0.2.0-rc.2`**) — single source of truth for the suite |
| **Kit set** | `full` or install alone |

## License

MIT

Install

dsh plugin --profile web add github:173787247/dsh-wsl-wininput

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source