← Back
FeaturedAIProducts#AI Agent#Corv Client#SSH#Open Source

Corv v1.1 Released: SSH Execution Client Built for AI Agents

Hacker News 热门(Algolia · 中文化)T2
01:0607/25, 01:06 AMHN digestRead the original ↗Export MD ↓

Score

75
Information gain7 ×0.3

介绍了AI专用SSH客户端的理念和版本更新,对大多数开发者来说是较新信息,但SSH本身不是新概念。

Content quality8 ×0.2

内容清晰,突出了核心差异化功能,并给出了实际的改进点,技术描述准确。

Practical value9 ×0.2

直接解决了AI Agent远程执行命令的痛点,开源免费,可被广泛采用,实用价值高。

Timeliness10 ×0.15

v1.1刚刚发布,信息时效性极强,正值AI Agent热潮。

Source reliability9 ×0.15

来源为Hacker News热门帖,直接关联GitHub仓库,信息可靠可信。

Base 83.5 × T2 Source weight ×0.9 = 75

Curation line 70Selected

Why selected

The tool directly addresses the practical problem of remote operations for AI agents, the update brings substantial improvements, and it has high community attention.

AI commentary

「This news is great for any developer building or using AI agents. Corv Client bridges the gap between agents and SSH, allowing agents to operate remote servers more naturally. Its open-source nature is especially noteworthy, letting you customize authentication and reconnection strategies. If you work in DevOps or infra AI, give this tool a try—it might significantly simplify your workflow.」

Quick overview

Corv Client is an SSH client designed for both AI agents and humans, addressing the challenge of remote command execution for AI. Version 1.1 brings improved connection stability, enhanced authentication support, and better agent integration, enabling AI to securely and efficiently manage remote infrastructure via SSH. The project is open source on GitHub, suitable for developers, DevOps engineers, and teams building automated agents.

  • SSH client optimized for AI agents, with direct integration into AI workflows
  • v1.1 improves connection stability and adds support for multiple authentication methods
  • Open-source project with active community, extensible and customizable
  • Lowers the barrier for AI agents to execute remote commands, boosting automation efficiency

Full text

Showing the source text; the full translation is being generated.

Corv Client

Corv Client

The SSH client for AI agents and humans. Connect by name. Reuse authenticated SSH connections. Keep secrets local.

Latest release: Corv v1.1 | Complete changelog

AI agents don't use SSH the way humans do. Raw SSH requires the calling workflow to manage connection details, authentication configuration, prompts, and terminal output. Independent invocations also repeat connection setup unless OpenSSH multiplexing is configured, while long-running work commonly needs tmux, nohup, or custom scripts.

Corv is built for agent-driven infrastructure. It lets agents connect by name, execute commands without exposing passwords or private keys, receive structured JSON output, reuse a warm authenticated connection, and detach and resume long-running jobs. Humans use the same saved connection profiles through an interactive terminal UI.

Install

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/khalid-src/corv-client/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/khalid-src/corv-client/main/install.ps1 | iex

With Go

go install github.com/khalid-src/corv-client/cmd/corv@latest

Update or remove

corv update      # download and install the latest release (checksum-verified)
corv uninstall   # remove corv; add --purge to also delete saved connections

corv update only runs when you run it - Corv never updates itself in the background.

Usage

Corv Client - an AI agent and a human both driving the same connection

Manage connections interactively:

corv

The terminal interface supports keyboard and mouse navigation to add, edit, import from ~/.ssh/config, and connect. Connections can also be managed from the command line:

corv add prod-api deploy@api.example.com                    # prompts for a password if needed
corv add prod-api deploy@api.example.com --key ~/.ssh/id_ed25519
corv add prod-db dbadmin@db.example.com --jump ops@bastion.example.com
corv import                                          # import hosts from ~/.ssh/config
corv list
corv test prod-api                                   # diagnose connection stages
corv status                                          # show warm connections and active runs
corv rm prod-api

corv test <name> opens and immediately closes a one-off SSH connection. It checks resolution, TCP reachability, bastion routing, the SSH handshake, host-key trust, and authentication without running a remote command. Add --json for structured diagnostics. Raw targets and addresses require --full. corv status reports the connections the local broker currently holds, hides targets unless --full is specified, and does not start a stopped broker.

Hosts behind one or more bastions are reached with --jump (OpenSSH -J syntax: user@host1,user@host2). Jump hosts authenticate with ssh-agent or your keys; the target uses the connection's own credentials.

corv add reads any password without echo and stores it in the local encrypted vault; it is never passed as an argument.

