{"id":49767570,"url":"https://github.com/markwylde/terminay","last_synced_at":"2026-07-02T07:01:14.224Z","repository":{"id":357105808,"uuid":"1235289391","full_name":"markwylde/terminay","owner":"markwylde","description":"A multitasking IDE based terminal.","archived":false,"fork":false,"pushed_at":"2026-06-30T20:59:56.000Z","size":9696,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T22:23:41.332Z","etag":null,"topics":["shell","terminal"],"latest_commit_sha":null,"homepage":"https://terminay.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markwylde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-11T07:23:26.000Z","updated_at":"2026-06-30T20:48:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/markwylde/terminay","commit_stats":null,"previous_names":["markwylde/terminay"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/markwylde/terminay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markwylde%2Fterminay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markwylde%2Fterminay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markwylde%2Fterminay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markwylde%2Fterminay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markwylde","download_url":"https://codeload.github.com/markwylde/terminay/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markwylde%2Fterminay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35036553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["shell","terminal"],"created_at":"2026-05-11T11:05:03.765Z","updated_at":"2026-07-02T07:01:14.218Z","avatar_url":"https://github.com/markwylde.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terminay\n\nTerminay is a desktop terminal workspace built with Electron, React, and Vite. It pairs native shell sessions with dockable project tabs, file tools, macros, settings, and browser-based remote access so project work can stay in one focused desktop app.\n\n![Terminay workspace screenshot](https://terminay.com/screenshots/terminay-hero-workspace.png)\n\n## What it does\n\n- Open multiple native shell sessions in project workspaces\n- Split terminal, file, and folder tabs horizontally or vertically with Dockview\n- Reorder tabs, pop active panels into separate windows, and close the active tab from shortcuts or menus\n- See tab activity at a glance with working, finished, and attention indicators driven by terminal signals from shells and AI agents\n- Create project tabs with root folders, per-project file explorer state, colors, and short icons\n- Rename project and terminal tabs, set tab colors, and inherit project styling\n- Use the Command bar to search app commands and run saved macros\n- Build reusable macros with typed steps, placeholder fields, waits, clipboard paste, and stored secrets\n- Browse project folders from a resizable sidebar with Git new/modified coloring\n- Open folders as dockable folder tabs with tree, list, thumbnail, and gallery views\n- Open files beside terminals with preview, text, hex, and Git diff modes\n- Edit and save text/hex files, detect external changes, and resolve dirty-file conflicts\n- Preview Markdown, images, and PDFs, with large-file handling for heavy text buffers\n- Optionally record terminal sessions to local asciicast files and replay them from a timeline\n- Tune terminal appearance, shell launch behavior, shortcuts, accessibility, scrolling, themes, and remote host settings\n- Pair a browser over the built-in HTTPS remote host, manage devices, inspect live connections, and review audit events\n- Check for GitHub release updates from the app chrome\n\n## Getting started\n\n### Prerequisites\n\n- Node.js 22+\n- npm 10+\n- macOS or Linux for the packaged binaries in CI\n\n### Install dependencies\n\n```bash\nnpm ci\n```\n\n### Start local development\n\n```bash\nnpm run dev\n```\n\n### Run the smoke checks\n\n```bash\nnpm run smoke\n```\n\n`smoke` runs Biome linting and the renderer/main TypeScript plus Vite build.\n\n## Terminal recordings\n\nTerminal recording is off by default. Enable **Record new terminals** in Settings, or right-click a terminal tab and choose **Start Recording** for one session. Recordings are local asciicast v3 `.cast` files saved under `~/Documents/TerminaySessions/YYYY-MM-DD/` by default, with Terminay metadata stored beside each cast file.\n\nRecording can capture terminal output, typed input, commands, file paths, tokens, and other sensitive text. Terminay uses a conservative best-effort filter for likely password or secret prompts, but terminal apps do not expose a perfect universal secure-input signal. Keep recordings local unless you deliberately share them.\n\n## Tab activity indicators\n\nTerminal tabs show a colored underline when work happens on a tab you are not looking at: amber while a tab is working, green when it finished and you have not viewed it, and a red **attention** underline when an agent finishes a turn or asks for permission or input. Configure the indicators under **Appearance → Tab Indicators** in Settings.\n\nWith **Use terminal signals for activity** enabled (the default), Terminay consumes the escape sequences that shells and AI agents such as Claude Code and Codex CLI already emit, instead of guessing from raw output, which fixes spinner-driven flickering on agent tabs. The consumed sequences are:\n\n- `OSC 9;4` progress (ConEmu/Windows Terminal) — drives the working underline, cleared when progress ends.\n- `OSC 133` and `OSC 633` command markers (FinalTerm/VS Code shell integration, subcommands `A`/`B`/`C`/`D`) — track command start and finish.\n- `OSC 777;notify;\u003ctitle\u003e;\u003cbody\u003e` and `OSC 9;\u003cmessage\u003e` (iTerm2-style) notifications — raise the attention underline.\n- Terminal `BEL` — raises the attention underline.\n\n**Progress signal timeout** (default 15 seconds) sets how long without a progress update before a busy tab is treated as finished, so a crashed program cannot pin a tab busy forever. Sequences are consumed for state only and still pass through to the terminal unchanged.\n\n### Run end-to-end tests\n\n```bash\nnpm run test:e2e\n```\n\n### Build the app locally\n\n```bash\nnpm run build\n```\n\nPlatform-specific packaging is also available:\n\n```bash\nnpm run build:mac\nnpm run build:linux\n```\n\nRelease packaging syncs `package.json` from the release tag during CI, so the source tree can use the placeholder version while published builds carry the tagged version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkwylde%2Fterminay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkwylde%2Fterminay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkwylde%2Fterminay/lists"}