Open-source projects
The public projects this app is built on. Exact versions are pinned in
client/package-lock.json, desktop/runtime/tools.json
and desktop/runtime/requirements.lock.
This project
| Project | Role |
|---|---|
| EDMORE | The assistant, desktop app and this documentation |
Assistant
| Project | Role |
|---|---|
| DeepSeek Harness | Agent runtime: loop, tools, sessions, web server |
| Cordis | Plugin framework; the Harness ships its own build |
| Model Context Protocol | How the assistant reaches instrument tools |
| WeKnora | Wiki knowledge base |
| tsx | Runs the TypeScript client |
| yaml | Reads profile patches |
| node-pty | Terminal support in the Harness |
Desktop app
| Project | Role |
|---|---|
| Electron | Application shell |
| electron-builder | Builds the installer |
| Node.js | Bundled runtime for the assistant |
| uv | Installs Python and its packages on first run |
| pnpm | Installs Cordis plugins |
Instrument layer
| Project | Role |
|---|---|
| PyTango | Tango device server and database; hosted on GitLab |
| FastMCP | The MCP gateway |
| MCP Python SDK | MCP protocol support in Python |
| aiohttp | HTTP in the device service |
| websockets | Link between Twin 3 and its engine window |
| asyncroscopy | The TEM tool interface is adapted from it |
| jsonschema | Checks tool arguments |
Python libraries
| Project | Role |
|---|---|
| NumPy, SciPy | Numerics |
| Pillow, opencv-python | Images |
| h5py | HDF5 files |
| lxml, PyYAML | XML and YAML files |
| cryptography | Cryptography |
Related projects
These work with EDMORE but are not part of the desktop app.
| Project | Role |
|---|---|
| Nion Swift | Microscopy interface that can start the source client |
| Cua | Computer use driver; turned off in this app |
Documentation
| Project | Role |
|---|---|
| Excalidraw | The diagrams |
| Marked | Builds this site from Markdown |