corv vault reset clears stored SSH passwords and private-key passphrases while keeping saved connections. It asks for confirmation and stops the local broker before changing state. If the encrypted connection store cannot be opened, Corv cannot determine whether its key is unavailable or the config file is damaged; it refuses a normal reset. corv vault reset --all explicitly removes the local connection store, vault data, backend marker, and Corv-managed local key file. Externally provisioned OS keychain entries are not removed.

Connect interactively:

corv prod-api

Run a command non-interactively (the agent path):

corv prod-api -- uname -a
corv prod-api --json -- df -h             # structured output for tools
corv prod-api -- ./deploy.sh
echo 'cd /app && run "$X" | grep foo' | corv prod-api --json --stdin
corv prod-api --json --stdin < script.sh

A typical agent instruction such as "check disk usage on prod-api" requires only corv prod-api -- df -h.

Command handling after -- is designed to do what you mean:

  • a single argument is treated as a remote shell command line and run as-is, like ssh host "cmd" - e.g. corv srv -- "cd /app && make";
  • multiple arguments are passed as a preserved argument vector, each shell-quoted so the remote cannot re-split them - e.g. corv srv -- sh -lc "cd /app && make".

This preserves argument boundaries for callers that construct command vectors.

For complex shell text, nested quotes, or multi-line scripts, use an stdin mode. --stdin-base64 is the cross-shell-safe option because only ASCII base64 passes through the local pipe.

Windows / PowerShell

PowerShell can mangle quoting and pipe encoding, so encode a non-trivial remote command as UTF-8 base64 and send it with --stdin-base64:

