{"id":34205013,"url":"https://github.com/jjzcru/elk","last_synced_at":"2026-03-12T01:35:17.104Z","repository":{"id":57521691,"uuid":"238799564","full_name":"jjzcru/elk","owner":"jjzcru","description":"🦌 Minimalist yaml based task runner","archived":false,"fork":false,"pushed_at":"2020-06-18T06:11:20.000Z","size":12188,"stargazers_count":44,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-15T16:20:51.301Z","etag":null,"topics":["cli","go","golang","task-runner","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jjzcru.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-02-06T22:40:27.000Z","updated_at":"2025-07-25T07:33:09.000Z","dependencies_parsed_at":"2022-09-26T18:01:16.354Z","dependency_job_id":null,"html_url":"https://github.com/jjzcru/elk","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/jjzcru/elk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjzcru%2Felk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjzcru%2Felk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjzcru%2Felk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjzcru%2Felk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjzcru","download_url":"https://codeload.github.com/jjzcru/elk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjzcru%2Felk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30412083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"ssl_error","status_checked_at":"2026-03-12T00:40:08.439Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["cli","go","golang","task-runner","yaml"],"created_at":"2025-12-15T19:35:41.152Z","updated_at":"2026-03-12T01:35:17.098Z","avatar_url":"https://github.com/jjzcru.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Travis CI](https://travis-ci.com/jjzcru/elk.svg?branch=master)\n![Coverage Status](https://coveralls.io/repos/github/jjzcru/elk/badge.svg?branch=master)\n![Release](https://github.com/jjzcru/elk/workflows/Release/badge.svg?branch=master)\n\nElk\n==========\n\nElk 🦌 is a minimalist, [YAML][yaml] based task runner that aims to help developers to focus on building cool stuff,\ninstead of remembering to perform tedious tasks.\n\nSince it's written in [Go][go], most of the commands runs across multiple operating systems (`Linux`, `macOS`, \n`Windows`) and use the same syntax between them thanks to this [library][sh].\n\n*Why should i use this?* You can watch some [Use Cases](#use-cases)\n\n## Table of contents\n  * [Getting Started](#getting-started)\n    + [Installation](#installation)\n  * [Syntax](#syntax)\n  * [Use Cases](#use-cases)\n  * [Commands](#commands)\n  * [Roadmap](#roadmap)\n  * [Changelog][changelog]\n  * [Releases][releases]\n\n## Getting Started\nThe main use case for `elk` is that you are able to run any command/s in a declarative way in any path. \n\nBy default the global file that is going to be used is `~/ox.yml`. You can change this path if you wish to use another \nfile by setting the `env` variable `ELK_FILE`.\n\n`elk` will first search if there is a `ox.yml` file in the current directory and use that first, if the file is not \nfound it will use the `global` file. \n\nThis enables the user to have multiples `ox.yml` one per project while also having one for the system itself.\n\n### Installation\n\n#### Bash\nInstallation with `cURL` and `sh` thanks to the project [Go Binaries][gobinaries].\n```\ncurl -sf https://gobinaries.com/jjzcru/elk | sh\n```\n\n#### Download \n1. Grab the latest binary of your platform from the [Releases](https://github.com/jjzcru/elk/releases) page.\n2. If you are running on `macOS` or `Linux`, run `chmod +x elk` to give `executable` permissions to the binary. If you\nare on `windows` you can ignore this step.\n3. Add the binary to `$PATH`.\n4. Run `elk version` to make sure that the binary is installed.\n\n## Syntax\nThe syntax consists on two main section one is `global` which sets defaults for all the tasks and the other is `tasks` \nwhich defines the behavior for each of the task.\n\nTo learn about the properties go to [Syntax Documentation][syntax].\n\n### Example\n\n```yml\nversion: ‘1’\nenv_file: /tmp/test.env\nenv:\n  FOO: BAR\ntasks:\n  hello:\n    description: “Print Hello World”\n    env:\n      FOO: Hello\n      BAR: World\n    cmds:\n      - echo $FOO $BAR\n```\n\n## Use Cases\nThe goal of `elk` is to run `tasks` in a declarative way, anything that you could run on your terminal, you can run \nbehind `elk`. If you handle multiple projects, languages, task or you want to automate your workflow you can use `elk`\nto achieve that, just declare you workflow and `elk` will take care of the rest.\n\nTo learn about some use cases for `elk` go to [Use Cases][use-cases] to figure out 😉.\n\n## Commands\n\n| Command           | Description                                            | Syntax                               |\n| -------           | ------                                                 | -------                              |\n| [cron][cron]      | Run one or more task as a `cron job` ⏱                | `elk cron [crontab] [tasks] [flags]` |\n| [exec][exec]      | Execute ad-hoc commands ⚡                              | `elk exec [commands] [flags]`        |\n| [init][init]      | This command creates a dummy file in current directory | `elk init [flags]`                   |\n| [logs][logs]      | Attach logs from a task to the terminal 📝             | `elk logs [task] [flags]`            |\n| [ls][ls]          | List tasks                                             | `elk ls [flags]`                     |\n| [run][run]        | Run one or more tasks 🤖                               | `elk run [tasks] [flags]`            |\n| [version][version]| Display version number                                 | `elk version [flags]`                |\n| [server][server]  | Start a graphql server ⚛️                               | `elk server [flags]`                 |\n\n\n## Roadmap\nEach release has a particular idea in mind and the tasks inside that release are focusing on that main idea.\n\nTo learn more about the progress and what is being planned go to [Projects][projects].\n\n[go]: https://golang.org/\n[yaml]: https://yaml.org/\n[sh]: https://github.com/mvdan/sh\n[gobinaries]: https://github.com/tj/gobinaries\n\n[releases]: https://github.com/jjzcru/elk/releases\n[changelog]: https://github.com/jjzcru/elk/blob/master/CHANGELOG.md\n[projects]: https://github.com/jjzcru/elk/projects\n\n[syntax]: docs/syntax/syntax.md\n[use-cases]: docs/syntax/use-cases.md\n\n[cron]: docs/commands/cron.md\n[init]: docs/commands/init.md\n[logs]: docs/commands/logs.md\n[ls]: docs/commands/ls.md\n[run]: docs/commands/run.md\n[version]: docs/commands/version.md\n[exec]: docs/commands/exec.md\n[server]: docs/commands/server.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjzcru%2Felk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjzcru%2Felk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjzcru%2Felk/lists"}