Skip to content
0xharkiratPublic

About

Run GitHub Actions locally on macOS through nektos/act, in GitHub's visual language.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

act_gui

A macOS desktop app that runs GitHub Actions workflows locally through nektos/act, rendered in GitHub's own visual language.

Status: engine complete, UI in progress. This repository currently contains the pure-Dart engine that drives act and assembles its output into a live run tree. There is no window yet; the three-pane run view lands in the next milestone.

Why

act is CLI-only. The only existing UIs are VS Code extensions, so a standalone desktop app is unoccupied ground. act also fixes several long-standing complaints about the github.com run view for free: no page loads to reach an error, logs that survive a restart, and a log viewer that does not fall over on large output.

How it works

The app never reimplements act. It runs act --json as a subprocess and decodes the JSON log stream, which already carries every primitive the run page renders: job identity with matrix, step identity with Pre/Main/Post stage, per-step status and duration, log lines, and parsed ::group:: and ::warning:: workflow commands.

The engine derives all structure from act's machine-readable identity fields, never from its human-readable log text, so it does not break when act changes its wording between releases.

Architecture

Two pure-Dart layers, with dependencies pointing only downward. A test enforces the boundary: nothing in these layers may import Flutter, and the domain layer may not touch dart:io.

  • lib/domain/ - models and transforms: log-record decoding, event classification, the run tree, the log buffer, workflow YAML parsing.
  • lib/service/ - external wrappers: the act subprocess, and the run archive that stores each run verbatim for faithful replay.
  • bin/engine_smoke.dart - a command-line harness that runs the engine end to end.

Requirements

  • macOS
  • act on PATH
  • Docker running, for workflows that use container jobs

Try the engine

dart run bin/engine_smoke.dart <path-to-a-repo-with-workflows> push

This runs the workflows in the given repository and prints the assembled tree of jobs, steps, statuses, durations, and annotations.

License

MIT. See LICENSE.

About

Run GitHub Actions locally on macOS through nektos/act, in GitHub's visual language.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors