You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I’m considering building a local developer tool called ash.
The idea is simple:
let coding agents operate on other machines over SSH.
A coding agent may be running on one machine while the environment it needs exists somewhere else:
a Linux machine
a GPU box
a home server
another development machine with a specific toolchain
Normally I would SSH into that machine myself.
ash would provide the same capability to agents through a small, structured interface.
agent
↓
ash
↓
SSH
↓
remote machine
The initial surface would stay small:
hosts
exec
read
write
stat
For example, an agent could run tests remotely, inspect files, modify them, and get structured results back.
I want ash to stay independent of any specific coding agent.
MCP would be the first integration, but the CLI and MCP interfaces would sit on top of the same core.
Security is an important part of the idea.
Agents should only be able to operate explicitly configured hosts and capabilities. Authentication should use the user’s existing SSH setup, and host-key verification should remain mandatory.
I also want SSH to remain an implementation detail rather than defining the whole project.
The broader abstraction is:
agents operating remote shells and machines.
One direction I’m interested in exploring later is persistent shells.
Instead of only running one-shot commands, an agent could create a remote shell, keep its state, send commands to it over time, and reconnect later. Something like Zellij or tmux could provide the persistence layer.
The main goal is:
give coding agents safe access to machines the developer already has.
I’d like to hear thoughts about the idea, especially around the right remote operations to expose, persistent shell semantics, and where the boundary between remote execution and orchestration should sit.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
ash — Agentic shell for remote machines
I’m considering building a local developer tool called
ash.The idea is simple:
A coding agent may be running on one machine while the environment it needs exists somewhere else:
Normally I would SSH into that machine myself.
ashwould provide the same capability to agents through a small, structured interface.The initial surface would stay small:
For example, an agent could run tests remotely, inspect files, modify them, and get structured results back.
I want
ashto stay independent of any specific coding agent.MCP would be the first integration, but the CLI and MCP interfaces would sit on top of the same core.
Security is an important part of the idea.
Agents should only be able to operate explicitly configured hosts and capabilities. Authentication should use the user’s existing SSH setup, and host-key verification should remain mandatory.
I also want SSH to remain an implementation detail rather than defining the whole project.
The broader abstraction is:
One direction I’m interested in exploring later is persistent shells.
Instead of only running one-shot commands, an agent could create a remote shell, keep its state, send commands to it over time, and reconnect later. Something like Zellij or tmux could provide the persistence layer.
The main goal is:
I’d like to hear thoughts about the idea, especially around the right remote operations to expose, persistent shell semantics, and where the boundary between remote execution and orchestration should sit.
All contributions are welcome.
All reactions