Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: emaxe/eTty

eTty v0.1.8

31 May 17:41
@github-actions github-actions

Choose a tag to compare

feat: cross-platform support (Windows, Linux)
- Shell path resolver: platform-aware default shell and fallback PATHs
- PTY manager: skip ZDOTDIR / LC_CTYPE on Windows, use resolved shell
- History manager: disable zsh history merge on non-Unix platforms
- AppService / renderer: platform-specific titlebar, window controls
- Editor: use native openExternal instead of shell 'open' command
- IPC: add WINDOW_MINIMIZE, MAXIMIZE, CLOSE, MAXIMIZED_CHANGE channels
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Assets 5
Loading

eTty v0.1.7

31 May 14:18
@emaxe emaxe

Choose a tag to compare

Added

  • Configurable new tab placement — control where a new tab opens relative to the active one, with modifier-key support

    • modifierAdjacent (default) — Cmd/Ctrl+click on "+" inserts the new tab right after the active tab; plain click appends to the end
    • modifierEnd — plain click inserts next to the active tab; Cmd/Ctrl+click appends to the end
    • Configurable in Settings → Terminal → "Новая вкладка рядом"
  • Auto-open tab when terminal is busy — if a shell command is triggered from the file tree hover overlay (run script, cd) while the active terminal is occupied by an AI agent, a new tab is automatically created and the command runs there instead of being dropped

Loading

v0.1.5

21 May 20:15
@emaxe emaxe

Choose a tag to compare

