Platform · Company operations
Projects, people and work time in one self-hosted app: tasks, chat, attendance, leave, timesheets and payroll.
Introduction
Small teams usually run their day across a project tool, a chat app, an attendance sheet and a payroll spreadsheet that never quite agree. TeamOS brings them into one self-hosted app without making routine project work any heavier. It started from Kaneo, an open-source project manager, and extends it with a company layer — people and departments, clock in and out, leave, timesheets, payroll with overtime, expenses and an audit log — plus realtime chat, a privacy-respecting desktop activity agent and an AI workspace assistant.
Details
TeamOS is built on Kaneo, the open-source project manager by Andrej Acevski, used under the MIT licence. The company layer, chat, desktop agent and AI assistant were added on top.
The app a small company runs its projects, people and working day from, rebuilt here in code from its own screens. Pick a page, or click the sidebar.
Built-in presets give an assignee their own day and tasks, a team lead who is in and what is late, and an owner the same plus where the hours and salaries go. A tile opens what is behind its number in place.
Recreated from the TeamOS interface in its default dark theme. Labels, columns and statuses are the app’s own; the workspace, people, projects, tasks, messages, hours and money are samples, and the chat images are CC0 photographs.
Pieces of the workspace at full size, in the app’s own colours.
Board
Key, assignees, labels, priority, subtasks, checklist and due date, coloured by how close the date is.
Ask TeamOS
Claude reads the workspace and suggests a set of changes. Nothing happens until a person ticks the ones to keep and applies them, and applied changes can be undone.
Workflow
Grey waits, amber moves, violet is being checked, green is finished. Five priorities sit beside them.
Leave
Requests go to an approver. Every kind but unpaid counts against the yearly allowance.
Desktop app
In the desktop app the day runs at the foot of the sidebar: how long, since when, and how much is left.
Live
A running timer outranks the app in front. The desktop app reports only app names and website domains, and whether the person is active or idle.
Agent keys
A key lets Claude Code or any MCP app act as you, limited to the scope it was made with.
People directory, departments, clock in and out, leave requests, timesheets, payroll with overtime, expenses and an audit log.
Channels, direct messages and read receipts, plus a desktop agent that reports the app in use, a website’s domain and active or idle state — never keystrokes, screenshots or window titles.
An assistant that reads the workspace through 53 tools and proposes changes for a person to approve. It runs on Claude Code or any OpenAI-compatible provider.
The running parts
The hard parts
Every five seconds the agent reads two things: how long since the last input, and the name of the app in front — plus the website’s domain when that setting is on. No keystrokes, screenshots or window titles. Samples merge into spans of at most five minutes, wait on disk and upload in batches.
A job each minute closes a session after the configured idle or offline time and backdates the clock-out to the last real activity. Coming back within the window reopens the same session; a manual clock-out or approved leave stops it clocking anyone in.
Clocking out stops a running task timer. Overtime is the time present beyond the scheduled day, paid at an hourly rate worked out from the salary. Money is held in whole minor units, and an open session is never paid.
Each request gets a temporary key that is deleted afterwards: read-only while proposing, task scope when applying. Its tools call the same API as the person, so the role checks are the real ones, and payroll, audit and member management stay out of reach.
Kaneo’s package names and settings are kept as they are, and every addition lives in its own folder, so the fork stays readable against the project it came from.
Start here
Tell us what is slow, manual or missing. You will hear back within one working day — then get a written scope and a fixed quote, or an honest no.