{"id":16525107,"url":"https://github.com/jacek-kurlit/pik","last_synced_at":"2026-04-01T20:31:06.846Z","repository":{"id":221851809,"uuid":"755550519","full_name":"jacek-kurlit/pik","owner":"jacek-kurlit","description":"Process Interactive Kill","archived":false,"fork":false,"pushed_at":"2026-03-21T09:53:39.000Z","size":7051,"stargazers_count":495,"open_issues_count":16,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-21T10:37:52.989Z","etag":null,"topics":["rust","terminal","tui"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/pik","language":"Rust","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/jacek-kurlit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-10T14:59:53.000Z","updated_at":"2026-03-21T09:53:40.000Z","dependencies_parsed_at":"2025-11-12T11:02:56.639Z","dependency_job_id":null,"html_url":"https://github.com/jacek-kurlit/pik","commit_stats":null,"previous_names":["jacek-kurlit/pik"],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/jacek-kurlit/pik","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacek-kurlit%2Fpik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacek-kurlit%2Fpik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacek-kurlit%2Fpik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacek-kurlit%2Fpik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacek-kurlit","download_url":"https://codeload.github.com/jacek-kurlit/pik/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacek-kurlit%2Fpik/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["rust","terminal","tui"],"created_at":"2024-10-11T17:01:43.436Z","updated_at":"2026-04-01T20:31:06.841Z","avatar_url":"https://github.com/jacek-kurlit.png","language":"Rust","funding_links":[],"categories":["Applications","Process Management","System Monitor","Rust","🛠️ Productivity"],"sub_categories":["System tools","☸️ Kubernetes"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e\n  \u003cspan style=\"font-size: 80px;\"\u003ePik\u003c/span\u003e\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"logo_dark.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"logo_light.svg\"\u003e\n  \u003cimg alt=\"Pik\" height=\"80\" src=\"logo_light.svg\"/\u003e\n\u003c/picture\u003e\n\u003c/h1\u003e\n\n[![Build status](https://github.com/jacek-kurlit/pik/actions/workflows/on_merge.yml/badge.svg)](https://github.com/jacek-kurlit/pik/actions)\n[![GitHub Release](https://img.shields.io/github/v/release/jacek-kurlit/pik)](https://github.com/jacek-kurlit/pik/releases/latest)\n\n\u003c/div\u003e\n\nProcess Interactive Kill is a command line tool that helps to find and kill process.\nIt works like pkill command but search is interactive.\n![Example pik](docs/pik.png)\n\nThis tool is still under development\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Features](#features)\n- [Installation](#installation)\n- [Configuration](#configuration)\n  - [Application configuration](#application-configuration)\n  - [Multiple meta key names support](#multiple-meta-key-names-support)\n  - [Readline style support](#readline-style-support)\n- [Caveats](#caveats)\n- [Development](#development)\n  - [Supported Systems](#supported-systems)\n  - [Setup](#setup)\n  - [Building](#building)\n\n## Features\n\nPik allows to **fuzzy** search processes by:\n\n- Name - No prefix is required, just type process name, for example 'firefox'\n  ![Example search by name](docs/search_by_name.gif)\n- Cmd Path - Prefix search with '/', for example '/firefox'\n  ![Example search by path](docs/search_by_path.gif)\n- Arguments - Prefix search with '-' for example '-foo'. Please note that if you want to use this feature in cli you must add `--`, for example `pik -- -foo`\n  ![Example search by argument](docs/search_by_arg.gif)\n- Ports - Prefix search with ':' for example ':8080'\n  ![Example search by port](docs/search_by_port.gif)\n- Everywhere - Prefix search with '~' for example '~firefox'\n  ![Example search everywhere](docs/search_everywhere.gif)\n- Select exact process by id - Prefix with '!' for example '!1234'\n- Select process family (process + it's children) - Prefix with '@' for example '@1234'\n\nAfter selecting process you can kill it with Ctrl + X\n\n## Installation\n\n**[Archives of precompiled binaries for pik are available for Linux, macOS and Windows.](https://github.com/jacek-kurlit/pik/releases)**\n\nOn **Arch Linux**\n\n```sh\npacman -S pik\n```\n\nOn **Fedora**\n\n```sh\nsudo dnf copr enable rusty-jack/pik\nsudo dnf install pik\n```\n\nOn **Tumbleweed**\n\n```sh\nsudo zypper install pik\n```\n\nOn **Gentoo**\n\nIt is available via `lamdness` overlay\n\n```sh\nsudo eselect repository enable lamdness\nsudo emaint -r lamdness sync\nsudo emerge -av sys-process/pik\n```\n\nOn **Windows** with [Scoop](https://scoop.sh)\n\n```sh\nscoop bucket add jacek-kurlit https://github.com/jacek-kurlit/scoop-bucket\nscoop install pik\n```\n\nOn **macOS** with [Homebrew](https://brew.sh)\n\n```sh\nbrew tap jacek-kurlit/tap\nbrew install pik\n```\n\nOn **Ubuntu** with [Snap](https://snapcraft.io/pik)\n\n```sh\nsnap install pik-tui\n\n```\nIf you're a **Rust programmer**, pik can be installed with `cargo`.\n\n```sh\ncargo install pik\n```\n\nAlternatively, one can use [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall) to install a pik\nbinary directly from GitHub:\n\n```sh\ncargo binstall pik\n```\n\n## Configuration\n\n### Application configuration\n\nYou may set your preferences in `config.toml` file located in:\n\n| Platform | Config dir                                                                             |\n| -------- | -------------------------------------------------------------------------------------- |\n| Linux    | /home/_:username_/.config/pik                                                          |\n| MacOS    | /home/_:username_/.config/pik or /Users/_:username_/Library/Application Support/pik    |\n| Windows  | C:\\Users\\\\_:username_\\\\.config\\pik or C:\\Users\\\\_:username_\\AppData\\Roaming\\pik        |\n\nAll options are optional, if skipped default values will be used.\nMost of config fields have cli arg equivalent. If both are set cli arg is preferred.\nRun `pik -- --help` to see cli options\nPlease refer to [config](config.md) for more details how to configure options,theme and key mappings\n\n### Multiple meta key names support\n\nPik supports combining multiple modifier keys (meta keys) in key bindings. You can use any combination of \"ctrl\", \"alt\", \"shift\", \"super\", \"hyper\", and \"meta\" modifiers together.\n\n**Examples:**\n\n```toml\n# Single modifier\nquit = \"ctrl+c\"\n\n# Combined modifiers\ntoggle_help = \"ctrl+alt+h\"\ntoggle_debug = \"ctrl+shift+d\"\n\n# Multiple bindings with different modifier combinations for the same action\ntoggle_help = [\"ctrl+alt+h\", \"ctrl+shift+h\", \"f1\"]\n```\n\nThis allows for flexible keybinding configurations that can accommodate different user preferences and avoid conflicts with terminal or OS shortcuts.\n\n### Readline style support\n\nYou may configure pik to use readline style key mappings. Here is example config snippet that you may add to your `config.toml` file to enable basic readline style editing:\n\n```toml\ncursor_left = [\"left\", \"ctrl+b\"]\ncursor_right = [\"right\", \"ctrl+f\"]\ncursor_home = [\"home\", \"ctrl+a\"]\ncursor_end = [\"end\", \"ctrl+e\"]\ncursor_word_left = [\"alt+b\"]\ncursor_word_right = [\"alt+f\"]\ndelete_char = [\"backspace\", \"ctrl+h\"]\ndelete_next_char = [\"delete\", \"ctrl+d\"]\ndelete_word = [\"ctrl+w\"]\ndelete_next_word = [\"alt+d\"]\ndelete_to_start = [\"ctrl+u\"]\ndelete_to_end = [\"ctrl+k\"]\n```\n\nNotice that you may need to adjust the other key mappings as well to avoid conflicts, and some key combinations may not work depending on your terminal emulator.\n\n## Caveats\n\n- Process name on linux system it is not always exe name also it is limited to 15 chars\n- In linux process may appear on list but you are not allowed to get information about ports it uses. In such situations you need to run pik with root privileges\n\n## Development\n\n### Supported Systems\n\nIn theory pik is using coross compliant lib that allows to run it on all major platforms.\nIn pratice I'm using linux and development is performed based on this OS.\nPik will probably work on MacOs and Windows but that must be tested by community since I don't own computers with these OS'es.\nIf you are able to test it on windows or macos please create issue to let me know.\n\n### Setup\n\n- Rust 1.79+\n- Cargo make [link](https://github.com/sagiegurari/cargo-make)\n- Cargo nextest [link](https://github.com/nextest-rs/nextest)\n- VHS [link](https://github.com/charmbracelet/vhs)\n\n### Building\n\n```sh\ngit clone https://github.com/jacek-kurlit/pik\ncd pik\ncargo build --release\n./target/release/pik --version\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacek-kurlit%2Fpik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacek-kurlit%2Fpik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacek-kurlit%2Fpik/lists"}