Skip to content

Repository files navigation

Steel-eye

Steel-eye

The producer's eye.
A radar for your team's real work: branches, tasks and assets, living inside your own git repository.
No server. No accounts. No subscription.

License Platform Stack Status


What is it?

Steel-eye is a local-first desktop app for software production in small teams (3 to 15 people). It brings together in one place what today lives spread across five separate tools:

  • What each person is doing, straight from their git branch, without asking anyone for a status report.
  • What tasks exist and who owns them, in a kanban that travels inside the repo.
  • How healthy the project is: binary collisions, milestones, contributors.
  • What newly uploaded assets look like: real previews for images, audio and 3D models, not just icons.
  • A full git client in plain language, able to get anyone out of trouble.

All product state (tasks, boards, milestones, roster, claims) lives in an orphan branch (steel-eye/meta) inside your own repository: it syncs with the same push/pull you already use, works offline, and there is no third-party server or account to create. If you uninstall Steel-eye tomorrow, your data stays in your repo, as readable JSON.

It fits especially well in teams where technical and non-technical people work on the same repository, and in projects with heavy binaries (art, audio, models, design documents): games, apps, multimedia.

Screenshots

Today, the digest since your last visit: pending reviews, published work, moved tasks, upcoming milestones, blocked tasks and binary collisions, all at a glance. Today

Map, Timeline view: a vertical-lane commit graph across branches, with real commit messages and the ability to filter by person or branch. Map, Timeline

Tasks: a multi-board kanban with custom columns, drag and drop, archiving and agent-created cards, living entirely inside the repo. Tasks

Health: verifiable, score-free facts about the project: milestones, real collaborators, binary collisions, LFS status and branch overview. Health

Assets: a grid of working-tree binaries with real thumbnails, browsable without opening the originating engine or editor. Assets

Console: real git history, staged changes, branch comparison and the rescue recipe book, all in plain language. Console

Features

Today, the digest

On opening the app: what has shipped since your last visit, by author and branch. New or moved tasks, milestones within 14 days with real progress, your review queue (approve or request changes right there), blocked tasks and binary collisions.

Map, the branch radar

Three views: List (full history per branch with media previews for each commit), Graph (branches with real attribution to people, computed from commit authors) and Timeline (topological lanes with the full diff of each commit). Tested against synthetic repos with 15,000 commits.

Tasks, a kanban that travels in the repo

Multi-board with custom columns, drag and drop, per-item checklists, comments, functional blocking between tasks, review flow (pending, approved, changes requested), archiving, task-to-commit and task-to-milestone links. Roster built automatically from git authors. Field-level LWW merge: two people editing the same task offline never overwrite each other, and you will never see a git merge conflict in app data.

Health, the project's pulse

Binary collisions between branches (two people touching the same non-mergeable file), soft-claim on files ("I'm working on this", it warns but never blocks), milestones with a timeline and the commit that closes them, a Git LFS overview with one-click activation.

Assets, binaries made visible

A grid with real thumbnails: standard images and pro formats (PSD, TGA, DDS, EXR, Aseprite) decoded in Rust, audio waveforms, and real 3D thumbnails for glb/gltf/obj/stl/fbx models rendered offscreen. Lightbox with an interactive 3D viewer, visual image diff between commits (before/after slider), open any file with the system's default app, and a search bar with filters (type:, ext:, larger:, heavy).

Console, git in plain language

Stage/unstage per file and per hunk, branch comparison, a visual 3-way conflict resolver (per file or per block), a real integrated PTY terminal, and a rescue recipe book: 10 guided recipes ("I ended up in detached HEAD", "I want to move these changes to another branch"...) with guards that check they apply before touching anything. Your team can add its own recipes in .steel-eye/recipes/, shared through git, declarative, no arbitrary shell.

MCP server, your project readable by agents