Added

  • New AI agents: Qwen and Agento — added to the built-in supported agents list with auto-detection and default Shift+Enter mode set to Ctrl+J (instead of Kitty protocol)

  • Per-agent Shift+Enter mode — configure how Shift+Enter behaves for each AI agent individually:

    • Kitty protocol (default) — sends \x1b[13;2u sequence
    • Newline — sends plain \n character
    • Ctrl+J — sends \x0A (ASCII LF, equivalent to Ctrl+J)
    • Useful for agents that don't understand Kitty keyboard sequences (e.g., Qwen)
    • Supports both built-in and custom agents; settings persisted to config

Fixed

  • Agent edit dialog label contrast — labels in the custom agent edit dialog now use var(--text) for proper contrast on both light and dark themes. Previously labels were rendered in a low-contrast gray that was hard to read.
  • Agent launch buttons not working for Qwen and Agento — added qwen and agento to SUPPORTED_AGENTS in agent-service.js, enabling auto-detection, launchCommand resolution, and button functionality.
  • Custom agent keyboardModes not persistedconfig-loader.js now preserves unknown keys in agents.keyboardModes, agents.forceDisabled, and agents.lastDetected objects. Previously custom agent IDs (UUIDs) were treated as invalid fields and discarded during config merge.
  • Keyboard mode changes not applied without restartindex.js now subscribes to settings.changed for agents.keyboardModes and immediately updates the in-memory config.
Loading

v0.1.4

21 May 20:13
@emaxe emaxe

Choose a tag to compare

[0.1.4] - 2026年05月13日

Added

  • Terminal scroll-to-bottom button — floating button that appears when the user scrolls up into the terminal history; click to jump back to the latest output

    • Listens to xterm.js onScroll and mouse wheel events to detect when the viewport leaves the bottom of the buffer
    • Circular accent-colored button with shadow, positioned at the bottom-right of the terminal area
    • Auto-hides when the buffer is scrolled back to the bottom or when a new tab is switched
  • Bulk file operations in file tree — copy, paste, and delete multiple selected items at once

    • Ctrl+C / Cmd+C — copy all selected paths to internal clipboard
    • Ctrl+V / Cmd+V — paste copied items into the current or selected directory
    • Delete / Backspace — delete all selected items with a confirmation dialog
    • Context menus updated for multi-select: "Delete" operates on selection, "Rename" hidden when multiple items selected, "Paste" enabled when clipboard is non-empty
    • New IPC channels: fs:copy-many, fs:delete-many; renderer _clipboard changed from single object to array of paths
Loading

v0.1.3

11 May 10:26
@emaxe emaxe

Choose a tag to compare

[0.1.3]

Security

  • Fixed symlink attack vulnerability in FileManager.validatePath()path.resolve() was replaced with fs.realpath() to properly resolve symbolic links before checking path boundaries. This prevents attackers from bypassing path traversal protection via symlinks pointing outside the CWD.

Added

  • Git diff highlighting — live visual indicators for git status in the file tree and editor gutter

    • File tree: new files (green), modified (blue), deleted (red strikethrough); folders show colored dot markers for nested changes
    • Editor gutter: 3px color bars next to line numbers for added (green) and modified (blue) lines
    • Auto-refreshes every 5 seconds and on file save (Cmd+S); only active inside git repositories
    • Powered by new GitStatusService (renderer) with 5-second polling via existing git:get-status IPC channel
  • Project search dialog — full-text and filename search inside the current working directory

    • Open with Cmd+F / Ctrl+F or double-tap Shift
    • Searches file names and file contents simultaneously; name matches shown first
    • Options: case sensitive, whole word, regex; include/exclude glob patterns
    • Live preview with highlighted matches; double-click or Enter opens file in editor
    • Cancellable backend search via AbortController in FileManager.searchFiles()
  • Roboto font — applied globally across the application for consistent typography

  • Status bar size setting — three selectable sizes (compact / standard / large) in Settings → Appearance

    • Compact: 22px height, 11px font (current default)
    • Standard: 28px height, 13px font
    • Large: 34px height, 15px font
    • Applied instantly via data-size attribute on the status bar element

Fixed

  • Terminal Home/End on macOSCmd+ArrowLeft and Cmd+ArrowRight now send \x1b[H / \x1b[F (Home / End) escape sequences to the PTY in TUI applications (Vim, Emacs, readline, fzf, etc.). Previously xterm.js consumed these events for DOM text selection and never forwarded them to the shell.
  • App quit cleanup — graceful shutdown sequence for main and renderer processes
    • beforeQuit handler saves tab state, kills all PTY sessions, and unwatches all file system watchers before app exits
    • Main-process diagnostics interval now properly cleared on window-all-closed
    • Temporary zdotdir folders created for PTY sessions cleaned up on process exit, kill, and bulk killAll
  • Renderer cleanup — global event listeners and observers properly disposed on window unload
    • ResizeObserver disconnected and debounce timer cleared
    • Global focusin, mousedown, blur, keydown, mousemove, mouseup listeners removed
    • Terminal container destroy() called to prevent memory leaks
  • PTY init protectioninit() now wrapped in try/catch to prevent PTY spawn errors from cascading into UI failures (e.g., shell not found, permission denied). Error is logged and the terminal remains in a clean error state instead of freezing the app.
Loading

v0.1.1

27 Apr 10:03
@emaxe emaxe

Choose a tag to compare

Added

  • Double-click to select active AI agent — when terminal is busy but no agent was auto-detected, double-click any agent button to manually assign it as active
    • Enables quick-reply buttons for agents launched manually or via other applications
    • Click-based detection (500ms threshold) for reliable cross-platform behavior
    • Busy-state buttons use status-agent-busy CSS class instead of disabled attribute to allow click events
  • Configurable quick replies for AI agents — replace hardcoded agent command buttons with fully customizable quick replies
    • Define command text, enable/disable per item, assign to specific agents (Claude, Codex, Copilot, Cursor Agent, OpenCode)
    • Compact Settings UI: list view with inline agent tags, click pencil icon to open edit dialog
    • Drag-and-drop reordering via grip handle with visual drop indicator (accent line)
    • Default quick replies migrated from previous hardcoded values: Ok, Продолжай, /clear, /model, /exit, /new
    • New items automatically inherit in config (quickReplies.items array in settings.json)

Changed

  • Settings page "Быстрые ответы" (Quick Replies) category redesigned for compactness:
    • Single text field drives both label and command (displayed together)
    • Edit dialog replaced inline editing clutter
    • Pencil SVG icon replaces text "Редактировать" button
  • Agent command buttons in status bar now generated dynamically from config instead of hardcoded HTML

Notes

  • No breaking changes: existing settings.json without quickReplies section auto-populated with defaults on next load
  • No migration required: previous hardcoded values become the new defaults
Loading

init

16 Apr 17:41
@emaxe emaxe

Choose a tag to compare

init release;

Full Changelog: https://github.com/emaxe/eTty/commits/init

Loading

AltStyle によって変換されたページ (->オリジナル) /