{"id":20699897,"url":"https://github.com/mrmarble/termsvg","last_synced_at":"2025-07-31T11:13:10.592Z","repository":{"id":103175718,"uuid":"290971987","full_name":"MrMarble/termsvg","owner":"MrMarble","description":"Record, share and export your terminal as a animated SVG image.","archived":false,"fork":false,"pushed_at":"2025-07-12T10:27:15.000Z","size":616,"stargazers_count":234,"open_issues_count":4,"forks_count":13,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-12T11:44:24.082Z","etag":null,"topics":["asciicast","asciinema","convert","converter","export","play","record","svg"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrMarble.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2020-08-28T06:45:05.000Z","updated_at":"2025-07-12T10:22:14.000Z","dependencies_parsed_at":"2024-05-18T12:34:01.179Z","dependency_job_id":"be7e4445-9565-4ce8-b06e-9e0b03b22324","html_url":"https://github.com/MrMarble/termsvg","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/MrMarble/termsvg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Ftermsvg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Ftermsvg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Ftermsvg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Ftermsvg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrMarble","download_url":"https://codeload.github.com/MrMarble/termsvg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Ftermsvg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268027916,"owners_count":24183726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"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":["asciicast","asciinema","convert","converter","export","play","record","svg"],"created_at":"2024-11-17T00:32:42.718Z","updated_at":"2025-07-31T11:13:10.559Z","avatar_url":"https://github.com/MrMarble.png","language":"Go","readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"assets/logo.png\" width=\"150\"\u003e\n\n### Record, share and export your terminal as a animated SVG image.\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003c/br\u003e\n\n[![golangci-lint](https://github.com/MrMarble/termsvg/actions/workflows/golangci-lint.yml/badge.svg)](https://github.com/MrMarble/termsvg/actions/workflows/golangci-lint.yml)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/mrmarble/termsvg)\n[![Go Reference](https://pkg.go.dev/badge/github.com/mrmarble/termsvg.svg)](https://pkg.go.dev/github.com/mrmarble/termsvg)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nTermSVG is an all in one cli tool to record, replay and export your terminal session to svg. It uses the same format as [asciinema](https://asciinema.org) so you can convert asciicast files to SVG or use the asciinema player with a TermSVG recording.\n\n## Installation\n\n### Manually\n\nYou can download a pre compiled binary directly from the [releases](https://github.com/mrmarble/termsvg/releases) for your OS/Architecture.\n\n### Go cli\n\nIf you already have Go in your system you can use `go install`\n\n```sh\ngo install github.com/mrmarble/termsvg/cmd/termsvg@latest # or target a specific version @v0.6.0\n```\n\n### Install script\n\nI made an [installation script](scripts/install-termsvg.sh) that should download the latest available version corresponding to your OS and architecture. `sudo` is needed to copy the binary to `/usr/local/bin`\n\n```sh\ncurl -sL https://raw.githubusercontent.com/MrMarble/termsvg/master/scripts/install-termsvg.sh | sudo -E bash -\n# or with wget\nwget -O - https://raw.githubusercontent.com/MrMarble/termsvg/master/scripts/install-termsvg.sh | sudo -E bash -\n```\n\n\u003e [!NOTE]\n\u003e Windows binary does not have the `rec` command.\n\n---\n\n## Usage\n\ntermsvg is composed of multiple commands, similar to `git`, `docker` or\n`asciinema`.\n\nWhen you run `termsvg` with no arguments help message is displayed, listing\nall available commands with their options.\n\n### `rec \u003cfilename\u003e`\n\n**Record terminal session.**\n\nBy running `termsvg rec \u003cfilename\u003e` you start a new recording session. The\ncommand (process) that is recorded can be specified with `-c` option (see\nbelow), and defaults to `$SHELL` which is what you want in most cases.\n\nYou can temporarily pause recording of terminal by pressing \u003ckbd\u003eCtrl+P\u003c/kbd\u003e.\nThis is useful when you want to execute some commands during the recording\nsession that should not be captured (e.g. pasting secrets). Resume by pressing\n\u003ckbd\u003eCtrl+P\u003c/kbd\u003e again.\n\nRecording finishes when you exit the shell (hit \u003ckbd\u003eCtrl+D\u003c/kbd\u003e or type\n`exit`). If the recorded process is not a shell then recording finishes when\nthe process exits.\n\nThe resulting recording (called [asciicast](doc/asciicast-v2.md)) is saved to a local file. It can later be\nreplayed with `termsvg play \u003cfilename\u003e` and/or exported to svg with `termsvg export -i \u003cfilename\u003e`.\n\nAvailable options:\n\n- `-c, --command=\u003ccommand\u003e` - Specify command to record, defaults to $SHELL\n\n### `play \u003cfilename\u003e`\n\n**Replay recorded asciicast in a terminal.**\n\nThis command replays given asciicast (as recorded by `rec` command) directly in\nyour terminal.\n\nPlaying from a local file:\n\n```sh\ntermsvg play /path/to/asciicast.cast\n```\n\nAvailable options:\n\n- `-i, --idle-time-limit=\u003csec\u003e` - Limit replayed terminal inactivity to max `\u003csec\u003e` seconds\n- `-s, --speed=\u003cfactor\u003e` - Playback speed (can be fractional)\n\n\u003e For the best playback experience it is recommended to run `termsvg play` in\n\u003e a terminal of dimensions not smaller than the one used for recording, as\n\u003e there's no \"transcoding\" of control sequences for new terminal size.\n\n### `export \u003cfilename\u003e`\n\n**Export recorded asciicast to svg.**\n\nThis command exports given asciicast (as recorded by `rec` command) to svg.\n\nExporting from a local file:\n\n```sh\ntermsvg export /path/to/asciicast.cast\n```\n\nAvailable options:\n\n- `-o, --output=\u003cfile\u003e` - Output svg to be created. Defaults to [input].svg\n- `-m, --minify` - Minify svg using [Minify](https://github.com/tdewolff/minify)\n\n## Example\n\nAsciinema recording [inverted pendulum](https://asciinema.org/a/444816)\n![inverted pendulum](examples/444816.svg)\n\nMore at the [examples](examples) folder\n\n## Contributing\n\nIf you want to contribute to this project check out [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nAll code is licensed under the GPL, v3 or later. See [LICENSE](LICENSE) file for details.\n\n## ⭐ Stargazers\n\n\u003ca href=\"https://star-history.com/#mrmarble/termsvg\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=mrmarble/termsvg\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=mrmarble/termsvg\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=mrmarble/termsvg\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmarble%2Ftermsvg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrmarble%2Ftermsvg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmarble%2Ftermsvg/lists"}