Repository navigation
Releases: LebedevKondakovSergeyVach/Terminal-Session-Proxy-Manager
Release list
Release v3.0.0
English
Fixed
- Importing a
socks4://orsocks4a://URL keeps that protocol. Previously
everysocks*URL was stored assocks5, so a SOCKS4 proxy was dialed with
a SOCKS5 handshake. - Shell wrappers preserve command and child-process exit codes after handling
the dashboard handoff. Failures fromenv onalso reach the caller.
Changed
- Breaking: the command is now
tspm, including Homebrew installs and
cargo install tspm. Runeval "$(tspm init zsh)"(orbash) in your shell
startup file. Theproxyfunction andTSPM_*variables keep their names. - Breaking: configuration lives in
~/Library/Application Support/tspm/
on macOS and${XDG_CONFIG_HOME:-~/.config}/tspm/on Linux. The program
does not read or migrate the previous directory. To keep your profiles,
move that directory yourself and update any absoluteconfig_pathin
settings.json. Explicit config/settings path overrides still work. - Shell handoff and debug files are
~/.tspm-eval,~/.tspm-debug-enabled
and~/.tspm-debug.log. Previous files are ignored. Release archives and
the Homebrew formula use thetspmname; the Rust library import istspm. - Homebrew selects the native macOS or Linux archive for arm64 or x86_64.
The release workflow verifies all four archives and checksums before tagging
and updates all four downloads in the formula together. - Update
dirsfrom 6 to 7; both versions usedirs-sys0.5. - Update locked
clapto 4.6.7,clap_completeto 4.6.11,futuresto
0.3.34,reqwestto 0.13.5,serde_jsonto 1.0.154,thiserrorto 2.0.21
andtokioto 1.53.3.
Русский
Исправлено
- Импорт URL
socks4://иsocks4a://сохраняет этот протокол. Раньше любой
URLsocks*записывался какsocks5, и SOCKS4-прокси открывался
рукопожатием SOCKS5. - Shell-обёртки сохраняют код завершения команды и дочернего процесса после
обработки файла передачи из дашборда. Ошибкиenv onтакже возвращаются
вызывающей оболочке.
Изменено
- Команда переименована в
tspm, в том числе при установке через Homebrew
иcargo install tspm. В файле запуска оболочки используйте
eval "$(tspm init zsh)"(илиbash). Имена функцииproxyи переменных
TSPM_*сохранены. - Конфигурация хранится в
~/Library/Application Support/tspm/на macOS
и${XDG_CONFIG_HOME:-~/.config}/tspm/на Linux. Программа не читает
и не переносит прежний каталог. Чтобы сохранить профили, перенесите его
вручную и обновите абсолютныйconfig_pathвsettings.json, если он задан.
Явное указание путей к конфигу и настройкам продолжает работать. - Файлы передачи команд оболочке и отладки —
~/.tspm-eval,
~/.tspm-debug-enabledи~/.tspm-debug.log. Прежние файлы игнорируются.
Архивы релиза и формула Homebrew используют имяtspm; импорт библиотеки
Rust —tspm. - Homebrew выбирает нативный архив для macOS или Linux и arm64 или x86_64.
Перед созданием тега workflow проверяет все четыре архива и их контрольные
суммы, затем обновляет в формуле все четыре варианта загрузки вместе. dirsобновлён с 6 до 7; обе версии используютdirs-sys0.5.- Зафиксированы обновления
clap4.6.7,clap_complete4.6.11,futures
0.3.34,reqwest0.13.5,serde_json1.0.154,thiserror2.0.21 иtokio
1.53.3.
Release v2.4.0
What's Changed
- feat: publish the tspm crate during release by @LebedevKondakovSergeyVach in #37
- Release 2.4.0 by @LebedevKondakovSergeyVach in #38
Full Changelog: v2.3.1...v2.4.0
Release v2.3.1
What's Changed
- docs: add accessible interactive proxy flow diagrams by @LebedevKondakovSergeyVach in #31
- docs: refresh agent guidance and resolve audit blockers by @LebedevKondakovSergeyVach in #32
- fix: stabilize website navigation and theme controls by @LebedevKondakovSergeyVach in #33
- chore: release 2.3.1 by @LebedevKondakovSergeyVach in #34
Full Changelog: v2.3.0...v2.3.1
Release v2.3.0
The release that gives the project a home on the web. A bilingual documentation
site is published from this repository's own Markdown and works on phones as
well as desktops. The CLI's output is reworked for terminals and scripts that
do not want decoration, and a TLS advisory is fixed.
Upgrading? Three output changes can affect scripts that read what the tool
prints — they are marked Breaking for scripts under Changed. Nothing
changes in config.json, settings.json, the command names, flags or exit
codes.
Security
- CLI:
rustlsupdated to 0.23.45 for
RUSTSEC-2026-0285:
TLS 1.3 handshake messages sent across an encryption-level boundary were
accepted instead of rejected.reqwestuses it for every HTTPS request the
tool makes —status,ping,speedtest,monitor, imports from a URL. - Website: The site's build dependencies are updated past advisories in
astro(critical: remote code execution through AVIF image optimisation),
sharp,svgoandjs-yaml. Astro moves to 7.3.2. These affect only the
site build, not the CLI.
Added
Documentation website
- Website: A documentation site at
lebedevkondakovsergeyvach.github.io/Terminal-Session-Proxy-Manager,
in English and Russian (/ru/), built with Astro Starlight. Its pages are
generated fromREADME*.md,docs/*.md,CONTRIBUTING.mdand the
changelogs at build time, so the site and the files on GitHub cannot drift
apart. - Website: A home page with the project's features side by side with
terminal screenshots in light and dark variants, and quick-start tiles. - Website: Material Design 3 styling whose whole palette is derived from
the project's rust orange, in light and dark, with smooth transitions between
pages that fall back to a plain swap when reduced motion is requested. - Website: A three-way theme switch — light, auto (follows the system) and
dark — with a circular reveal when the theme changes. - Website: Full-text search, with quick links to the main guides while the
search box is empty, and a search interface translated into Russian. - Website: Install instructions in tabs (Homebrew, Cargo, prebuilt binary),
step-by-step guides, colour-coded callouts, terminal-framed code blocks with
a copy button, and screenshots that zoom on click or tap. - Website: Works on phones and touch screens:
- wide tables scroll sideways instead of being cut off;
- tab labels wrap on narrow screens instead of running off the edge;
- buttons, tabs and selects are at least 44px tall to tap;
- hover effects apply only with a mouse, so a tapped card no longer stays
raised; - the header fits a 320px-wide screen;
- on phones the theme and language controls of a docs page live in the
menu.
- Website: A round home button beside the site title on every docs page, on
phones and desktops, labelled "Home" / "На главную" for screen readers. - Website: The project's logo in the header of the home page, its own
favicon, and an icon for home-screen bookmarks on iOS. - Website: A custom 404 page in both languages, with links back into the
documentation and a way home on every screen width. - Website: A preview image for links shared on social networks and in
messengers, andllms.txtfor machine readers. - Website: The build fails on a broken internal link, so a dead link cannot
reach the published site.
Documentation
- Docs:
CHANGELOG.ru.md— the release history in Russian, published at
/ru/changelog/.README.ru.mdnow links to it rather than to the English
file. - Docs:
docs/SHELL_INTEGRATION.mdexplains why the shell function is
needed, with a sequence diagram;docs/USAGE.mdopens with the subcommands
grouped into four categories. - Docs: The READMEs carry a badge linking to the documentation site.
CLI and configuration
- Config: OpenAI (
https://status.openai.com/api/v2/status.json) and
Anthropic (https://www.anthropic.com) joined the defaultping_targets.
Existing configs keep their own list. - CLI: After switching,
proxy switchandproxy use <key>end the
confirmation line with[ON]or[OFF]— whether proxy variables are set in
this shell. Through theproxyshell function,[ON]means the new profile
has just been applied;[OFF]means it is saved and waits forproxy on. - CLI: The
proxy switchmenu is cleared from the screen when it closes,
whether you chose a profile or cancelled. - CLI:
proxy pingprints HTTP 2xx responses in green and everything else
in yellow.
Automation and contributing
- CI:
website.ymlgates every pull request that touches the site or the
documents it is built from — it runs the generator's tests, builds the site
and fails on a dead internal link.pages.ymlpublishes the site from
main. - CI: Dependabot watches the website's npm dependencies as well as Cargo
and the GitHub Actions. - CI: The branch policy requires
CHANGELOG.ru.mdto change whenever
CHANGELOG.mddoes, since both are published. - Contributing: Git hooks in
.githooks/, enabled once per clone with
git config core.hooksPath .githooks.commit-msgrejects tool attribution
lines (Co-Authored-By:, "Generated with …");pre-pushrefuses pushes to
mainand tag pushes, since merging a release branch is what publishes. - Contributing: One set of instructions for AI coding agents.
AGENTS.md
is the shared contract;CLAUDE.md,GEMINI.mdand.cursor/rules/are the
entry points for Claude Code, Antigravity and Cursor; area rules live in
.claude/rules/. The task skills in.claude/skills/gain
starlight-website, for work on the site, andagent-docs-audit, which
checks the instruction set for drift..mcp.jsondeclares thecontext7
andastro-docsdocumentation servers.
Changed
CLI output
- CLI — Breaking for scripts:
proxy onandproxy offno longer
print a confirmation line. They emit only the shell statements to be
evaluated, soeval "$(proxy env on)"is now silent. A script that looked
for that confirmation needs updating. - CLI — Breaking for scripts: the line
proxy use <key>and
proxy switchprint after switching ends with the new[ON]/[OFF]tag,
so its shape has changed. - CLI — Breaking for scripts:
proxy pinglabels a non-2xx response
WARN (… ms)in yellow; it used to beOKin green, like a success. - CLI: Emoji are gone from the translation strings and from the headers of
the reporting commands —ping,diagnose,monitor,git,import,
benchmark,speedtest— and from the dashboard's port indicator. The
prompt marker and the dashboard's title bar keep theirs. The status labels
proxy pingprints are translated now, rather than fixed English. - CLI: The rule printed between report blocks is a plain line of
-
instead of a bold cyan line of=, and report headers no longer start with
spaces.
Documentation
- Docs:
docs/*.mdandCONTRIBUTING.mdare plain CommonMark, readable on
GitHub as before. The site's tabs, cards, steps and callouts are written as
<!--site:…-->comments, which GitHub renders as nothing and the site
generator expands. - Docs:
docs/CONFIGURATION.mdlists the full defaultping_targets, and
its field table names every command that reads them. - Docs: Corrected descriptions of what several commands do:
benchmarktests profiles one after another, probing each profile's ping
targets at once — not every profile concurrently;Spaceinproxy dashsaves the selected profile as active without
leaving; it does not update the shell, onlyEnterdoes;monitor, on a failed health check or with no proxy variable set, saves
the fastest reachable profile as active but does not change the shell it
runs in;profile setmakes the profile active without re-applying the shell's
variables;diagnoselists the main proxy variables, not every oneproxy onsets.
- Docs: The release notes in
.ai/GIT_WORKFLOW.mddescribe the pipeline as
it runs: the tag is created after the binaries build, so a failed build
leaves no tag behind, and the recovery steps follow from that.
Dependencies
- CLI:
chacha200.10.1, which was yanked from crates.io, is replaced by
0.10.2.
Contributing
- Contributing: A change to
docs/, the READMEs,CONTRIBUTING.mdor a
changelog also has to pass the site build
(cd website && npm ci && npm test && npm run build), because those files
are the site's content. - Contributing: The changelog rule in
CONTRIBUTING.mdmatches what CI
enforces — changes toshell/andconfigs/need an entry too, in both
CHANGELOG.mdandCHANGELOG.ru.md. The pull request template uses the same
--lockedchecks andnpm cias the rest of the documentation. - Contributing:
CLAUDE.mdimportsAGENTS.mdinstead of only linking to
it, so Claude Code actually loads the project rules; the skills moved from
.agents/skills/(now symlinks) to.claude/skills/, where Claude Code finds
them. Therelease-managerskill updates the changelog link footer, and
cargo-auditasks where a security entry belongs once a release is cut. - CI: The branch policy compares a pull request against its merge base, so
a documentation-only pull request is no longer blocked by other commits on
the release branch. - CI: Workflows default to read-only repository access; the
cargo audit
job gets only the extra permission it needs to report its results, which it
previously failed to do.
Removed
- CLI: The
env_on_msgandenv_off_msgtranslation keys, unused since...
Release v2.2.2
What's Changed
- fix(ci): explicitly pass tag-name to homebrew action by @LebedevKondakovSergeyVach in #14
- chore: bump version to 2.2.2 by @LebedevKondakovSergeyVach in #15
Full Changelog: v2.2.1...v2.2.2
Release v2.2.1
What's Changed
- chore: bump version to 2.2.1 by @LebedevKondakovSergeyVach in #12
Full Changelog: v2.2.0...v2.2.1
Release v2.2.0
What's Changed
- Ci/git flow by @LebedevKondakovSergeyVach in #2
- fix: close the gaps found in review of the 2.3.0 branch by @LebedevKondakovSergeyVach in #3
- Release/2.2.0 by @LebedevKondakovSergeyVach in #4
New Contributors
- @LebedevKondakovSergeyVach made their first contribution in #2
Full Changelog: v2.1.1...v2.2.0
Release v2.1.1
fix: update unit tests for generic default profiles
Release v2.1.0
chore: bump version to 2.1.0
Release v2.0.0
Release v2.0.0: The TUI Dashboard Update 🚀
Welcome to the v2.0.0 release of Terminal Session Proxy Manager! This major update fundamentally changes how you interact with your proxies by introducing a gorgeous, fully interactive Terminal User Interface (TUI), alongside powerful new import commands and bulletproof shell integration.
✨ What's New
🖥️ Interactive TUI Dashboard (proxy dash)
The headline feature of v2.0.0 is the brand new proxy dash command. Instead of relying purely on CLI outputs, you can now launch a full-screen dashboard right in your terminal.
- Live Monitor: Watch your external IP, location, and ping latency in real-time.
- Ping Sparkline: Visualize your proxy stability with a historical ping graph.
- Dynamic Benchmarking (
s): HitSpaceto switch profiles quietly, or presssto benchmark all profiles in the background and instantly sort the list from fastest to slowest.
⚡ Seamless Shell Activation
No more running proxy on manually after selecting a profile!
- Pressing
Enterin the dashboard automatically exports your new proxy settings directly into your current terminal session and closes the UI. - Powered by a new under-the-hood
.proxy-cli-evalintegration for Zsh and Bash.
📥 Universal Import Command (proxy import)
Migrating and sharing proxies is now effortless. Use proxy import <file/url> to automatically parse and merge new servers into your configuration.
- Supports raw JSON arrays of URLs, full config schemas, and raw text URL lists.
- Automatically handles custom protocols (
v2ray://,socks5://, etc.).
🛠️ Fixes & Improvements
- Robust Configuration: Added
#[serde(default)]to safely migrate users from olderv1.xconfig formats without crashing. - Strict Linting: Resolved multiple shadow import conflicts. The entire codebase is now strictly verified against Rust's
clippy(pedantic) lints. - Documentation: Fully updated English and Russian
.mdfiles in thedocs/directory to reflect the new capabilities.
🧪 Quality Assurance
- Added a robust suite of unit tests checking profile URL generation, import parsing edge-cases, and Dashboard state management.
🍏 macOS Upgrade
cargo build --release
cp target/release/proxy-cli /opt/homebrew/bin/
proxy init >> ~/.zshrc
source ~/.zshrc🐧 Linux Upgrade
cargo build --release
sudo cp target/release/proxy-cli /usr/local/bin/
proxy init >> ~/.bashrc
source ~/.bashrcРелиз v2.0.0: Глобальное обновление Dashboard 🚀
Добро пожаловать в v2.0.0 — крупнейшее обновление Terminal Session Proxy Manager! Этот релиз полностью меняет подход к управлению прокси-серверами: добавлен интерактивный интерфейс (TUI) с графиками, фоновым замером скорости и бесшовной интеграцией в терминал.
✨ Что нового?
🖥️ Интерактивный TUI Дашборд (proxy dash)
Главная фича релиза — полноценный графический интерфейс прямо в вашем терминале. Больше не нужно перебирать консольные команды вслепую:
- Live Monitor: Отслеживайте свой внешний IP, локацию и задержку в реальном времени.
- Ping Sparkline: Визуальный график стабильности (история пингов).
- Динамический бенчмарк (
s): Одно нажатие клавишиs, и дашборд асинхронно пропингует все ваши прокси, после чего автоматически отсортирует их по скорости. - Тихое переключение (
Space): Нажмите пробел для быстрой смены профиля без выхода из интерфейса, чтобы проверить его работоспособность на мониторе.
⚡ Бесшовная интеграция
Больше не нужно вручную прописывать proxy on после выбора сервера!
- Нажатие
Enterна профиле моментально применяет все переменные среды в вашей текущей сессии терминала и закрывает UI. - Под капотом работает новая продвинутая система shell-хуков (
.proxy-cli-eval).
📥 Универсальный импорт (proxy import)
Команда proxy import <файл/url> теперь умеет автоматически распознавать и парсить списки прокси.
- Поддержка JSON-массивов с URL, полных конфигурационных файлов и простого текста.
🛠️ Улучшения и фиксы
- Надёжность конфигов: Старые файлы конфигурации
v1.xтеперь автоматически и безопасно мигрируют благодаря#[serde(default)]. - Чистый код: Разрешены конфликты импортов, устранены все предупреждения строгого линтера
clippy (pedantic). - Документация: Полностью переписаны и дополнены инструкции в
README.ru.mdиdocs/USAGE.ru.md.
🧪 Качество и Тестирование
- Добавлен набор unit-тестов, гарантирующий стабильность парсера ссылок, десериализации профилей и инициализации состояния дашборда.
🍏 Обновление для macOS
cargo build --release
cp target/release/proxy-cli /opt/homebrew/bin/
proxy init >> ~/.zshrc
source ~/.zshrc🐧 Обновление для Linux
cargo build --release
sudo cp target/release/proxy-cli /usr/local/bin/
proxy init >> ~/.bashrc
source ~/.bashrc