{"id":13507799,"url":"https://github.com/koudelka/visualixir","last_synced_at":"2025-10-08T17:09:55.813Z","repository":{"id":2123419,"uuid":"45759977","full_name":"koudelka/visualixir","owner":"koudelka","description":"A process/message visualizer for BEAM nodes.💪👁","archived":false,"fork":false,"pushed_at":"2022-12-09T04:55:55.000Z","size":90734,"stargazers_count":1327,"open_issues_count":21,"forks_count":45,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-05-23T11:26:31.074Z","etag":null,"topics":["beam","elixir","erlang","visualizer"],"latest_commit_sha":null,"homepage":"","language":"CSS","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/koudelka.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}},"created_at":"2015-11-07T23:59:39.000Z","updated_at":"2025-04-20T08:10:23.000Z","dependencies_parsed_at":"2023-01-11T16:08:03.407Z","dependency_job_id":null,"html_url":"https://github.com/koudelka/visualixir","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/koudelka/visualixir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koudelka%2Fvisualixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koudelka%2Fvisualixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koudelka%2Fvisualixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koudelka%2Fvisualixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koudelka","download_url":"https://codeload.github.com/koudelka/visualixir/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koudelka%2Fvisualixir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278981518,"owners_count":26079640,"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-10-08T02:00:06.501Z","response_time":56,"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":["beam","elixir","erlang","visualizer"],"created_at":"2024-08-01T02:00:39.363Z","updated_at":"2025-10-08T17:09:55.798Z","avatar_url":"https://github.com/koudelka.png","language":"CSS","readme":"# Visualixir\n\nVisualixir is a toy visualizer for BEAM nodes, written in Elixir + Phoenix + d3, with live message sequence charts.\n\nIt's largely intended as a teaching tool, to give newer BEAM programmers a look into the process ecosystem living inside their nodes. However, it may prove of some amusement/use to more experienced folks (it's kinda neat to trace `iex` and the io system).\n\nHuge gifs are worth a thousand words:\n\n![Cluster Select](https://raw.githubusercontent.com/koudelka/visualixir/master/doc/cluster_select.gif)\n![Cluster Tour](https://raw.githubusercontent.com/koudelka/visualixir/master/doc/cluster_tour.gif)\n\n![Msg Seq](https://raw.githubusercontent.com/koudelka/visualixir/master/doc/msg_seq.gif)\n![Msg Seq 2](https://raw.githubusercontent.com/koudelka/visualixir/master/doc/msg_seq_2.gif)\n\n## Getting Going\n\n1. Clone this repository.\n2. Compile: `mix deps.get \u0026\u0026 mix compile \u0026\u0026 cd assets \u0026\u0026 npm install \u0026\u0026 cd -`\n3. Start 'er up: `elixir --sname visualixir -S mix phx.server`\n4. Navigate to [the GUI](http://0.0.0.0:4000)\n\nIf you want to visualize other BEAM nodes, you'll need to start them up with the `--sname \u003cunique_name_here\u003e` option.\n\nI suggest you use Chrome for Visualixir, Safari and Firefox's SVG performance seems to be lacking. :(\n\nThere are a couple example modules included, [SingleNodePingPong](https://github.com/koudelka/visualixir/blob/master/lib/visualixir/examples/single_node_ping_pong.ex) and [MultiNodePingPong](https://github.com/koudelka/visualixir/blob/master/lib/visualixir/examples/multi_node_ping_pong.ex). Additionally, there's a [Cluster](https://github.com/koudelka/visualixir/blob/master/test/support/cluster.ex) module to start up additional `:slave` nodes.\n\n## Usage\n\n#### Selecting Nodes\nOn the upper left of the terrible GUI is a list of nodes that Visualixir curently knows about, including itself. You can click on a node's name to visualize it, or you can add a new node by entering it in the text box.\n\n#### Moving Around\nDrag the background to pan around.\n\nMove processes around and pin them down by dragging and dropping. To un-pin, double click.\n\nZoom by scrolling (mousewheel or two-finger swipe).\n\n#### Message Tracing\nOption-dragging (alt-dragging), will open a new \"conversation\", you can drop a set of pids into the upper left box to start tracing, you should see messages they send/receive in the adjoining box. Its outline will change to red to remind you that you're tracing it. You can click the `Stop Msg Tracing` button to halt all message tracing.\n\nThe live message sequence charts have a configurable fade time, but there's no GUI for it yet, see [web/static/js/message_sequence.js](https://github.com/koudelka/visualixir/blob/master/web/static/js/message_sequence.js)\n\nThe charting library is [here](https://github.com/koudelka/d3-message-sequence), and it'd love some pull requests. \u003c3\n\n## Warning\nDo not run Visualixir on production nodes, seriously. I've tried to make it somewhat safe, but I suspect you can get into some bad message-tracing scenarios that'll compromise your node.\n\n## Caveats\nThis a prototype, obviously, the code is a steaming pile of garbage. Visualixir is largely intended to be a playground for screwing around with visualization ideas. I'd love to see what folks come up with, PR's are gladly accepted! 💕 (the GUI needs a lot of help)\n","funding_links":[],"categories":["Debugging","Tooling"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoudelka%2Fvisualixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoudelka%2Fvisualixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoudelka%2Fvisualixir/lists"}