# denicemorones/jobsy architecture

> Architecture diagram of the GitHub repository denicemorones/jobsy, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/denicemorones/jobsy
- Repository: https://github.com/denicemorones/jobsy

## Overview

Jobsy is a planned Linux CLI for registering, running, monitoring, and stopping concurrent jobs. The README describes a central daemon and IPC, but the source files shown are empty package initializers, so this graph represents documented intent rather than verified runtime wiring. Persistence and final implementation choices remain undecided; remote access is a later, optional capability.

Main entry points: [`src/daemon`](https://github.com/denicemorones/jobsy/tree/main/src/daemon) (Central service), [`src/protocol`](https://github.com/denicemorones/jobsy/tree/main/src/protocol) (IPC protocol), [`src/client`](https://github.com/denicemorones/jobsy/tree/main/src/client) (Job CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["CLI client"]
  node_cli["Job CLI"]
  node_submit["Job registration"]
  node_monitor["Progress and results"]
  node_stop["Stop request"]
end

subgraph group_daemon["Job daemon"]
  node_daemon["Central service"]
  node_concurrency["Concurrency control"]
  node_execution["Process execution"]
  node_capture["Output capture"]
end

subgraph group_comm["Communication"]
  node_protocol["IPC protocol"]
end

node_user(("Operator"))
node_linux["Linux process and signal facilities"]
node_remote(("Authorized LAN/VPN client"))

node_user -->|"issues commands"| node_cli
node_cli -->|"registers jobs"| node_submit
node_submit -->|"sends requests"| node_protocol
node_monitor -->|"requests status"| node_protocol
node_stop -->|"sends stop"| node_protocol
node_protocol -->|"dispatches IPC"| node_daemon
node_daemon -->|"controls concurrency"| node_concurrency
node_daemon -->|"runs jobs"| node_execution
node_execution -->|"uses process primitives"| node_linux
node_daemon -->|"captures output"| node_capture
node_execution -->|"produces stdout/stderr"| node_capture
node_daemon -->|"uses signals"| node_linux
node_remote -.->|"may connect later"| node_protocol

click node_cli "https://github.com/denicemorones/jobsy/tree/main/src/client"
click node_submit "https://github.com/denicemorones/jobsy/tree/main/src/client"
click node_monitor "https://github.com/denicemorones/jobsy/tree/main/src/client"
click node_stop "https://github.com/denicemorones/jobsy/tree/main/src/client"
click node_protocol "https://github.com/denicemorones/jobsy/tree/main/src/protocol"
click node_daemon "https://github.com/denicemorones/jobsy/tree/main/src/daemon"
click node_concurrency "https://github.com/denicemorones/jobsy/tree/main/src/daemon"
click node_execution "https://github.com/denicemorones/jobsy/tree/main/src/daemon"
click node_capture "https://github.com/denicemorones/jobsy/tree/main/src/daemon"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_submit,node_monitor,node_stop,node_remote toneBlue
class node_daemon,node_concurrency,node_execution,node_capture toneAmber
class node_protocol toneMint
class node_user,node_linux toneIndigo
```

## Components

### CLI client

- [Job CLI](https://github.com/denicemorones/jobsy/tree/main/src/client): `src/client`
- [Job registration](https://github.com/denicemorones/jobsy/tree/main/src/client): `src/client`
- [Progress and results](https://github.com/denicemorones/jobsy/tree/main/src/client): `src/client`
- [Stop request](https://github.com/denicemorones/jobsy/tree/main/src/client): `src/client`

### Job daemon

- [Central service](https://github.com/denicemorones/jobsy/tree/main/src/daemon): `src/daemon`
- [Concurrency control](https://github.com/denicemorones/jobsy/tree/main/src/daemon): `src/daemon`
- [Process execution](https://github.com/denicemorones/jobsy/tree/main/src/daemon): `src/daemon`
- [Output capture](https://github.com/denicemorones/jobsy/tree/main/src/daemon): `src/daemon`

### Communication

- [IPC protocol](https://github.com/denicemorones/jobsy/tree/main/src/protocol): `src/protocol`

### Other components

- **Operator**
- **Linux process and signal facilities**
- **Authorized LAN/VPN client**

## Connections

- Operator → Job CLI: issues commands
- Job CLI → Job registration: registers jobs
- Job registration → IPC protocol: sends requests
- Progress and results → IPC protocol: requests status
- Stop request → IPC protocol: sends stop
- IPC protocol → Central service: dispatches IPC
- Central service → Concurrency control: controls concurrency
- Central service → Process execution: runs jobs
- Process execution → Linux process and signal facilities: uses process primitives
- Central service → Output capture: captures output
- Process execution → Output capture: produces stdout/stderr
- Central service → Linux process and signal facilities: uses signals
- Authorized LAN/VPN client → IPC protocol: may connect later
