Support Agent Servers on remoting (#42683)
<img width="348" height="359" alt="Screenshot 2025-11-13 at 6 53 39 PM" src="https://github.com/user-attachments/assets/6fe75796-8ceb-4f98-9d35-005c90417fd4" /> Also added support for per-target env vars to Agent Server Extensions Closes https://github.com/zed-industries/zed/issues/42291 Release Notes: - Per-target env vars are now supported on Agent Server Extensions - Agent Server Extensions are now available when doing SSH remoting --------- Co-authored-by: Lukas Wirth <me@lukaswirth.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
This commit is contained in:
@@ -46,15 +46,25 @@ Each target must specify:
|
||||
- `archive`: URL to download the archive from (supports `.tar.gz`, `.zip`, etc.)
|
||||
- `cmd`: Command to run the agent server (relative to the extracted archive)
|
||||
- `args`: Command-line arguments to pass to the agent server (optional)
|
||||
- `sha256`: SHA-256 hash string of the archive's bytes (optional, but recommended for security)
|
||||
- `env`: Environment variables specific to this target (optional, overrides agent-level env vars with the same name)
|
||||
|
||||
### Optional Fields
|
||||
|
||||
You can also optionally specify:
|
||||
You can also optionally specify at the agent server level:
|
||||
|
||||
- `sha256`: SHA-256 hash string of the archive's bytes. Zed will check this after the archive is downloaded and give an error if it doesn't match, so doing this improves security.
|
||||
- `env`: Environment variables to set in the agent's spawned process.
|
||||
- `env`: Environment variables to set in the agent's spawned process. These apply to all targets by default.
|
||||
- `icon`: Path to an SVG icon (relative to extension root) for display in menus.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Environment variables can be configured at two levels:
|
||||
|
||||
1. **Agent-level** (`[agent_servers.my-agent.env]`): Variables that apply to all platforms
|
||||
2. **Target-level** (`[agent_servers.my-agent.targets.{platform}.env]`): Variables specific to a platform
|
||||
|
||||
When both are specified, target-level environment variables override agent-level variables with the same name. Variables defined only at the agent level are inherited by all targets.
|
||||
|
||||
### Complete Example
|
||||
|
||||
Here's a more complete example with all optional fields:
|
||||
@@ -79,6 +89,9 @@ archive = "https://github.com/example/agent/releases/download/v2.0.0/agent-linux
|
||||
cmd = "./bin/agent"
|
||||
args = ["serve", "--port", "8080"]
|
||||
sha256 = "def456abc123..."
|
||||
|
||||
[agent_servers.example-agent.targets.linux-x86_64.env]
|
||||
AGENT_MEMORY_LIMIT = "2GB" # Linux-specific override
|
||||
```
|
||||
|
||||
## Installation Process
|
||||
|
||||
Reference in New Issue
Block a user