$b64=[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(@'
set -eu
cd /srv/app && ./deploy.sh
'@)); $b64 | corv prod-api --json --stdin-base64

Only ASCII base64 crosses the pipe, so the command arrives unchanged - quoting and any non-ASCII text survive intact. A simple exact argument vector can still use -- <command>.

Long commands are detached on the server automatically. If a command is still running after the broker's wait window, Corv returns the new bounded output, the run id, and exit code 75. Re-run the exact same command to watch the next delta; it attaches to the existing remote job and does not start a second copy. When the job finishes, Corv retains up to 20 MiB locally and removes the remote temporary files. If a log is larger, Corv keeps its first 4 MiB and its final section with an omission marker between them, so late failures are not lost. truncated: true in corv output --json reports this case:

corv prod-api -- ./long-install.sh
corv output <run-id> [pattern]         # bounded status/output view
# The byte-identical original command can also reattach while it is running.

CORV_WAIT controls how long the broker waits before returning a running response. It accepts bare seconds (CORV_WAIT=30) or a Go duration (CORV_WAIT=500ms, CORV_WAIT=2m) and is read from the environment of each corv invocation, so it takes effect immediately without restarting the broker. corv output <run-id> checks an unfinished detached run and finalizes it automatically once the remote exit status exists. Remote temp files are cleaned on finalization. The startup sweep removes completed remote remnants older than 24 hours; it never deletes a run without an exit status because age alone cannot distinguish an abandoned run from a silent live process. Saved local run logs and their metadata are retained for 24 hours and removed on broker startup.

corv output exits 75 while a run is active, with the remote exit code when it completes, and 1 for a Corv retrieval error. The process exit code and JSON exit_code field use the same value.

All agent-facing output is bounded. Completed responses and corv output return a middle-out view of roughly 32 KiB; running responses use a smaller budget. Pass a pattern to corv output to select relevant lines before that budget is applied. JSON responses report original_bytes, saved_bytes, returned_bytes, truncated (the retained log omitted bytes), and output_truncated (the returned view was bounded) when applicable.

Remote command execution requires a POSIX shell and standard Unix command-line tools. Windows OpenSSH servers are not supported as remote execution targets.

Use with AI agents

Corv is built for AI coding agents (Claude, Codex, and others). Ready-to-use agent instructions live in integrations/:

  • Claude / Claude Code - copy integrations/claude/corv-ssh into ~/.claude/skills/ (or a project's .claude/skills/).
  • Codex - copy integrations/codex/AGENTS.md into your project.

The agent then runs commands by name and reads structured output:

corv <name> --json -- <command>

For non-trivial scripts or heavily quoted commands, agents should send the remote command as UTF-8 base64:

$b64=[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(@'
set -eu
cd /srv/app && ./deploy.sh
'@)); $b64 | corv <name> --json --stdin-base64

Agents should not run corv list --full, corv doctor --full, corv test <name> --full, or corv status --full unless the user explicitly asks; those modes show local connection details. Never put passwords, private keys, API tokens, bootstrap tokens, bearer tokens, or other secrets on the command line. Corv command history records command lines.

See integrations/README.md for details.

Connection reuse

A local broker process holds one authenticated SSH connection per saved profile. Each corv <name> -- <cmd> runs as a new channel over the held connection, so the connection and authentication cost is paid once rather than on every command. This behaviour is identical on Linux, macOS, and Windows.

OpenSSH can also reuse connections on Unix through ControlMaster and a control socket. Corv provides the same warm-connection model through its local broker so agent workflows behave consistently on Windows, macOS, and Linux.

The broker starts automatically on first use, exits after 15 minutes idle, and installs nothing on the server. It manages SSH connections only; it does not allocate a local pseudo-terminal, parse shell output, or maintain remote shell state. A held connection can be dropped explicitly:

corv disconnect prod-api

Scope and limitations:

  • This is connection reuse, not remote session persistence. Each command runs in its own shell with its own exit code; shell state such as the working directory does not carry between commands (combine them in a single command when required, e.g. cd /app && make).
  • Because the broker is local, a held connection does not survive the local machine sleeping or a network interruption. Persistence across those events requires remote support, which Corv does not depend on by design.

Interactive sessions open a dedicated connection and proxy the remote pseudo-terminal to the local terminal, so no local pseudo-terminal is required on any platform.

Output processing

Corv normalises command output for programmatic consumers:

  • progress bars and other carriage-return redraws are collapsed to their final state rather than reproduced as thousands of lines;
  • ANSI control sequences, including colour, are removed;
  • a command's stdout and stderr are captured together, interleaved in the order they were written, and returned in stdout; with --json, the stderr field carries Corv-level errors (e.g. transport failures), not the remote command's own stderr;
  • completed and running responses use fixed byte budgets and preserve the beginning and end with a ... N line(s) hidden ... marker; corv output <run-id> [pattern] queries the retained log through the same bounded presentation contract;
  • failures are classified (auth_failed, unknown_host, unknown_connection, bad_request, local_error, unreachable, host_key, timeout, disconnected, resource_exhausted, ssh_error), and the remote exit code is propagated as the process exit code.

Security model

Corv runs entirely on the client and implements SSH through the maintained Go SSH library (golang.org/x/crypto/ssh).

  • Nothing is installed on the destination server.
  • Connection profiles are encrypted at rest with the same local vault key used for stored credentials, so the connection file does not expose hosts, users, or paths in plaintext (corv list is the way to view them).
  • Passwords and key passphrases are stored in a local encrypted vault. The vault key is protected by DPAPI on Windows; on macOS and Linux Corv reads a provisioned Keychain / Secret Service key when present (it never auto-creates one) and otherwise uses a 0600 key file, the default. Stored secrets are read only by the local broker and sent over the authenticated SSH connection; they do not appear on a command line, in logs, or in command output. Key-based authentication or ssh-agent is recommended.
  • Audit logs and saved run logs are local and can contain the command text or remote output an operator asked Corv to run. Never put passwords, private keys, API tokens, bootstrap tokens, bearer tokens, or other secrets on the command line; command history records command lines.
  • Authentication is attempted in order: configured identity file, ssh-agent (via SSH_AUTH_SOCK on Unix, the openssh-ssh-agent named pipe on Windows), default ~/.ssh keys, then password.
  • Bastion (ProxyJump) hops are host-key verified individually and can authenticate with ssh-agent, default keys, a per-hop identity file, or a password/passphrase sourced from a saved profile.
  • Host keys are verified against ~/.ssh/known_hosts. An unknown host is rejected unless approved interactively; the broker never accepts unknown hosts automatically. A changed host key is always rejected.
  • The broker uses OS-permissioned local IPC (Unix socket or Windows named pipe) plus an endpoint token for defense in depth.

Architecture

Corv is composed of small, independent modules so that the SSH backend or the output processor can be replaced without affecting the rest:

Package Responsibility
internal/profile connection definitions, storage, ~/.ssh/config import
internal/vault local encrypted secret store and key backends
internal/sshconn SSH transport (x/crypto/ssh): dial, auth, exec, shell
internal/broker resident process holding one connection per profile
internal/output output processor (collapse, strip, bound)
internal/audit local command history
internal/tui interactive terminal UI (Bubble Tea)
internal/cli command-line routing
internal/statelock cross-process lock serialising local state writes
internal/atomicfile crash-safe atomic file writes
internal/paths on-disk file locations

Development

go build ./...
go vet ./...
go test ./...

The Makefile also provides make build and make build-all on systems with make. Corv targets Go 1.25+ with automatic toolchain selection; CI and release builds use the version pinned in go.mod on Linux, macOS, and Windows.

License

See LICENSE.

Related items

92

Five-dimension score

Information gain8 ×0.3

首次系统介绍 OpenRouter 缓存与路由协同策略,信息增量较高。

Content quality9 ×0.2

官方教程,结构清晰,包含原理、示例和实测效果。

Practical value10 ×0.2

直接明确降低 API 成本,开发者可立即应用。

Timeliness10 ×0.15

刚刚发布,且对当前 Agent 开发热潮具有及时指导意义。

Source reliability10 ×0.15

来源为 OpenRouter 官方 RSS 和官网,信源权威可靠。

Base 92 × T1 Source weight ×1 = 92

Curation line 60Selected

08:00OpenRouter:Announcements(RSS)T1RSS

FeaturedOpenRouter Launches Prompt Caching with Sticky Routing to Drastically Reduce Multi-Turn Costs

OpenRouter 推出提示缓存与粘性路由,大幅降低多轮对话成本

For developers making frequent AI API calls, this feature is a direct money-saver. Sticky routing guarantees cache hit rates, and session_id requires zero configuration—every OpenRouter user should try it immediately.

AIProducts#OpenRouter#session_id#Cost Optimization
91

Five-dimension score

Information gain9 ×0.3

首次公开ChatGPT Work的Agent能力,信息增量高。

Content quality8 ×0.2

官方发布,内容清晰,但细节较少。

Practical value9 ×0.2

为用户提供可直接使用的Agent能力,实用价值高。

Timeliness10 ×0.15

刚刚发布,时效性极强。

Source reliability10 ×0.15

来自OpenAI官方,信源权威可靠。

Base 91 × T1 Source weight ×1 = 91

Curation line 60Selected

18:00OpenAI:News(RSS)T1RSS

FeaturedChatGPT Work: An AI Agent That Takes Action Across Apps and Files

ChatGPT Work:可在跨应用和文件中执行操作的AI Agent

I think this is a key step for AI assistants moving from Q&A to execution. Especially noteworthy for professionals who need to automate complex workflows. ChatGPT Work could become a new paradigm for productivity tools.

AIProducts#Agent#AI Productivity#ChatGPT Work
90

Five-dimension score

Information gain9 ×0.3

首次公开前沿实验室代理入侵的完整技术时间线,信息增量极高。

Content quality8 ×0.2

结构严谨、技术细节丰富,但缺乏部分原始日志数据佐证。

Practical value9 ×0.2

提供了缓解建议和自检工具,对AI安全从业者具有直接指导意义。

Timeliness10 ×0.15

事件发生仅数月后即发布分析,时效性极佳。

Source reliability9 ×0.15

Hugging Face 作为顶级开源AI平台,其技术博客可信度极高。

Base 89.5 × T1 Source weight ×1 = 90

Curation line 60Selected

08:00Hugging Face:Blog(RSS)T1RSS

FeaturedAnatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the July 2026 Incident

前沿实验室代理入侵事件技术时间线:2026年7月事件剖析

This technical timeline is a must-read for all AI security researchers and agent developers—it doesn't just describe one attack but sounds an alarm on the weak defense systems of agent architectures. For teams deploying autonomous agents, this is an essential disaster prevention manual.

TechProducts#AI Agent Security#Hugging Face#Intrusion Timeline
90

Five-dimension score

Information gain8 ×0.3

文章揭示了工具增强反而导致AI性能下降的反直觉发现,并提供了具体工程改进方案,信息增量高。

Content quality9 ×0.2

来自GitHub官方工程博客,有数据支撑(成本下降40%),论证清晰,质量上乘。

Practical value9 ×0.2

对AI产品团队、代码审查工具开发者、以及依赖AI辅助编程的团队有直接借鉴意义。

Timeliness10 ×0.15

2024年发布的工程实践,符合当前AI产品优化趋势,时效性强。

Source reliability10 ×0.15

信源为GitHub官方博客,具有高度权威性和技术可信度。

Base 90 × T1 Source weight ×1 = 90

Curation line 60Selected

23:57GitHub Blog(网页)T1Web

FeaturedBetter Tools Made Copilot Code Review Worse? Here's How GitHub Improved It

更好的工具反而让Copilot代码审查更糟?GitHub这样改进

This blog post deserves close reading by all AI product engineers and ML practitioners—it breaks the intuition that 'more powerful tools = better AI' and instead emphasizes an engineering philosophy aligned with agent reasoning patterns. Especially important for teams optimizing code review or similar agent-based products.

AIProducts#Agent Workflows#Copilot#GitHub
88

Five-dimension score

Information gain9 ×0.3

披露了OpenRouter产品的新能力,对关注多模态开发的用户有较高信息增量。

Content quality8 ×0.2

内容清晰,准确描述了API功能与优势,但缺少性能数据对比。

Practical value9 ×0.2

直接解决多模态API碎片化问题,开发者可立即降低集成成本。

Timeliness10 ×0.15

该API为新近发布,具有很高时效性。

Source reliability8 ×0.15

OpenRouter官方博客,权威性高,但未提及其他第三方验证。

Base 88 × T1 Source weight ×1 = 88

Curation line 60Selected

08:00OpenRouter:Announcements(RSS)T1RSS

FeaturedOpenRouter Launches Unified Multimodal API: Single Endpoint for Image, Video, Audio, Embeddings, and Transcription

OpenRouter 推出统一多模态 API:单端点支持图像、视频、音频、嵌入与转录

This news is worth attention from all developers building multimodal AI applications: OpenRouter's unified API solves the pain of model switching, especially for startups or rapid prototyping. If you're struggling with multiple API keys and SDKs, this interface could be the unified layer you need.

AIProducts#OpenRouter#Multimodal API#Model Ensembles
87

Five-dimension score

Information gain8 ×0.3

介绍了全新的教育产品,填补了AI安全公司在教育垂直领域的空白,信息增量较高。

Content quality8 ×0.2

内容简洁清晰,准确概括产品功能、安全理念和试点情况,无冗余信息。

Practical value9 ×0.2

直接解决教师备课负担痛点,且强调安全合规,对教育工作者具有实际参考价值。

Timeliness10 ×0.15

消息发布时间接近当前日期,属于最新产品发布动态。

Source reliability9 ×0.15

来源为Anthropic官方新闻页面,权威性高,内容可靠。

Base 86.5 × T1 Source weight ×1 = 87

Curation line 60Selected

23:40Anthropic:News(网页)T1Web

FeaturedAnthropic Launches Claude for Teachers: AI Tools Designed for Educators

Anthropic 推出 Claude for Teachers:面向教师的教育 AI 工具

This announcement is valuable for educators and AI industry watchers alike. Instead of a generic chatbot, Anthropic designed a safety-first tool specifically for teachers, demonstrating the right approach for AI vertical deployment: solving real pain points rather than showing off technology. The built-in guardrails also set a reference for other AI companies, especially when serving scenarios involving children or teenagers.

AIProducts#AI Security#Anthropic#Claude
86

Five-dimension score

Information gain9 ×0.3

全新路由机制,市场智慧概念为行业带来较高信息增量。

Content quality8 ×0.2

官方公告内容清晰,但技术细节不足,略有扣分。

Practical value8 ×0.2

对开发者选型有直接实用价值,可降低试错成本。

Timeliness9 ×0.15

产品刚发布,时效性极强。

Source reliability9 ×0.15

来自OpenRouter官方RSS公告,信源可靠。

Base 86 × T1 Source weight ×1 = 86

Curation line 60Selected

08:00OpenRouter:Announcements(RSS)T1RSS

FeaturedOpenRouter Introduces New Auto Router: Model Routing Powered by Market Wisdom

OpenRouter发布全新Auto Router:用市场智慧优化模型路由

This update is worth attention for anyone using APIs to build AI apps. Instead of guessing or testing model selection, market data now does the heavy lifting. Though sparse on details, the direction is right, especially for teams relying on aggregated model services.

AIProducts#Auto Router#OpenRouter#Wisdom of the Market
86

Five-dimension score

Information gain8 ×0.3

包含大量具体修复细节和安全改进,信息密度高。

Content quality9 ×0.2

内容详尽,结构清晰,覆盖新功能、修复、改进多个方面。

Practical value9 ×0.2

修复了多个实际开发中遇到的问题,对用户有直接帮助。

Timeliness10 ×0.15

刚刚发布的版本,时效性极强。

Source reliability10 ×0.15

来自 Anthropic 官方 GitHub Release,信源权威可靠。

Base 90 × T1.5 Source weight ×0.95 = 86

Curation line 65Selected

07:02Claude Code:GitHub Releases(RSS)T1.5GitHub Release

FeaturedClaude Code v2.1.211 Release: Multiple Fixes and Improvements

Claude Code v2.1.211 发布:多项修复与改进

As a developer who frequently uses Claude Code for automated coding, I'm particularly interested in the security fixes, especially the permission preview character bypass and auto mode overriding hook decisions—these directly affect the security boundaries during team collaboration. The improvement in background agent reporting also makes long-running tasks more reliable. I recommend all users upgrade as soon as possible.

AIProducts#Anthropic#Claude Code#Code Generation Tool

Verify against the original source before citing