A local, embedded MCP server (opt-in, 127.0.0.1, token-protected) exposing 16 tools to external AI agents: project status, tasks (create/edit/comment with the caller's real identity), milestones, claims, commits and diffs. Anything an agent writes is attributed as "via agent" in the UI. No bridge through the frontend: the agent talks to the same Rust domain the app uses.

And also

  • Bilingual es/en with hot switching (backend errors included).
  • Local notifications after auto-fetch: new work from others, reviews assigned to you, upcoming milestones, collisions.
  • Global search Ctrl+K: tasks, branches, commits, assets, recipes and quick project switching.
  • Startup doctor: sanity checks for git, identity, credentials, LFS and unusual repo states.
  • Zero telemetry. Nothing leaves your machine except your own git push.

How it works

Open a project. Click "Open project" and pick the root of any git repository (or a recent one from the sidebar / Ctrl+K). The startup doctor checks your environment the first time and only warns you if something is actually wrong. Steel-eye creates the steel-eye/meta branch on first use; the rest of the team gets it with a normal pull.

Work with tasks. In Tasks, create cards with each column's button and drag them across columns. Double click (or right click, view detail) opens the panel: assignee, reviewer, board, checklist, comments, blockers and linked commit. Changes save instantly locally and publish in batches: Ctrl+S, every 60 seconds, or on view change, so eventually it shares itself without you doing anything.

Follow the team. Today summarizes what shipped since your last visit. Map shows who is working on what branch (Graph), full history with per-commit previews (List) and per-commit detail (Timeline). The roster builds itself from git authors; in Health you can link emails to people and create milestones.

View and claim assets. In Assets, double click any file to open the lightbox (images, audio with waveform, browsable 3D models). Right click: open with the system's app, reveal in file explorer, or claim the file ("I'm on this") so everyone else sees it before stepping on your work.

Get out of a git mess. In Console, a banner for unusual repo states shows up only when the repo is mid-merge, detached HEAD or similar, and offers the exact recipe. The full recipe book is always available: each recipe explains the situation, checks it applies and runs the steps one by one. For everything else: stage per hunk, branch comparison, conflict resolver and an integrated terminal.

Connect an AI agent. Turn on the MCP server with the sidebar switch and copy the URL (it includes the token). Any MCP-compatible client can read project status and work with tasks; anything it writes is marked "via agent".

Change language. es/en selector at the bottom of the sidebar, switches instantly.

Installation

Requirements: Windows 10/11 with git on PATH. (WebView2 ships with Windows 11; on Windows 10 the installer resolves it.)

Download the installer from Releases. Since it is not code-signed yet, SmartScreen will show a warning: "More info, Run anyway".

macOS and Linux: the code is cross-platform (Tauri v2) but only tested on Windows for now. Building from source should work; there are no official builds.

Building from source

# Requirements: stable Rust, Node 18+, and Tauri v2 prerequisites
# (Windows: VS Build Tools with C++; Linux: libwebkit2gtk-4.1 etc.)
# https://v2.tauri.app/start/prerequisites/

git clone <this-repo>
cd Steel-eye
npm install
npm run tauri dev     # development
npm run tauri build   # production installer

Rust domain tests (176) run with cargo test --workspace.

Architecture (summary)

crates/            domain logic in pure Rust, no Tauri
├── eye-core       entities + field-level LWW merge (Field<T>)
├── eye-git        git2 reads + shell-out mutations
├── eye-meta       the steel-eye/meta orphan branch: JSON store + conflict-free sync
├── eye-recipes    declarative recipe book (TOML + guards + runner)
├── eye-previews   PSD/TGA/DDS/EXR/Aseprite decoding and audio waveforms
└── eye-mcp        local MCP server (axum, JSON-RPC 2.0)
src-tauri/         thin Tauri shell: 79 commands that only parse and delegate
src/               React 19 + TypeScript, Zustand, i18next, zero mock data

Design principles: local-first always, plain language across the whole UI (never raw git jargon), a single meaningful accent color, and the team's repo as the single source of truth.

License

PolyForm Noncommercial 1.0.0: you can use, copy, modify and share Steel-eye freely for any non-commercial purpose. Full text in LICENSE.

This means the code is source-available, not open source under the OSI definition: commercial use requires a separate license from the author. If you want to use Steel-eye commercially, open an issue and let's talk.

Contributing

Issues and PRs are welcome. By contributing you agree your contribution is distributed under the project's license. Docs and UI are in Spanish (with translation in src/i18n/en.json); code identifiers are in English.

About

Steel-eye. Local-first desktop app for software team production.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages