@tomkapa/tayto 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -220
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,235 +8,121 @@
|
|
|
8
8
|
|
|
9
9
|
**Stop losing tasks between AI sessions. Stop drowning in Jira fields you don't need.**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
A local-first task manager built for solo developers who work with AI coding agents.
|
|
12
|
+
CLI for agents. TUI for humans. One SQLite database. Zero configuration.
|
|
12
13
|
|
|
13
|
-
[
|
|
14
|
+
[Install](#install) • [Workflow](#workflow) • [Agent Integration](#works-with-every-coding-agent) • [Claude Code Skills](#claude-code-skills)
|
|
14
15
|
|
|
15
16
|
</div>
|
|
16
17
|
|
|
17
18
|
---
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
+
## Install
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g @tomkapa/tayto
|
|
24
|
+
```
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
**Requires:** Node.js >= 25
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
- **AI generates work faster than you can track it.** Your agent builds five features in an afternoon. Each one leaves behind edge cases, missing tests, and shortcuts. That debt is invisible until it bites you.
|
|
27
|
-
- **Priority fields are a lie.** When you're the only one executing, all that matters is order: what's first, what's next. Row 1 in the task list is what you do now. That's it.
|
|
28
|
-
- **Your AI agent can't use Jira.** It needs a CLI that speaks JSON. Your existing tools weren't built for this.
|
|
28
|
+
---
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
## Demo
|
|
31
|
+
|
|
32
|
+
<video src="https://github.com/user-attachments/assets/bfd9e515-4ca6-4bd8-9bc3-d1b94eebf869" controls width="100%"></video>
|
|
31
33
|
|
|
32
34
|
---
|
|
33
35
|
|
|
34
36
|
## Workflow
|
|
35
37
|
|
|
36
|
-
Tayto follows a lean, agile-inspired loop designed for how solo devs actually work:
|
|
37
|
-
|
|
38
38
|

|
|
39
39
|
|
|
40
|
-
**1. Capture** —
|
|
40
|
+
**1. Capture** — AI generates tasks from feature plans, records tech debt, logs bugs.
|
|
41
41
|
|
|
42
|
-
**2. Prioritize** — You
|
|
42
|
+
**2. Prioritize** — You drag tasks into execution order. No story points. Just: what's first?
|
|
43
43
|
|
|
44
|
-
**3. Enrich** — AI
|
|
44
|
+
**3. Enrich** — AI researches the codebase and writes implementation-ready technical notes.
|
|
45
45
|
|
|
46
|
-
**4. Review** — You read the plan. Approve
|
|
46
|
+
**4. Review** — You read the plan. Approve, adjust, or send it back.
|
|
47
47
|
|
|
48
|
-
**5. Execute** — AI implements the
|
|
49
|
-
|
|
50
|
-
> Don't plan too far ahead. Keep tasks in the backlog. If something becomes urgent, re-rank it. Enrich only what's next. Ship what's ready. Simple.
|
|
48
|
+
**5. Execute** — AI implements the top `todo` task. You review the code. Cycle repeats.
|
|
51
49
|
|
|
52
50
|
---
|
|
53
51
|
|
|
54
|
-
##
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
# Install globally from npm
|
|
58
|
-
npm install -g @tomkapa/tayto
|
|
59
|
-
|
|
60
|
-
# Create a project (auto-links to current git repo)
|
|
61
|
-
tayto project create -n "my-app" --default
|
|
62
|
-
|
|
63
|
-
# Capture some tasks
|
|
64
|
-
tayto task create -n "Fix auth token refresh" -t bug
|
|
65
|
-
tayto task create -n "Add user dashboard" -t story
|
|
66
|
-
tayto task create -n "Refactor DB connection pooling" -t tech-debt
|
|
67
|
-
|
|
68
|
-
# Re-rank: put the bug at the top
|
|
69
|
-
tayto task rank <bug-id> --top
|
|
70
|
-
|
|
71
|
-
# Launch the TUI to review your backlog
|
|
72
|
-
tayto
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
52
|
+
## Works With Every Coding Agent
|
|
76
53
|
|
|
77
|
-
|
|
54
|
+
Tayto's CLI outputs structured JSON to stdout — any agent with shell access can manage your tasks.
|
|
78
55
|
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
Or build from source:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
git clone https://github.com/tomkapa/tayto && cd tayto
|
|
87
|
-
npm install && npm run build
|
|
88
|
-
npm link
|
|
56
|
+
```jsonc
|
|
57
|
+
// Every command returns a consistent envelope
|
|
58
|
+
{ "ok": true, "data": { ... } }
|
|
89
59
|
```
|
|
90
60
|
|
|
91
|
-
|
|
61
|
+
<table>
|
|
62
|
+
<tr>
|
|
63
|
+
<td align="center" width="150">
|
|
64
|
+
<img src="https://cdn.simpleicons.org/anthropic/D97757" width="40" height="40" alt="Claude Code"><br>
|
|
65
|
+
<b>Claude Code</b><br>
|
|
66
|
+
<sub>First-class skills</sub>
|
|
67
|
+
</td>
|
|
68
|
+
<td align="center" width="150">
|
|
69
|
+
<img src="https://cdn.simpleicons.org/cursor/000000" width="40" height="40" alt="Cursor"><br>
|
|
70
|
+
<b>Cursor</b><br>
|
|
71
|
+
<sub>Agent mode / terminal</sub>
|
|
72
|
+
</td>
|
|
73
|
+
<td align="center" width="150">
|
|
74
|
+
<img src="https://cdn.simpleicons.org/windsurf/0066FF" width="40" height="40" alt="Windsurf"><br>
|
|
75
|
+
<b>Windsurf</b><br>
|
|
76
|
+
<sub>Cascade / terminal</sub>
|
|
77
|
+
</td>
|
|
78
|
+
<td align="center" width="150">
|
|
79
|
+
<img src="https://cdn.simpleicons.org/github/181717" width="40" height="40" alt="GitHub Copilot"><br>
|
|
80
|
+
<b>GitHub Copilot</b><br>
|
|
81
|
+
<sub>Agent mode / terminal</sub>
|
|
82
|
+
</td>
|
|
83
|
+
<td align="center" width="150">
|
|
84
|
+
<img src="https://cdn.simpleicons.org/cline/5A9" width="40" height="40" alt="Cline"><br>
|
|
85
|
+
<b>Cline</b><br>
|
|
86
|
+
<sub>VS Code agent</sub>
|
|
87
|
+
</td>
|
|
88
|
+
</tr>
|
|
89
|
+
</table>
|
|
90
|
+
|
|
91
|
+
No plugins. No API keys. Just install Tayto and your agent can `tayto task list`, `tayto task create`, and `tayto task update` out of the box.
|
|
92
92
|
|
|
93
93
|
---
|
|
94
94
|
|
|
95
|
-
##
|
|
95
|
+
## Claude Code Skills
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
Tayto ships with [Claude Code skills](https://docs.anthropic.com/en/docs/claude-code/skills) for the full AI-assisted workflow — no prompt engineering required.
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
### `/tayto`
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
// Success
|
|
103
|
-
{ "ok": true, "data": { ... } }
|
|
104
|
-
|
|
105
|
-
// Error
|
|
106
|
-
{ "ok": false, "error": { "code": "NOT_FOUND", "message": "..." } }
|
|
107
|
-
```
|
|
101
|
+
Manage projects and tasks directly from conversation. Create tasks, search the backlog, re-rank priorities, manage dependencies — all without leaving Claude Code.
|
|
108
102
|
|
|
109
|
-
|
|
103
|
+
### `/enrich-task`
|
|
110
104
|
|
|
111
|
-
|
|
105
|
+
Picks the next backlog task, researches the codebase for relevant patterns and architecture, then writes self-contained technical notes with implementation steps, acceptance criteria, and package recommendations. Splits out future enhancements as tech-debt tasks automatically.
|
|
112
106
|
|
|
113
|
-
|
|
107
|
+
### `/implement-task`
|
|
114
108
|
|
|
115
|
-
|
|
116
|
-
- Vim-style navigation (`j`/`k`)
|
|
117
|
-
- Inline filtering by status, type, and priority
|
|
118
|
-
- Full-text search across all task fields
|
|
119
|
-
- Task creation, editing, and status management without leaving the terminal
|
|
109
|
+
Picks the highest-priority `todo` task, reads its technical notes, checks dependencies, then implements the feature step by step. Verifies the implementation against acceptance criteria before marking done.
|
|
120
110
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
## CLI Reference
|
|
111
|
+
### Adding skills to your project
|
|
124
112
|
|
|
125
|
-
|
|
113
|
+
Install from the community registry:
|
|
126
114
|
|
|
127
115
|
```bash
|
|
128
|
-
|
|
129
|
-
tayto project list
|
|
130
|
-
tayto project update <id> -n "new-name" --default
|
|
131
|
-
tayto project delete <id>
|
|
132
|
-
tayto project link <id> --remote <git-remote-url>
|
|
133
|
-
tayto project unlink <id>
|
|
116
|
+
npx skills add tomkapa/tayto
|
|
134
117
|
```
|
|
135
118
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
### Task Management
|
|
119
|
+
Or from the Claude Code marketplace:
|
|
139
120
|
|
|
140
121
|
```bash
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-n "Fix login bug" \
|
|
144
|
-
-t bug \
|
|
145
|
-
-s todo \
|
|
146
|
-
-p "my-app" \
|
|
147
|
-
-d "Login fails on mobile" \
|
|
148
|
-
--technical-notes "Check JWT expiry logic" \
|
|
149
|
-
--additional-requirements "Must work on iOS Safari"
|
|
150
|
-
|
|
151
|
-
# List and search
|
|
152
|
-
tayto task list
|
|
153
|
-
tayto task list --status in-progress --type bug
|
|
154
|
-
tayto task search "login"
|
|
155
|
-
|
|
156
|
-
# Update
|
|
157
|
-
tayto task update <id> -s in-progress
|
|
158
|
-
tayto task update <id> --append-notes "Root cause: token not refreshed"
|
|
159
|
-
tayto task update <id> --append-requirements "Also fix on Android"
|
|
160
|
-
|
|
161
|
-
# Re-rank (execution order)
|
|
162
|
-
tayto task rank <id> --top
|
|
163
|
-
tayto task rank <id> --bottom
|
|
164
|
-
tayto task rank <id> --before <other-id>
|
|
165
|
-
tayto task rank <id> --after <other-id>
|
|
166
|
-
tayto task rank <id> --position 3
|
|
167
|
-
|
|
168
|
-
# Break down into subtasks
|
|
169
|
-
tayto task breakdown <parent-id> -f subtasks.json
|
|
170
|
-
|
|
171
|
-
# Delete
|
|
172
|
-
tayto task delete <id>
|
|
173
|
-
|
|
174
|
-
# Export / Import
|
|
175
|
-
tayto task export -o backup.json
|
|
176
|
-
tayto task import -f backup.json
|
|
122
|
+
/plugin marketplace add tomkapa/tayto
|
|
123
|
+
/plugin install tayto
|
|
177
124
|
```
|
|
178
125
|
|
|
179
|
-
### Dependency Management
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
tayto dep add <task-id> <depends-on-id>
|
|
183
|
-
tayto dep add <task-id> <depends-on-id> -t blocked-by
|
|
184
|
-
tayto dep remove <task-id> <depends-on-id>
|
|
185
|
-
tayto dep list <task-id>
|
|
186
|
-
tayto dep graph <task-id>
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
Dependency types: `blocks`, `blocked-by`, `relates-to`, `duplicates`
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## TUI Reference
|
|
194
|
-
|
|
195
|
-
Launch with `tayto` or `tayto tui`.
|
|
196
|
-
|
|
197
|
-
| Key | Action |
|
|
198
|
-
|---|---|
|
|
199
|
-
| `j` / `k` / arrows | Navigate |
|
|
200
|
-
| `Enter` | Open task detail |
|
|
201
|
-
| `c` | Create task |
|
|
202
|
-
| `e` | Edit task |
|
|
203
|
-
| `d` | Delete task |
|
|
204
|
-
| `s` | Cycle status |
|
|
205
|
-
| `/` | Search |
|
|
206
|
-
| `f` | Filter by status |
|
|
207
|
-
| `t` | Filter by type |
|
|
208
|
-
| `0` | Clear filters |
|
|
209
|
-
| `p` | Switch project |
|
|
210
|
-
| `?` | Help |
|
|
211
|
-
| `q` | Quit |
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## Data Model
|
|
216
|
-
|
|
217
|
-
### Task Types
|
|
218
|
-
|
|
219
|
-
| Type | Use for |
|
|
220
|
-
|---|---|
|
|
221
|
-
| `story` | Features and user stories |
|
|
222
|
-
| `tech-debt` | Refactoring, cleanup, missing tests |
|
|
223
|
-
| `bug` | Defects and issues |
|
|
224
|
-
|
|
225
|
-
### Statuses
|
|
226
|
-
|
|
227
|
-
`backlog` → `todo` → `in-progress` → `review` → `done` (or `cancelled`)
|
|
228
|
-
|
|
229
|
-
### Task Fields
|
|
230
|
-
|
|
231
|
-
Each task carries rich context for AI consumption:
|
|
232
|
-
|
|
233
|
-
- **name** — short summary
|
|
234
|
-
- **description** — user-facing details
|
|
235
|
-
- **technical_notes** — implementation guidance (appendable)
|
|
236
|
-
- **additional_requirements** — constraints and edge cases (appendable)
|
|
237
|
-
- **rank** — execution order within the project
|
|
238
|
-
- **parent_id** — hierarchical breakdown support
|
|
239
|
-
|
|
240
126
|
---
|
|
241
127
|
|
|
242
128
|
## Configuration
|
|
@@ -252,45 +138,6 @@ Database is created automatically on first run. All data stays on your machine.
|
|
|
252
138
|
|
|
253
139
|
---
|
|
254
140
|
|
|
255
|
-
## Claude Code Integration
|
|
256
|
-
|
|
257
|
-
Tayto ships with Claude Code skills for the full AI-assisted workflow:
|
|
258
|
-
|
|
259
|
-
| Skill | What it does |
|
|
260
|
-
|---|---|
|
|
261
|
-
| `/tayto` | Manage projects and tasks from conversation |
|
|
262
|
-
| `/implement-task` | Pick the top todo and implement it |
|
|
263
|
-
| `/enrich-task` | Research the codebase and write technical notes for the next backlog item |
|
|
264
|
-
|
|
265
|
-
The CLI's JSON output format means any AI agent with shell access can interact with Tayto — no special integration needed.
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Architecture
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
CLI (Commander.js) ──┐
|
|
273
|
-
├──> Service Layer (Zod validation) ──> Repository ──> SQLite
|
|
274
|
-
TUI (Ink/React) ─────┘
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
- **Result\<T\>** return type across all layers — no thrown exceptions
|
|
278
|
-
- **OpenTelemetry** tracing on every operation
|
|
279
|
-
- **FTS5** full-text search across task fields
|
|
280
|
-
- **ULID** identifiers — sortable, collision-free
|
|
281
|
-
- **Fractional ranking** — O(1) reorder without renumbering
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Development
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
npm run dev # watch mode
|
|
289
|
-
npm run test # run tests
|
|
290
|
-
npm run check # prettier + eslint
|
|
291
|
-
npm run build # production build
|
|
292
|
-
```
|
|
293
|
-
|
|
294
141
|
## License
|
|
295
142
|
|
|
296
143
|
MIT
|