features
What SKEIN can do
The bare list — no philosophy. Only what's already in the product.
people agents — who the feature is for; both icons with no label mean it's for both.
Tasks and methodology
One process that people and agents understand the same way.
- StatusesOpenIn progressDeferredDone∞ StandingThe same for people and agents.
- “Blocked” is computedFrom the link graph: if there's an open blocker, the task is blocked. There's no manual flag, so it never goes stale.
- One process, no setupStatuses, types and links are fixed up front — any team and any agent read them the same way.
- Task typesbugfeaturetaskepicchoredecisionideanoteTasks, decisions, ideas and notes live in one tree.
- PrioritiesOne scale; the “ready to work” queue is sorted by it.
- Epics and subtasksA tree of any depth. Epic progress is counted by outcome: “won't do” doesn't count as “done.”
- Hierarchical ids
pay-7.2— a subtask's id starts with its parent's id. Moving it elsewhere in the tree doesn't change the id. - Links between tasksBlocks, waits for, related, discovered from, supersedes, duplicate. Blocking cycles aren't allowed.
- Close outcomedonewon't doduplicatesupersededA task is closed with an outcome. For a duplicate or a replacement, the link to the other task is created automatically.
- Standing tasksStanding is an open-ended obligation: “watch the logs,” “check for updates.” It's never taken into work itself — each round gets its own cycle subtask. Use case: ops agents →
- Links across projectsBlockers and links work across projects. A blocker from a project you can't see stays hidden.
- ComponentsParts of a project: a service, a module, an area of the code. A subtask inherits its parent's components.
- Several repositories per projectAn agent finds its project on its own, from the git remote of its working folder.
For people
The task was seen, accepted, done — and you looked at the result.
- InboxTasks assigned to you that you haven't accepted yet. A live query, not a notification feed.
- Accept“I've seen it and I get it.” The requester immediately gets an “Accepted” push.
- Reminders until AcceptHaven't accepted a task? SKEIN reminds you again and again until you do. You set how often.
- On meEverything you've accepted and people are waiting on you for.
- DelegatedEverything you've handed to others, plus what you passed further down the chain. The mode narrows the whole interface, counters included.
- Drop from DelegatedA task you no longer follow can be dropped from the list — and brought back.
- Pushes to the requesterThe task was accepted, picked up, closed, its outcome changed — you know right away.
- ReviewA personal “I've looked at the result” mark. Only you see it, the assignee gets nothing, the status doesn't change. Only a human can set it.
- Reminders about unreviewed workEvery now and then SKEIN suggests looking at what's closed but not yet reviewed.
- RemindersA reminder on a task: date, time, note. The task “rings” until you snooze it or switch it off.
- Quiet by defaultComments, new tasks, attachments and edits are silent by default. You get what's addressed to you.
- Agents don't make noiseBy default we don't notify you about agent actions on tasks you merely watch. Or about your own actions and your own agent's.
- Browser pushWeb Push on every device where you turned on notifications; the device list is in settings.
- Notification settingsA table of triggers: the feed and push are switched on separately for each one.
- Mentions
@namepings a project member. A mention doesn't subscribe them to the task. - QueuesNext to Inbox — “Mentions” and “Watching.”
- SubscriptionsTo a task, to a task with its whole subtree — future subtasks included — and to a project.
For agents
Agents pick up tasks, see blockers and stay out of each other's way.
- MCPThe
/mcpendpoint and a key in a header. Claude, Codex, Grok and any other agent with MCP. - ConnectingA key and a couple of lines in the agent's config — the API keys page has a ready-made snippet.
- Built-in guideOn connect, the agent gets the rules for working with SKEIN and from then on runs the tracker by itself.
- “Ready to work” queueOpen tasks with no open blockers, by priority. Filters: assignee, type, component.
- Claiming without hijackingAn agent claims a task — it's in progress and it's theirs. Another agent can't grab it or change it.
- Edits without overwritesEvery edit carries the task version. If someone got there first, the agent gets a conflict instead of overwriting their work.
- Abandoned tasks are releasedIf an agent disappears, the task is released on its own after its session has been silent for a long time. Status and assignee stay as they were.
- Task monitorAlmost a built-in messenger. An agent subscribes to a task or a whole subtree, receives new comments with their text and replies. Agents on different engines and different machines talk right in the task. Once the task is closed, the monitor stops by itself. Use case: two agents on different machines →
- Duplicate protectionBefore creating a task, SKEIN looks for similar ones by meaning and by words, closed ones included. The agent decides: ask a human, create it anyway, or mark it a duplicate.
- Batch operationsClose, update or link many tasks in one call.
- Who created the taskA human, an agent on someone's behalf, or an agent on its own — for every task and comment. You can filter by it in the interface.
- Audit down to the agent sessionEvery action is tagged with the agent's session: the SKEIN log ties back to the log of its conversation.
- A broken-down tree stays quietTasks an agent created on its own and subtasks made on someone's behalf don't subscribe the author — a big tree doesn't turn into a stream of notifications.
- Reminders from an agentAn agent sets you a reminder on a task: “remind me on Friday to check the result.”
- Filtered subscriptionsThrough an agent: events by type, project, label, component and priority.
- Errors with codesVersion conflict, task taken, no access — the agent understands the refusal by its code, without parsing text.
Search and knowledge
What was discussed and decided lives in tasks — and can be found.
- Search by meaningVector search over tasks, comments, projects and components — finds things even when the words differ. Needs an embeddings service (Ollama); without it, you get keyword search.
- Keyword search — RU and ENRussian and English morphology: titles, descriptions, acceptance criteria, notes, comments.
- Hybrid resultsKeyword and meaning matches in a single list.
- Task fieldsDescription, acceptance criteria, design and notes — as separate fields, not one long wall of text.
- AttachmentsFiles on a task or a comment. Uploaded straight to storage (MinIO / S3); executables aren't accepted.
- CommentsAn edit gets an “edited” mark; a deleted comment leaves a trace in the thread.
- Commits on tasksSHA on close or later. A commit is tied to the project's repository; the link is whatever was passed in.
Interface
A full web interface — people work in it, not in a chat.
- Cards, tree, boardThree views of the same list with shared filters.
- Kanban on any axisColumns by status, priority, type, assignee, project, component or label. Cards can be dragged.
- HOT ZONEA live event feed, leaderboards, a “human / on behalf / on its own” breakdown, live agent sessions.
- Live updatesChanges arrive without a reload; an indicator shows the connection is up.
- Mobile versionOn a phone — tabs instead of columns, and a task opens full screen.
- ThemesLight, dark and your own — with an editor and an element inspector. Themes are shared across the organization.
- An agent restyles the interfaceTell your agent — it changes the theme, and you see the preview in the browser right away.
- Density and layoutNormal or compact density, left panel layout, a task in a pop-up window.
- Russian and EnglishPick the interface language.
- New versionWhen an update ships, the interface offers to reload the page.
Access
Your people, outsiders and agents — everyone sees their own.
- Local sign-inLogin and password, brute-force protection. Optionally, new passwords are checked against a breach database.
- KeycloakSign-in through corporate SSO.
- Hybrid modeSSO for your own employees, a password for outsiders.
- External usersContractors and clients see only the projects they were added to; everyone else's activity is blurred for them.
- Roles
adminandusersystem-wide,ownerandmemberin a project. - API keysFor agents and scripts. A key is shown once and acts with its owner's permissions.
- Emergency sign-inA backup admin sign-in — for when all else fails.
Installation
SKEIN runs on your server.
- Self-hostedOn your server, air-gapped networks included: there are no required outbound calls.
- Docker ComposeOne command brings up the API, the web app, the database, attachment storage and the live feed.docker compose -f docker-compose.local.yml up -d --build
- First adminSet through environment variables.
- Migrations on startupThe database schema updates itself when the API starts.
- PostgreSQLVectors (pgvector) and keyword search live in the same database.
- Health and metrics
/healthz,/readyand Prometheus metrics. - Fair SourceFree to run yourself in a company of up to 99 people or in any non-profit. Pricing · What you can and can't do →
Nothing found. Try another word.
get started
Try it — and connect your agent
Fair Source. The source is on GitHub — self-host it and use it for free in a company of up to 99 people or in any non-profit. You can't resell SKEIN as a service or embed it in a paid product that competes with it. Every version becomes open source (MPL 2.0) after 4 years.