Skip to content

Releases: LebedevKondakovSergeyVach/Terminal-Session-Proxy-Manager

Release v3.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 05:00
5f59e1e

English

Fixed

  • Importing a socks4:// or socks4a:// URL keeps that protocol. Previously
    every socks* URL was stored as socks5, 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 from env on also reach the caller.

Changed

  • Breaking: the command is now tspm, including Homebrew installs and
    cargo install tspm. Run eval "$(tspm init zsh)" (or bash) in your shell
    startup file. The proxy function and TSPM_* 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 absolute config_path in
    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 the tspm name; the Rust library import is tspm.
  • 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 dirs from 6 to 7; both versions use dirs-sys 0.5.
  • Update locked clap to 4.6.7, clap_complete to 4.6.11, futures to
    0.3.34, reqwest to 0.13.5, serde_json to 1.0.154, thiserror to 2.0.21
    and tokio to 1.53.3.

Русский

Исправлено

  • Импорт URL socks4:// и socks4a:// сохраняет этот протокол. Раньше любой
    URL socks* записывался как 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-sys 0.5.
  • Зафиксированы обновления clap 4.6.7, clap_complete 4.6.11, futures
    0.3.34, reqwest 0.13.5, serde_json 1.0.154, thiserror 2.0.21 и tokio
    1.53.3.

Release v2.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 21:57
b3c9c9b

What's Changed

Full Changelog: v2.3.1...v2.4.0

Release v2.3.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 11:09
1106b58

What's Changed

Full Changelog: v2.3.0...v2.3.1

Release v2.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 16:26
476f470

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: rustls updated to 0.23.45 for
    RUSTSEC-2026-0285:
    TLS 1.3 handshake messages sent across an encryption-level boundary were
    accepted instead of rejected. reqwest uses 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, svgo and js-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 from README*.md, docs/*.md, CONTRIBUTING.md and 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, and llms.txt for 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.md now links to it rather than to the English
    file.
  • Docs: docs/SHELL_INTEGRATION.md explains why the shell function is
    needed, with a sequence diagram; docs/USAGE.md opens 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 default ping_targets.
    Existing configs keep their own list.
  • CLI: After switching, proxy switch and proxy use <key> end the
    confirmation line with [ON] or [OFF] — whether proxy variables are set in
    this shell. Through the proxy shell function, [ON] means the new profile
    has just been applied; [OFF] means it is saved and waits for proxy on.
  • CLI: The proxy switch menu is cleared from the screen when it closes,
    whether you chose a profile or cancelled.
  • CLI: proxy ping prints HTTP 2xx responses in green and everything else
    in yellow.

Automation and contributing

  • CI: website.yml gates 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.yml publishes 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.md to change whenever
    CHANGELOG.md does, since both are published.
  • Contributing: Git hooks in .githooks/, enabled once per clone with
    git config core.hooksPath .githooks. commit-msg rejects tool attribution
    lines (Co-Authored-By:, "Generated with …"); pre-push refuses pushes to
    main and 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.md and .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, and agent-docs-audit, which
    checks the instruction set for drift. .mcp.json declares the context7
    and astro-docs documentation servers.

Changed

CLI output

  • CLI — Breaking for scripts: proxy on and proxy off no longer
    print a confirmation line. They emit only the shell statements to be
    evaluated, so eval "$(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 switch print after switching ends with the new [ON] / [OFF] tag,
    so its shape has changed.
  • CLI — Breaking for scripts: proxy ping labels a non-2xx response
    WARN (… ms) in yellow; it used to be OK in 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 ping prints 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/*.md and CONTRIBUTING.md are 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.md lists the full default ping_targets, and
    its field table names every command that reads them.
  • Docs: Corrected descriptions of what several commands do:
    • benchmark tests profiles one after another, probing each profile's ping
      targets at once — not every profile concurrently;
    • Space in proxy dash saves the selected profile as active without
      leaving; it does not update the shell, only Enter does;
    • 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 set makes the profile active without re-applying the shell's
      variables;
    • diagnose lists the main proxy variables, not every one proxy on sets.
  • Docs: The release notes in .ai/GIT_WORKFLOW.md describe 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: chacha20 0.10.1, which was yanked from crates.io, is replaced by
    0.10.2.

Contributing

  • Contributing: A change to docs/, the READMEs, CONTRIBUTING.md or 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.md matches what CI
    enforces — changes to shell/ and configs/ need an entry too, in both
    CHANGELOG.md and CHANGELOG.ru.md. The pull request template uses the same
    --locked checks and npm ci as the rest of the documentation.
  • Contributing: CLAUDE.md imports AGENTS.md instead 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. The release-manager skill updates the changelog link footer, and
    cargo-audit asks 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_msg and env_off_msg translation keys, unused since...
Read more

Release v2.2.2

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:40
d95b182

What's Changed

Full Changelog: v2.2.1...v2.2.2

Release v2.2.1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 05:36
8fcd3e3

What's Changed

Full Changelog: v2.2.0...v2.2.1

Release v2.2.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 04:35
27ef109

What's Changed

New Contributors

Full Changelog: v2.1.1...v2.2.0

Release v2.1.1

Choose a tag to compare

@github-actions github-actions released this 18 Aug 12:36
fix: update unit tests for generic default profiles

Release v2.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 07:04
chore: bump version to 2.1.0

Release v2.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 11:22

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): Hit Space to switch profiles quietly, or press s to 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 Enter in 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-eval integration 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 older v1.x config 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 .md files in the docs/ 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