# Flameshow
[](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml)
[](https://codecov.io/gh/laixintao/flameshow)
[](https://pypi.org/project/flameshow/)


[](https://github.com/psf/black)
Flameshow is a terminal Flamegraph viewer.

## Features
- Renders Flamegraphs in your terminal
- Supports zooming in and displaying percentages
- Keyboard input is prioritized
- All operations can also be performed using the mouse.
- Can switch to different sample types
## Install
Flameshow is written in pure Python, so you can install via `pip`:
```shell
pip install flameshow
```
But you can also run it through [nix](https://nixos.org/):
```shell
nix run github:laixintao/flameshow
# Or if you want to install it imperatively:
nix profile install github:laixintao/flameshow
```
## Usage
View golang's goroutine dump:
```shell
$ curl http://localhost:9100/debug/pprof/goroutine -o goroutine.out
$ flameshow goroutine.out
```
After entering the TUI, the available actions are listed on Footer:
- <kbd>q</kbd> for quit
- <kbd>h</kbd> <kbd>j</kbd> <kbd>k</kbd> <kbd>l</kbd> or <kbd>←</kbd>
<kbd>↓</kbd> <kbd>↑</kbd> <kbd>→</kbd> for moving around, and <kbd>Enter</kbd>
for zoom in, then <kbd>Esc</kbd> for zoom out.
- You can also use a mouse, hover on a span will show it details, and click will
zoom it.
## Supported Formats
As far as I know, there is no standard specification for profiles. Different
languages or tools might generate varying profile formats. I'm actively working
on supporting more formats. Admittedly, I might not be familiar with every tool
and its specific format. So, if you'd like Flameshow to integrate with a tool
you love, please feel free to reach out and submit an issue.
- Golang pprof
- [Brendan Gregg's Flamegraph](https://www.brendangregg.com/flamegraphs.html)
- Python [Austin](https://github.com/P403n1x87/austin)
## Development
If you want to dive into the code and make some changes, start with:
```shell
git clone git@github.com:laixintao/flameshow.git
cd flameshow
pip install poetry
poetry install
```
---
This project is proudly powered by
[textual](https://github.com/Textualize/textual).
Raw data
{
"_id": null,
"home_page": "https://github.com/laixintao/flameshow",
"name": "flameshow",
"maintainer": "laixintao",
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": "laixintaoo@gmail.com",
"keywords": "terminal, golang, pprof, flamegraph",
"author": "laixintao",
"author_email": "laixintaoo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8f/1e/7f538b048a2a9e0cfe3a99aa50db6fd7f50585c61b5082cc2b7cf81bf353/flameshow-1.1.4.tar.gz",
"platform": null,
"description": "# Flameshow\n\n[](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml)\n[](https://codecov.io/gh/laixintao/flameshow)\n[](https://pypi.org/project/flameshow/)\n\n\n[](https://github.com/psf/black)\n\nFlameshow is a terminal Flamegraph viewer.\n\n\n\n## Features\n\n- Renders Flamegraphs in your terminal\n- Supports zooming in and displaying percentages\n- Keyboard input is prioritized\n- All operations can also be performed using the mouse.\n- Can switch to different sample types\n\n## Install\n\nFlameshow is written in pure Python, so you can install via `pip`:\n\n```shell\npip install flameshow\n```\n\nBut you can also run it through [nix](https://nixos.org/):\n\n```shell\nnix run github:laixintao/flameshow\n# Or if you want to install it imperatively:\nnix profile install github:laixintao/flameshow\n```\n\n## Usage\n\nView golang's goroutine dump:\n\n```shell\n$ curl http://localhost:9100/debug/pprof/goroutine -o goroutine.out\n$ flameshow goroutine.out\n```\n\nAfter entering the TUI, the available actions are listed on Footer:\n\n- <kbd>q</kbd> for quit\n- <kbd>h</kbd> <kbd>j</kbd> <kbd>k</kbd> <kbd>l</kbd> or <kbd>\u2190</kbd>\n <kbd>\u2193</kbd> <kbd>\u2191</kbd> <kbd>\u2192</kbd> for moving around, and <kbd>Enter</kbd>\n for zoom in, then <kbd>Esc</kbd> for zoom out.\n- You can also use a mouse, hover on a span will show it details, and click will\n zoom it.\n\n## Supported Formats\n\nAs far as I know, there is no standard specification for profiles. Different\nlanguages or tools might generate varying profile formats. I'm actively working\non supporting more formats. Admittedly, I might not be familiar with every tool\nand its specific format. So, if you'd like Flameshow to integrate with a tool\nyou love, please feel free to reach out and submit an issue.\n\n- Golang pprof\n- [Brendan Gregg's Flamegraph](https://www.brendangregg.com/flamegraphs.html)\n- Python [Austin](https://github.com/P403n1x87/austin)\n\n## Development\n\nIf you want to dive into the code and make some changes, start with:\n\n```shell\ngit clone git@github.com:laixintao/flameshow.git\ncd flameshow\npip install poetry\npoetry install\n```\n\n---\n\nThis project is proudly powered by\n[textual](https://github.com/Textualize/textual).\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A Terminal Flamegraph Viewer",
"version": "1.1.4",
"project_urls": {
"Bug Tracker": "https://github.com/laixintao/flameshow/issues",
"Homepage": "https://github.com/laixintao/flameshow"
},
"split_keywords": [
"terminal",
" golang",
" pprof",
" flamegraph"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0834460170d1691d9877c1552474d58c51cead7f7c715886d44ba802fd4bd9ee",
"md5": "8137a47263ddcb98861dfe07678a89de",
"sha256": "46c0213e8f2a558cca142655bf777bba38cf5c795bee551362bbd6fc49ef4a8c"
},
"downloads": -1,
"filename": "flameshow-1.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8137a47263ddcb98861dfe07678a89de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 24217,
"upload_time": "2025-02-06T04:30:53",
"upload_time_iso_8601": "2025-02-06T04:30:53.261545Z",
"url": "https://files.pythonhosted.org/packages/08/34/460170d1691d9877c1552474d58c51cead7f7c715886d44ba802fd4bd9ee/flameshow-1.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8f1e7f538b048a2a9e0cfe3a99aa50db6fd7f50585c61b5082cc2b7cf81bf353",
"md5": "4973b3cbf5873b15e131a5daf74f68a5",
"sha256": "689aab65e58c232982f2258131d2fa0c9a5363c53cb0e6990d666ef07ecd4e1d"
},
"downloads": -1,
"filename": "flameshow-1.1.4.tar.gz",
"has_sig": false,
"md5_digest": "4973b3cbf5873b15e131a5daf74f68a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 2294224,
"upload_time": "2025-02-06T04:30:55",
"upload_time_iso_8601": "2025-02-06T04:30:55.741834Z",
"url": "https://files.pythonhosted.org/packages/8f/1e/7f538b048a2a9e0cfe3a99aa50db6fd7f50585c61b5082cc2b7cf81bf353/flameshow-1.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-06 04:30:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "laixintao",
"github_project": "flameshow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "flameshow"
}