{"id":16592690,"url":"https://github.com/prikhi/hkredmine","last_synced_at":"2026-06-18T11:30:59.964Z","repository":{"id":20968572,"uuid":"24257442","full_name":"prikhi/hkredmine","owner":"prikhi","description":"A Redmine CLI Client and API Library Written in Haskell.","archived":false,"fork":false,"pushed_at":"2017-04-19T14:16:42.000Z","size":147,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-29T10:40:03.162Z","etag":null,"topics":["cli","haskell","redmine","redmine-cli-client"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/prikhi.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":"2014-09-20T08:07:57.000Z","updated_at":"2020-02-21T09:26:30.000Z","dependencies_parsed_at":"2022-07-30T02:47:58.672Z","dependency_job_id":null,"html_url":"https://github.com/prikhi/hkredmine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prikhi/hkredmine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fhkredmine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fhkredmine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fhkredmine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fhkredmine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prikhi","download_url":"https://codeload.github.com/prikhi/hkredmine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fhkredmine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34489019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"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":["cli","haskell","redmine","redmine-cli-client"],"created_at":"2024-10-11T23:21:57.176Z","updated_at":"2026-06-18T11:30:59.928Z","avatar_url":"https://github.com/prikhi.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"HKRedmine\n==========\n\nA Redmine CLI client written in Haskell.\n\nYou can do things like track time towards an Issue, create new Issues, view\nVersions \u0026 Projects, filter \u0026 sort Issues, etc.\n\nYou can also reuse the API library for your own projects.\n\n\nQuickstart\n-----------\n\n1. Clone this repository: `git clone http://bugs.sleepanarchy.com/hkredmine.git`\n1. Install hkredmine: `cd hkredmine; cabal install -j`\n1. Add it to your path: `export PATH=$PATH:~/.cabal/bin`\n1. Add your Redmine URL to the config file: `echo 'url=http://redmine.yourdomain.com/' \u003e ~/.hkredminerc`\n1. And your API key: `echo 'apikey=\"longalphanumericstring\"' \u003e\u003e ~/.hkredminerc`\n1. List available projects: `hkredmine projects`\n1. List the issues of a project: `hkredmine issues -p \u003cproject_identifier\u003e`\n1. List the next version of a project: `hkredmine nextversion \u003cproject_identifier\u003e`\n1. Start tracking time on an issue: `hkredmine startwork \u003cissue_id\u003e`\n1. Stop tracking time and create a new time entry: `hkredmine stopwork`\n1. Learn how to use everything else: `hkredmine --help`\n\n\nInstallation\n-------------\n\nNo packages currently exist, if you have experience packaging Haskell programs\nfor Debian, Arch Linux, etc. please drop us a patch or some hints.\n\nIf you're using [Stack][stack], you should be able to just run `stack setup` in\nthis directory, followed by `stack install`.\n\nOtherwise, you will need to build and install directly from the source. You\nwill need `cabal`, `git` and `zlib`:\n\n    # Arch-Linux\n    sudo pacman -S cabal-install git zlib\n\n    # Debian/Ubuntu\n    sudo apt-get install cabal-install git zlib1g-dev\n\nNext update your cabal package list:\n\n    cabal update\n\nThen grab the source:\n\n    git clone http://bugs.sleepanarchy.com/hkredmine.git\n\nBuild and install the program:\n\n    cd hkredmine\n    cabal sandbox init\n    cabal install -j\n\nThen copy the executable somewhere in your path:\n\n    sudo cp dist/build/hkredmine/hkredmine /usr/bin\n    cp dist/build/hkredmine/hkredmine ~/.bin\n\nYou may then remove the `hkredmine` directory:\n\n    cd ..\n    rm -rf hkredmine\n\n\nConfiguration\n--------------\n\n`hkredmine` expects a configuration file at `~/.hkredminerc`. It should follow\nthe basic INI `key = value` style. Only two settings are required, `url` and\n`apikey`:\n\n    # ~/.hkredminerc\n    url = http://redmine.mydomain.com/\n    apikey = \"longalphanumericapikey\"\n\nBe sure to enclose the API key in quotes and to include the trailing slash in\nthe URL.\n\nMultiple accounts may be used by putting keys under `[AccountName]` headers:\n\n    # ~/.hkredminerc\n    [account1]\n    url = ...\n    apikey = \"...\"\n\n    [account2]\n    url = ...\n    apikey = \"...\"\n\nYou can then switch accounts using the `use` command, like so:\n\n    hkredmine use account1\n    hkredmine projects\n    # Projects from account1 tracker are shown\n    hkredmine use account2\n    hkredmine projects\n    # Projects from account2 tracker are shown\n\n\nGeneral Usage\n--------------\n\nRun `hkredmine --help` for a listing of available commands and options.\nRun `hkredmine \u003ccommand\u003e --help` for additional help and available parameters\nfor a specific command.\n\nYou can generate bash completion files by passing the `bash` argument to the\n`help` flag:\n\n    hkredmine --help=bash \u003e hkredmine.comp\n    source hkredmine.comp\n\nThese will also work with zsh if you enable `bashcompinit` before sourcing the\ncompletion file:\n\n    autoload bashcompinit\n    bashcompinit\n\n    source hkredmine.comp\n\nThe following commands are currently available:\n\n    Commands:\n        use          Switch to a different redmine account.\n        [status]     Print the current Account, Issue and Tracked Time.\n    Projects:\n        project      Print the details of a Project.\n        projects     Print all Projects.\n    Issues:\n        issue        Print the details of an Issue.\n        issues       Filter and Print Issues.\n        watched      Filter and Print your Watched Issues.\n        newissue     Create a New Issue.\n        update       Update an New Issue.\n        close        Close an Issue.\n        watch        Watch an Issue.\n        unwatch      Unwatch an Issue.\n    Options:\n        fields       Print available field values(Statuses, Priorities, etc.).\n        categories   Print a Project's Categories.\n        newcategory  Create a Category.\n    Time Tracking:\n        startwork    Start tracking time for an Issue.\n        stopwork     Stop time tracking and submit a time entry.\n        pause        Pause time tracking.\n        resume       Resume time tracking.\n        abort        Abort time tracking.\n    Versions:\n        version      Print the details of a Version.\n        versions     Print all of a Project's Versions.\n        nextversion  Print the next Version due for a Project.\n\n\n\nCreating Issues\n----------------\n\nYou can use the `newissue` command to create a new Issue. You need to pass it a\nproject identifier and a subject:\n\n    hkredmine newissue -p my_proj -s \"Refactor Foobar Class\"\n\nIf you want to write out a longer description, pass the `-e` flag to open up\nyour `$EDITOR`:\n\n    export EDITOR=vim\n    hkredmine newissue -p my_proj -s \"Refactor that thing\" -e\n\nOnce you happy with the description, save and quit. You might encounter issues\nwith asynchronous editors like `gvim`. You could make an alias:\n\n    alias hkredmine=\"EDITOR=vim hkredmine\"\n\nVim user's may be interested in [this syntax plugin][vim-redminewiki]. We\nfollow the `*.redmine` extension convention.\n\n\nUpdating Issues\n----------------\n\nYou can modify existing Issues using the `update` command:\n\n    hkredmine update 77 --priority High -t Bug --category=UI -n \"Fix Category\"\n\nYou can pass the `-e` flag to edit the description in your `$EDITOR`:\n\n    hkredmine update 31 --priority Immediate -s \"A NU Start\" -e\n\n\nCreating Field Options\n-----------------------\n\nRight now, you can only create new Categories for Projects, using the\n`newcateogry` command:\n\n    hkredmine newcategory a-project Models\n\nThe `-m` flag will assign any Issues in the Category to you:\n\n    hkredmine newcategory my-dotfiles \"Vim Plugins\" -m\n\n\nViewing Things\n---------------\n\nYou can use the `projects` command to list all Projects and the `project`\ncommand to list one Project's details:\n\n    hkredmine projects\n    hkredmine project my-projects-identifier\n\nYou can use the `issues`, `watched` and `version` commands to show Issues:\n\n    hkredmine issues --project my-project --status \"In Progress\"\n    hkredmine watched --sort=priority\n    hkredmine version 12\n\nAnd the `issue` command to show details of a single Issue:\n\n    hkredmine issue 42\n\nTo view a Project's available Versions, use `versions`:\n\n    hkredmine versions my-projects-identifier\n\nYou can see the available Issue Statuses, Priorities, Categories or Time Entry\nActivites using the `fields` and `categories` commands:\n\n    hkredmine fields\n    hkredmine categories a-project-with-categories\n\n\nTime Tracking\n--------------\n\nYou can initiate time tracking for an Issue by using the `startwork` command:\n\n    hkredmine startwork 154\n\nYou can also `pause`, `resume` and `abort` time tracking:\n\n    hkredmine pause\n    hkredmine resume\n    hkredmine abort\n\nWhen you're ready to submit a new time entry, run the `stopwork` command:\n\n    hkredmine stopwork\n\nYou can skip the prompts by passing parameters on the command line:\n\n    hkredmine stopwork --activity=Development --comment=\"Writing @stopwork@ documentation\"\n\n\nClosing Issues\n---------------\n\nWhen Issues are considered finished, you can run the `close` command:\n\n    hkredmine close 154\n\nThis will change the Issue's status to `Closed`, the done ratio to `100%` and\nthe due date to today(but only if it is not already set).\n\nYou can specify a comment to leave when updating the Issue using the `comment`\nflag:\n\n    hkredmine close 69 --comment \"Hotfix pushed to prod\"\n\n\nWorkflow\n---------\n\nLet's begin our day by picking an account to use. This is only necessary is you\nhave accounts on multiple Redmine instances:\n\n    hkredmine use sleepanarchy\n\nAs a quick refresher, we'll see what Issues we are watching:\n\n    hkredmine watched\n\nNothing we feel like tackling at the moment... Let's checkout all available\nprojects:\n\n    hkredmine projects\n\nWe find a project we want to work on, let's check out the open issues in the\nproject's next version:\n\n    hkredmine nextversion acorn-accounting --sort priority:desc\n\nWe see an Issue that catches our eye, let's see it's details:\n\n    hkredmine issue 154\n\nLooks good, let's mark it as \"In Progress\", set the start date to today and\nstart tracking time towards the Issue:\n\n    hkredmine startwork 154\n\nAn emergency has come up in a project that is on a different Redmine instance.\nFirst, we'll stop tracking time for the current Issue and create a new time\nentry:\n\n    hkredmine stopwork --type=Development --comment=\"Started writing tests.\"\n\nWe'll switch to our account on the other Redmine instance, then create a new Issue:\n\n    hkredmine use acorn\n    hkredmine newissue --project=it-computers -t Support -i Immediate -e -s \"Emergency Request\"\n\nOur editor should open up to let us enter a detailed description for the Issue.\nAfter saving and exiting from our editor, the issue will be created. Let's\nstart work on it:\n\n    hkredmine startwork 280\n\nWhile working on the Issue, we notice something out of scope and quickly make a\nnew issue:\n\n    hkredmine newissue -p it-computers -t Bug -s \"Something is wrong with X!\"\n\nLet's watch it so we remember to come back to it:\n\n    hkredmine watch 281\n\nFinally, we're done with the emergency Issue.Let's stop work on it:\n\n    hkredmine stopwork --activity=Administration --comment=\"Help Y with X.\"\n\nLet's mark the Issue as Closed, set the Due Date to today and the Done Ratio to\n100%:\n\n    hkredmine close 280\n\nWe can jump back to our first Issue now:\n\n    hkredmine use sleepanarchy\n    hkredmine startwork 154\n\nAfter working a bit more, we go for a walk:\n\n    hkredmine pause\n\nOnce we get back, we start tracking time again:\n\n    hkredmine resume\n\nBut... we forgot what we were doing:\n\n    hkredmine status\n    hkredmine issue 154\n\nOK, we've done as much as we can, we need some feedback to continue:\n\n    hkredmine update 154 --status=\"Feedback\"\n\nFinally we'll submit a time entry and watch the Issue:\n\n    hkredmine stopwork --activity=Development comment=\"Fixed thing, waiting on confirmation.\"\n    hkredmine watch 154\n\n\nContribute\n-----------\n\nRequest features, report bugs and submit patches:\nhttp://bugs.sleepanarchy.com/projects/hkredmine\n\nA github mirror is available if you prefer pull requests:\nhttps://github.com/prikhi/hkredmine\n\nUse `cabal` to build the documentation:\n\n    cabal haddock\n\n\n[stack]: https://docs.haskellstack.org/en/stable/README/\n[vim-redminewiki]: https://github.com/s3rvac/vim-syntax-redminewiki/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprikhi%2Fhkredmine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprikhi%2Fhkredmine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprikhi%2Fhkredmine/lists"}