pixel-openspace

Tes tâches cron, à leur bureau.

pixel-openspace montre tes tâches planifiées, ta CI et tes agents IA comme un bureau en pixel art. Ceux qui tournent s’assoient et tapent, les désœuvrés vont au café, et quand l’un plante, son PC se met à fumer et le chef vient le voir.

$
Une étoile sur GitHubM’offrir un caféMIT

Un composant shadcn/ui pour Next.js et React. Gratuit et open source, sous licence MIT.

Ciel
Essaie :

Lire la salle

Chaque tâche a un bureau et un état. Tu fixes l’état à partir de ce que tu suis déjà : un code de sortie, une file d’attente, une date de dernier passage. La salle fait le reste : un coup d’œil suffit pour voir ce qui tourne, ce qui coince et ce qui a planté.

working
Assis à son bureau, il tape. Du code défile sur son écran, son clavier et ses ventilateurs s’allument.
ok
À jour. Se lève de temps en temps pour un café, une partie d’arcade ou un mot à un collègue.
late
A manqué son passage. Somnole à son bureau en attendant de rattraper.
failed
Écran rouge, PC qui fume. Le chef vient le voir et reste à côté jusqu’à ce qu’il reparte.
off
Pas chargé. Une chaise vide et un post-it sur un écran noir.
never
Embauché, mais pas encore passé.
on-demand
Ne travaille que quand on le lui demande. Vit sa vie entre-temps.

L’installer en trois étapes

  1. 1

    Ajouter le composant

    Le CLI de shadcn copie les fichiers du composant dans ton dossier components, à toi de les lire et de les modifier. Les étiquettes de la salle utilisent Pixelify Sans : charge-la avec next/font dans une variable --font-pixel.

    $
  2. 2

    Lui donner tes tâches

    Expose l’état de tes tâches, relis-le toutes les quelques secondes et passe-le au composant. Quand un état change, la salle réagit : la tâche s’assoit pour travailler, ou se lève, s’étire et dit sa dernière ligne de journal dans une bulle.

    // app/api/jobs/route.ts
    export async function GET() {
      const jobs = await db.job.findMany()
      return Response.json(
        jobs.map((job) => ({
          id: job.id,
          name: job.name,
          emoji: job.emoji,
          status: job.running ? 'working' : job.lastExitCode ? 'failed' : 'ok',
          lastRun: job.lastRunAt,
          nextRun: job.nextRunAt,
          lastMessage: job.lastLogLine,
        })),
      )
    }
  3. 3

    Le laisser sur un écran

    Il est fait pour rester ouvert toute la journée sur un écran à côté, en plein écran. La salle tourne à 30 images par seconde et ne redessine que ce qui a bougé. Après vingt secondes de calme, tout se fige jusqu’à ce que quelqu’un se lève, et la nuit, chacun reste à son bureau.

Aussi dans la salle

Rien de tout ça n’est nécessaire pour surveiller tes tâches. C’est là parce qu’un bureau qu’on regarde tous les jours doit être un endroit agréable.

Cinq thèmes

Un open space geek aux tours RGB, un bureau d’entreprise de 1986 aux écrans cathodiques vert phosphore, une salle de sport où chaque tâche pédale sur son vélo, un bureau moderne et lumineux, chêne clair, bureaux assis-debout et table de ping-pong, ou une cuisine de restaurant où la tâche qui plante fait brûler sa poêle.

Deux bornes d’arcade

Snake des composants et Casse-puces, jouables toutes les deux. Les records sont affichés au mur.

Un écran mural

Jusqu’à quatre chiffres à toi : tâches du jour, erreurs, file d’attente, budget.

Le chef

Fait sa ronde quand il tourne, puis son rapport devant l’écran mural, et lit tes annonces.

Une fenêtre sur la météo

Soleil, pluie, neige ou orage, de jour comme de nuit, avec la température que tu lui donnes.

Visiteurs et livreurs

Augmente un compteur et quelqu’un entre : un visiteur salue le chef, un livreur dépose un colis.

Les saisons

Citrouilles et fantôme tout octobre, sapin et guirlandes tout décembre, œufs cachés et lapin qui bondit à Pâques.

Le chat de l’atelier

Fait la sieste sur le bureau resté vide.

La CI aussi

Un workflow GitHub Actions, un pipeline GitLab, un déploiement : il tape pendant qu’il tourne, et un build cassé fume comme n’importe quelle tâche en échec.

La frise de la journée

Sous la salle, un point par passage depuis minuit, rouge s’il a raté. Passe à chaque tâche ses passages.

Une roue dentée de réglages

Qui regarde la salle renomme l’enseigne, choisit la ville de la météo, le thème et la langue, et allume ou coupe le reste. Gardé dans son navigateur.

Alertes et son

Une notification du navigateur quand une tâche plante, des bips 8 bits aux départs et aux échecs. Les deux coupés tant que tu ne les allumes pas.