Aryan Suri

Galactus

A problem that has yet to be universally solved is proper time management. Although there are myriad attempts, I will add my standard to the pile, which resolves the requirements for the goal condition to the point that I need. Please review these requirements here.

The problem statement: To track focused time spans where precise task(s) gets done, and to align those spans with broader personal goals.

My source code is generally available at github. It is a single go binary that anyone can run. All data is stored in a local sqlite3 file located at (~/.galactus/1.db). There is a config file (~/.galactus/config) moreso for future use.

The workflow functions as:
  1. Generate an open span. Span here refers to one row with an opened at time, and a closed at time, which will be null if the span is still open. There can only be one open span at a time. You are required to add a task, which is a singular directive for that time. There is no set time for a span (i.e no pomodoro timing), so you can enforce that yourself. You can also add any number of space separated labels which function as project labels, tags, priority, etc. These will be stored as a composite key with the span id for aggregation.

    galactus open -task "write galactus article" writing low
  2. Do work. There is no form of time control, so you enforce time blocks and focus details (like not wandering phsyically or on the web). For others this may seem opposite of a time management system, but I prefer this decoupled way as a form of discipline and ownership. Offboarding this critical skill to a software erodes your ability to focus over time. I require myself (and a physical timer I have on my desk) to care.

    galactus status
  3. Once you find a natural stopping point, close the span, with a span comment detailing your progress on the directive. (You should also close a span, when you are so unfocused that you need to wander/rest, and track a new span with wasted / rest labels).

    galactus close "wrote the article, need to do some polishing"
  4. Repeat. Tasks, and labels are hashed, so you can (and should) have multiple spans for any given task or set of labels. There are a few commands to visualise your history as a log or gantt chart.

    galactus history

    galactus gantt

And that is pretty much it. It serves my usecase, and I will continue to polish and add features, but it is complete to my first set of requirements. galactus close.

Examples

I have aliased galactus to gl for simplicity.

➜  gl open -task "write article on galactus release" galactus perweb
New span opened

span: 1f002a2df4909c6ffd28e9f8152bc6186b843b09b8d488ff89f2c4d9e21de6c1
opened: 2025-09-21 18:24:52 +0000 UTC
closed:
comment:

task: 0ffae7092109c3cbd340d53b4d7a82b4340ac6dfd41fbfe520502cead043ee72
task comment: write article on galactus release
labels: galactus, perweb
          
➜  gl status
Current span status

span: 1f002a2df4909c6ffd28e9f8152bc6186b843b09b8d488ff89f2c4d9e21de6c1
opened: 2025-09-21 18:24:52 +0000 UTC
closed:
comment:

task: 0ffae7092109c3cbd340d53b4d7a82b4340ac6dfd41fbfe520502cead043ee72
task comment: write article on galactus release
          
➜ gl close "finished v1 article, ready to publish, needs grammar check"
Span closed

span: 1f002a2df4909c6ffd28e9f8152bc6186b843b09b8d488ff89f2c4d9e21de6c1
opened: 2025-09-21 18:24:52 +0000 UTC
closed: 2025-09-21 18:31:53 +0000 UTC
comment: finished v1 article, ready to publish, needs grammar check

task: 0ffae7092109c3cbd340d53b4d7a82b4340ac6dfd41fbfe520502cead043ee72
task comment: write article on galactus release
          
➜ gl history
-

span: 57b73ce12fa68d7c5173a34a15a692f9db5355abc2e4cc24d57fab3285b2468d
opened: 2025-09-21 04:53:33 +0000 UTC
closed: 2025-09-21 04:54:19 +0000 UTC
comment: finished fix

task: 57c96c0965bdb901acb069e3e0a5bf09b288800f3a4a213e104b5b8a54818b5c
task comment: fix race condition in start func

-

span: 6690631ccf7feb68ae1d6e67b9c8ce372eeaac0df220660bc42e30f2f153b4f6
opened: 2025-09-21 05:34:11 +0000 UTC
closed: 2025-09-21 06:34:56 +0000 UTC
comment: started gantt, did a good amount

task: 9c904ea8d926ebeccb3461e78ab79446db4a05d882364777c1307698a9edbc5a
task comment: get gantt v1 working

-

span: 1f002a2df4909c6ffd28e9f8152bc6186b843b09b8d488ff89f2c4d9e21de6c1
opened: 2025-09-21 18:24:52 +0000 UTC
closed: 2025-09-21 18:31:53 +0000 UTC
comment: finished v1 article, ready to publish, needs grammar check

task: 0ffae7092109c3cbd340d53b4d7a82b4340ac6dfd41fbfe520502cead043ee72
task comment: write article on galactus release