HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
nektos
act
Go2019–2026
nektos / act

act

Run your GitHub Actions locally 🚀

95Distinct people
111Mentions
3Explicit recommenders
72.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Run your GitHub Actions locally 🚀

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

You can run your own github actions compatible-ish server. https://github.com/nektos/act Personally my favorite is probably drone-ci. I'd suggest not buying in too hard on any…

traverseda used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year111 dated mentions

Observed mentions: 2019-01-15 16:26:09 UTC to 2026-08-17 14:54:15 UTC.

05101520252019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 4 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 18 mentions; 2 submissions, 16 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 17 mentions; 1 submissions, 16 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 23 mentions; 0 submissions, 23 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 24 mentions; 3 submissions, 21 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 16 mentions; 1 submissions, 15 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC440
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC321
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC18216
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC17116
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC23023
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC606
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC24321
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC16115

What Hacker News says

18 sources
Here's our setup, which is the result of several iterations and ergonomics refinements. Note: our stack is 90% python, with TS for frontend. Also 95% devs use mac (there's one data scientist on windows, he uses WSL). We install enough utilities with `brew` to get pyenv working, use that to build all python versions. Then iirc `brew install pipx`, maybe it's `pip3 install --user pipx`. Anyway, that's the only python library binary installed outside a venv. Pipx installs isort, black, dvc, and pre-commit. Every repo has a Makefile. This drives all the common operations. Pyproject.toml (/eslint.json?) set the config for isort and black (or eslint). `make format` runs isort and black on python, eslint on js. `make lint` just verifies. Pre-commit only runs the lint, it doesn't format. It also runs some scripts to ensure you aren't accidentally
Read the rest
committing large files. Pre-commit also runs several DVC actions (the default dvc hooks) on commit, push, and checkout. These run in a venv managed by pre-commit. We just pin the version. Github actions has a dedicated lint.yaml which runs a python linter action. We use the black version here to define which black pipx installs. We use `act` if we wanna see how an action runs without sending a commit just to trigger jobs. As an aside, I'm still fiddling with the dvc `pre-commit` post-checkout hooks. They don't always pull the files when they ought to. Most of the actual unit/integration tests run in containers, but they can run in a venv with the same logic, thanks to makefile. We use a dvc action to sync files in CI. So yeah there's technically 2 copies of black and dvc, but we just use pinning. In practice, we've only had one issue with discrepancies in behavior locally vs CI, which was local black not catching a rule to avoid ''' for docstrings; using """ fixed it. On the whole, pre-commit saves against a lot of annoying goofs, but CI system is law, so we largely harmonize against that. IMHO, this is the least egregious "double accounting" we have in local vs staging ci vs production ci (I lost that battle, manager would rather keep staing.yaml and production.yaml, rather than parameterize. Shrug.gif). Other knowledge nuggets: - pre-commit manages its own dependencies. This leads to surprising behavior if you aren't expecting it. Eg you need a special line to specify dvc[s3]. - black has yet to release a non-beta semver, which messes with solvers. This is super annoying. They might as well use 0ver if they don't want to commit to stability. Don't expect any kind of stability of formatting between versions. Hope they settle down soon. - git-lfs is a nightmare. Two projects at $lastco used it. It's more trouble than it's worth. Just use DVC for yucky files. I have no affiliation with dvc, other than a few bug reports. - makefiles are great and IMHO underrated. But they have their limits. More complex logic should be broken out into scripts. - python dependency management is still a kafkaesque nightmare. I say this with over a decade of python experience and it's my favorite language despite this. - Suggestions welcome! Technologies referenced: https://dvc.org/ https://github.com/iterative/setup-dvc https://github.com/marketplace/actions/python-linter https://github.com/nektos/act
In Pre-commit: framework for managing/maintaining multi-language pre-commit hooks
kortex·Nov 19, 2021Recommendation phrase
If you are using actions, and aren't doing this already, I highly recommend two things: - Have a sandbox repo or two just for trying things out and playing around - Use Act to test your workflows locally. It doesn't support all the GH Actions functionality just yet, but it's got all the necessities and most niceties, and saves you having to constantly commit and push just to try things. https://github.com/nektos/act
In Advanced workflow automation features with GitHub Actions
Yeah, you're right, there is a tool called act[1] that lets users test the GitHub Actions CI runs toward their local machine. The implementation looks very similar to GitHub Actions official runner, e.g use the identical provisioning scripts[2]. It is a very nice tool but serves a different purpose than us. Regarding general testability with GitHub Actions, I'd recommend checking out the tmate action[3], which lets you debug your CI run with SSH. [1] https://github.com/nektos/act [2] https://github.com/actions/virtual-environments [3] https://github.com/mxschmitt/action-tmate
In We want to fix GitHub Actions
> Do you reckon this accessibility is a combination of Yes, exactly. All of our build pipelines for a repository are included in the .github folder in the root of the repo. It makes it easier for team members to feel comfortable making changes and submitting a PR for them. You can setup an ACT container so you can test GitHub Action changes locally before pushing them too (see https://github.com/nektos/act ) > Out of curiosity, how reliable do you find the environment cleanup is? So far, environment cleanup has been reliable, but I have noticed where it failed to cleanup some provisioned resources once in a blue moon. I blame this more on our code than GitHub Actions. I periodically review our sandbox environments to ensure we didn't miss deleting anything.
In GitHub Actions limitations and gotchas
When you edit an action on GitHub, the web editor has support for workflow syntax and will determine if your action is viable before committing. This is even easier if you use the new codespace shortcut (press .) on GitHub. You might also want to take a look at act which allows you to run github actions locally, this is typically how I do actions development: https://github.com/nektos/act I'm curious what prevents you from writing your own actions in typescript now?
In Automating a Software Company with GitHub Actions
Anyone got any good tips on how to run github action workflows locally or self-hosted? Incidents like this make me want to self-host our CI/CD. I'm confused as to the difference between https://github.com/nektos/act and https://github.com/actions/runner Is it not possible to use 'runner' to run github actions locally? The docs for this seem like they are extremely sparse - probably because this competes with the paid option?
In Incident with GitHub Actions, API Requests, Git Operations, Issues and more

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.