{"id":19204612,"url":"https://github.com/walmartlabs/pulsar","last_synced_at":"2025-05-12T15:46:48.535Z","repository":{"id":57537919,"uuid":"105328439","full_name":"walmartlabs/pulsar","owner":"walmartlabs","description":"Text-based dashboard for Elixir CLIs","archived":false,"fork":false,"pushed_at":"2017-10-20T23:38:07.000Z","size":776,"stargazers_count":20,"open_issues_count":0,"forks_count":4,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-14T22:39:08.406Z","etag":null,"topics":["cli","dashboard","elixir"],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/walmartlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-30T00:42:53.000Z","updated_at":"2023-09-01T10:57:19.000Z","dependencies_parsed_at":"2022-09-04T14:01:18.626Z","dependency_job_id":null,"html_url":"https://github.com/walmartlabs/pulsar","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walmartlabs%2Fpulsar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walmartlabs%2Fpulsar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walmartlabs%2Fpulsar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walmartlabs%2Fpulsar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/walmartlabs","download_url":"https://codeload.github.com/walmartlabs/pulsar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253767769,"owners_count":21961182,"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","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":["cli","dashboard","elixir"],"created_at":"2024-11-09T13:08:55.466Z","updated_at":"2025-05-12T15:46:48.486Z","avatar_url":"https://github.com/walmartlabs.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pulsar\n\n[![Hex.pm](https://img.shields.io/hexpm/v/Pulsar.svg)](https://hex.pm/packages/pulsar)\n\nWriting a command line tool and want to keep the user informed about what's going on?\nToo often, applications either write nothing, or overwhelm the user with logged updates.\nPulsar is used to provide just enough information to keep the user informed.\n\nPulsar is a text-based, dynamic dashboard that lets processes communicate their status.\nJobs can be created, updated, and completed asynchronously, and update in-place.\nThis is intended for use in Elixir applications that run as command line tools.\n\n![Demo](assets/pulsar-demo.gif)\n\nJobs have a lifecycle: they are created, periodically updated, and eventually completed.\nWhenever a job is updated, it is highlighted for one second using bright, bold text.\n\nIn the above demo, completed jobs were also set to status `:ok`, which displays them in green.\n\n[API Documentation](https://hexdocs.pm/pulsar/api-reference.html)\n\n## Installation\n\nThe package can be installed by adding `pulsar` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:pulsar, \"~\u003e 0.1.0\"}\n  ]\nend\n```\n## Limitations\n\nPulsar doesn't know the dimensions of the screen; large numbers of jobs in\na short window will not render correctly.\nLikewise, long lines that wrap will cause incorrect output.\n\nPulsar is currently hard-coded for xterm; in the future it will use the terminal capabilities\ndatabase to identify what command codes generate each effect.\n\nPulsar doesn't have any way to prevent other output to the console;\nthat will cause confusing output unless `Pulsar.pause/0` and `Pulsar.resume/0` are\nused.\n\nPulsar works best when either all the jobs have a similar lifecycle, or\nwhen new jobs are added and existing jobs are completed.\n\n## Inspiration\n\n`docker pull`.  That's it. Just wanted to have a tool that could keep me\nupdated, cleanly, of a reasonable number of active jobs operating\nconcurrently.\n\n## License\n\nReleased under the Apache Software License 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalmartlabs%2Fpulsar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwalmartlabs%2Fpulsar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalmartlabs%2Fpulsar/lists"}