Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
# Changelog

## Unreleased
## 2.1.0

Agentless SSH now covers every command, so any host you can reach over SSH can
be scanned, inspected, diagnosed, and watched without installing anything on
it. The MCP server gained a change-diff tool, descendant processes, and a dry
run for the one destructive tool it offers.

**If you script against portview, three outputs changed.** All three are
corrections of wrong behaviour rather than redefinitions, but a script pinned to
2.0.x will see different results:

- Ports whose owner cannot be resolved are now listed with `-` instead of being
omitted, so a scan can return rows it did not before.
- `--all` emits one row per connection rather than collapsing them, so a port
with sixty `TIME_WAIT` sockets is now sixty rows.
- `portview ssh <host> --json` emits JSON. It previously either printed a table
or failed outright, so nothing could have depended on the old behaviour.

### Added

Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "portview"
version = "2.0.2"
version = "2.1.0"
edition = "2024"
description = "A diagnostic-first port viewer. See what's on your ports, then act on it."
license = "MIT"
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,11 @@ Or configure it manually:
| Tool | What it does |
|------|--------------|
| `list_ports` | Every listening port with process, user, uptime, memory, full command |
| `inspect_port` | One port in detail, including each process's working directory |
| `inspect_port` | One port in detail: each process's working directory, plus its child processes — so the agent knows what else stops when it stops your dev server |
| `find_process` | Which ports a service is on, by name or command substring |
| `doctor` | Conflicts, wildcard exposure, stale connections, resource hogs |
| `kill_port` | Terminate what's on a port (marked destructive to the client) |
| `diff_ports` | What opened, closed, or changed owner since a baseline — "what did starting that actually do?" |
| `kill_port` | Terminate what's on a port (marked destructive to the client). `dry_run` shows which PIDs it would signal, without signalling them |

<p align="center">
<img src="demo/mcp.gif" alt="portview MCP server demo" width="100%" loop=infinite>
Expand Down
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
packages = rec {
portview = pkgs.rustPlatform.buildRustPackage {
pname = "portview";
version = "2.0.2";
version = "2.1.0";

src = self;

Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
"source": "github"
},
"websiteUrl": "https://github.com/Mapika/portview",
"version": "2.0.2",
"version": "2.1.0",
"packages": [
{
"registryType": "cargo",
"identifier": "portview",
"version": "2.0.2",
"version": "2.1.0",
"transport": {
"type": "stdio"
},
Expand Down
Loading