
# Presence
**Your SSH hosts, as local tabs.**
Persistent remote workspaces, native file editing, search, exec, terminals and port
forwards for coding agents — with **nothing installed on the remote host**.
[English](README.md) · [简体中文](README.zh-CN.md) · [Releases](docs/RELEASE.md) · [MCP server](mcp/README.md)
[](https://www.npmjs.com/package/@rjfan/dsh-presence)
[](https://www.npmjs.com/package/presence-mcp)
[](LICENSE)
[](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)

---
> ⚠️ **A local session is not bound to a remote workspace.** Opening a remote workspace in
> Presence does not turn a local agent session into a remote one. When your session's
> working directory is outside the presence mounts root, `presence_exec` and every other
> `presence_*` tool require an explicit `host` (or `PRESENCE_HOST`); without one they refuse
> with the session's cwd instead of silently running on the last-activated machine. Sessions
> started inside a remote workspace resolve to that machine automatically. See
> [Known limits](#known-limits).
## Why
Running an agent on every remote machine means installing it N times, upgrading it N
times and configuring proxies per host. Running `ssh host '