HypaBLOCK
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Hypa is a workspace for coding agents. It runs your agents in terminal panes, keeps them alive when you close the terminal, lets agents drive other panes, and cuts the noise from command output before it reaches an agent.
Hypa is local-first. It needs no cloud service.
What Hypa does
- Workspace mux.
hypastarts a local server that owns your panes. Attach from any terminal, detach, and attach again. Tabs, splits, workspaces, a sidebar, copy mode, popups, themes, and settings are built in. - Agent runtime. An agent in a Hypa pane can read other panes, start work in a new pane or a hidden pane, wait for another agent, and report its state. Hypa installs a skill that teaches an agent how.
- Share and connect. Share a session with another machine. The other machine connects over QUIC, with TCP and TLS as the fallback. A certificate pin protects every connection.
- Output compression.
hypa -c "command"runs a command, removes noise from the output, and keeps what matters: errors, warnings, file paths, failing tests, and exit codes. The reduction is deterministic and local. It is not an LLM summary.
Install
Pick the channel that fits how you manage tools. Every channel installs the same release archive for your platform, so the mux works the same way in each.
9d7d166dfbc7OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add pi-hypa -- npx -y @hypabolic/[email protected]
{
"mcpServers": {
"pi-hypa": {
"command": "npx",
"args": [
"-y",
"@hypabolic/[email protected]"
]
}
}
}Exposed tools (1)
1 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
issues | read | List issues |
Trust audit
BLOCKgrade F · trust 40/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (8 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<HypaExecResult>;
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<HypaExecResult>;
Build succeeded.
MyProject -> /project/bin/Debug/net10.0/MyProject.dll
Hypa.Runtime -> /repo/src/Hypa.Runtime/bin/Debug/net10.0/Hypa.Runtime.dll
Hypa.Runtime -> /repo/src/Hypa.Runtime/bin/Debug/net10.0/Hypa.Runtime.dll
Failed Hypa.UnitTests.Infrastructure.Reducers.DotnetBuildOutputCompressorTests.Compress_PreservesProjectTargetLine [12 ms]
libtree-sitter-markdown.so
_listener.Prefixes.Add($"http://127.0.0.1:{_port}/callback/");return new($"http://127.0.0.1:{_port}/callback");new("AwsAccessKey", "AKIAAAAAAAAAAAAAAAAA\n", "AKIAAAAAAAAAAAAAAAAA", true),const string secret = "H19_SWAP_SECRET_BYTES_do_not_export";
var secret = "sk-abcdefghijklmnopqrstuvwxyz0123";
var secret = "sk-abcdefghijklmnopqrstuvwxyz0123";
const string token = "sk-abcdefghijklmnopqrstuvwxyz0123456789";
const string token = "sk-abcdefghijklmnopqrstuvwxyz0123456789";
const string token = "ghp_abcdefghijklmnopqrstuvwxyz0123456789";
"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF6PZGFw=\n-----END RSA PRIVATE KEY-----");
var begin = Encoding.UTF8.GetBytes("-----BEGIN RSA PRIVATE KEY-----\n");"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfnSECRET\n-----END RSA PRIVATE KEY-----";
"""{"pane_id":"p1","note":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfnSECRET\n-----END RSA PRIVATE KEY-----"}""";"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3FIRST\n-----END RSA PRIVATE KEY-----\n-----BEG";
live-cells-payload-baseline.json
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<{{"type":"feed","encoding":"base64","data":"GzcbW3IbOBtbPzI1aBtbPzI1bBtbPzIwMDRoG1s/MTAwNGgbWz8yMDMxaBtbPHUbWz4xdRtbPjQ7Mm0bWz8yMDI2aA0NCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgGates applied: no_behavioural_pass.
9d7d166dfbc7full audit observations/trust-audit/mcp-server/hypabolic__hypa.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | 9d7d166dfbc7 | BLOCK | F | 40 | first audit |
Questions
What tools does @hypabolic/hypa expose?
1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is @hypabolic/hypa safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (40/100) and found 7 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does @hypabolic/hypa need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (9d7d166dfbc7), read on 2026-10-11. The repository is watched and re-audited when it changes.