{"id":51505702,"url":"https://github.com/lancedesk/lancedesk-terminal-copier","last_synced_at":"2026-07-08T00:01:41.951Z","repository":{"id":355697552,"uuid":"1229040784","full_name":"lancedesk/lancedesk-terminal-copier","owner":"lancedesk","description":"LanceDesk Terminal Copier: record full bash/zsh session output, keep timestamped logs, and copy everything to the clipboard in one command—built for bug reports, incidents, and AI-assisted debugging (Linux, macOS, WSL).","archived":false,"fork":false,"pushed_at":"2026-05-04T20:09:49.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T22:14:24.628Z","etag":null,"topics":["bash","cli","clipboard","developer-tools","shell-scripting","terminal-logging","zsh"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/lancedesk.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":"docs/security.md","support":null,"governance":null,"roadmap":"docs/roadmap.md","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-04T16:31:36.000Z","updated_at":"2026-05-04T20:22:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lancedesk/lancedesk-terminal-copier","commit_stats":null,"previous_names":["lancedesk/lancedesk-terminal-copier"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lancedesk/lancedesk-terminal-copier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-terminal-copier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-terminal-copier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-terminal-copier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-terminal-copier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lancedesk","download_url":"https://codeload.github.com/lancedesk/lancedesk-terminal-copier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-terminal-copier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35246561,"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-07T02:00:07.222Z","response_time":90,"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":["bash","cli","clipboard","developer-tools","shell-scripting","terminal-logging","zsh"],"created_at":"2026-07-08T00:01:41.154Z","updated_at":"2026-07-08T00:01:41.942Z","avatar_url":"https://github.com/lancedesk.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LanceDesk Terminal Copier (`ld`)\n\n![LanceDesk Terminal Copier banner](assets/readme-banner.svg)\n\n[![CI](https://github.com/lancedesk/lancedesk-terminal-copier/actions/workflows/ci.yml/badge.svg)](https://github.com/lancedesk/lancedesk-terminal-copier/actions/workflows/ci.yml)\n\nRecord terminal output and copy full session logs in one command.\n\n**LanceDesk Terminal Copier** is a small shell tool for **bash** and **zsh** on Linux, macOS, and WSL. Start recording in a terminal tab, run builds, tests, or scripts, then copy **everything that scrolled by** to the clipboard—ideal for bug reports, incident notes, and pasting into AI assistants—without manually selecting text.\n\n## Who it is for\n\n- Developers and operators who need **verbatim session output**, not a partial screen grab.\n- Anyone filing issues who wants **commands + stdout/stderr** in one paste.\n- Teams that share **repro steps** from real terminals instead of cleaned-up snippets.\n\n## 60-second quick start\n\n`install.sh` edits `~/.bashrc` and `~/.zshrc` so **new terminals** load `ld` automatically.  \nRunning `./install.sh` alone cannot define shell functions in your **current** shell—that is how Unix subprocesses work—so use **one** of the following.\n\n**Recommended (works in bash and zsh): install, then load `ld` in this session**\n\n```bash\ngit clone https://github.com/lancedesk/lancedesk-terminal-copier.git\ncd lancedesk-terminal-copier\nchmod +x install.sh\n./install.sh \u0026\u0026 source ~/.config/ld/ld.sh\n```\n\n**Bash only — install and load in one step** (run install in the current shell)\n\n```bash\nchmod +x install.sh\nsource ./install.sh\n```\n\nVerify:\n\n```bash\nld help\n```\n\n## Basic workflow\n\n```bash\nld start\n# run scripts, builds, tests, or any commands\nld stop\nld c\n```\n\nNow paste with `Ctrl+V` into issue reports, chats, or AI tools.\n\n## Commands\n\n- `ld start` - start recording in current shell session\n- `ld stop` - stop recording\n- `ld c` - copy current/last log to clipboard (clean/sanitized)\n- `ld c --raw` - copy raw log including control sequences\n- `ld +c` - alias of `ld c`\n- `ld status` - show recorder state\n- `ld show` - print raw current/last log\n- `ld show --clean` - print sanitized current/last log\n- `ld recover` - reset recorder state after interrupted sessions\n- `ld version` - show installed version\n- `ld help` - show command help\n\n## Exit codes (automation-friendly)\n\n- `10` - already recording\n- `11` - stop requested while idle\n- `12` - recorder state is inconsistent\n- `20` - no log available to copy\n- `21` - no supported clipboard utility found\n- `22` - no log available to show\n\n## Why not just redirect output to a file?\n\nYou can use `\u003e\u003e file.log`, but that is manual and less reusable in day-to-day troubleshooting. `ld` adds:\n\n- one command to start capture\n- one command to copy full logs\n- automatic \"last log\" tracking\n- per-session control with zero daemon overhead\n\n## Where logs are stored\n\n- Logs: `~/.local/share/ld/logs/`\n- Last log pointer: `~/.local/state/ld/current_log`\n\n## Clipboard support\n\n`ld` auto-detects:\n\n- `wl-copy`\n- `xclip`\n- `xsel`\n- `pbcopy`\n- `clip.exe`\n\nIf no clipboard tool is available, logs are still saved and can be viewed with `ld show`.\n\n## Uninstall\n\n```bash\n~/.config/ld/uninstall.sh\n```\n\n## Upgrade and rollback\n\nRe-running install is idempotent and safe:\n\n```bash\n./install.sh\n```\n\nIf an existing `~/.config/ld/ld.sh` differs, installer creates a timestamped backup in\n`~/.config/ld/backups/` and records the latest backup pointer.\n\nRollback to the latest backup:\n\n```bash\n~/.config/ld/install.sh --rollback\n```\n\n## Documentation\n\n- Project landing page (GitHub Pages): `docs/index.html`\n- `docs/architecture.md` - runtime model and internals\n- `docs/security.md` - privacy and safe-usage guidance\n- `docs/faq.md` - troubleshooting and common questions\n- `docs/roadmap.md` - public roadmap\n- `docs/release.md` - semantic versioning and release checklist\n- `docs/team-examples.md` - incident/bug/AI templates for teams\n- `docs/launch.md` - launch announcement and distribution checklist\n- `docs/distribution.md` - Homebrew and release distribution guide\n- `wrappers/npm` - npm discoverability wrapper scaffold\n- `wrappers/pip` - pip discoverability wrapper scaffold\n\n## Project policies\n\n- `SECURITY.md` - vulnerability disclosure and response targets\n- `CONTRIBUTING.md` - contribution workflow and quality checklist\n- `CODE_OF_CONDUCT.md` - expected community behavior\n- `SUPPORT.md` - support model and sponsored support direction\n\n## Testing\n\n```bash\n./tests/smoke_test.sh\n./tests/clipboard_fallback_test.sh\n./tests/upgrade_rollback_test.sh\n./tests/state_transition_test.sh\n./tests/sanitize_copy_test.sh\n```\n\n## License\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flancedesk%2Flancedesk-terminal-copier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flancedesk%2Flancedesk-terminal-copier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flancedesk%2Flancedesk-terminal-copier/lists"}