@tomkapa/tayto 0.4.1 → 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 tomkapa
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
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
- Tayto is a local-first task manager built for solo developers who work with AI coding agents. Two interfaces, one SQLite database, zero configuration.
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
- [Quick Start](#quick-start) • [Why Tayto](#why-tayto) • [Workflow](#workflow) • [CLI Reference](#cli-reference) • [TUI Reference](#tui-reference)
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
- ## Why Tayto
20
+ ## Install
20
21
 
21
- Every project management tool out there assumes you're on a team. They want you to configure sprints, assign story points, set due dates, and fill out fifteen fields before you can track a single task.
22
+ ```bash
23
+ npm install -g @tomkapa/tayto
24
+ ```
22
25
 
23
- If you're a solo dev shipping with AI agents like Claude Code, you need something different:
26
+ **Requires:** Node.js >= 25
24
27
 
25
- - **You forget things.** A quick idea during a coding session, a tech debt note from an AI-generated feature, a bug you noticed but can't fix right now. Without a fast capture tool, these vanish.
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
- Tayto solves exactly this: a **CLI for agents** and a **TUI for humans**, sharing the same local SQLite database. No server. No login. No internet required.
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
  ![Workflow](workflow.png)
39
39
 
40
- **1. Capture** &mdash; Use AI to generate tasks from feature plans, record tech debt, or break down epics. Never lose an idea again.
40
+ **1. Capture** &mdash; AI generates tasks from feature plans, records tech debt, logs bugs.
41
41
 
42
- **2. Prioritize** &mdash; You review the backlog and drag tasks into execution order. No story points. No priority matrices. Just: what's first?
42
+ **2. Prioritize** &mdash; You drag tasks into execution order. No story points. Just: what's first?
43
43
 
44
- **3. Enrich** &mdash; AI analyzes the codebase and writes implementation-ready technical notes for the top backlog items.
44
+ **3. Enrich** &mdash; AI researches the codebase and writes implementation-ready technical notes.
45
45
 
46
- **4. Review** &mdash; You read the plan. Approve it, adjust it, or send it back.
46
+ **4. Review** &mdash; You read the plan. Approve, adjust, or send it back.
47
47
 
48
- **5. Execute** &mdash; AI implements the first `todo` task. You review the code. Cycle repeats.
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** &mdash; AI implements the top `todo` task. You review the code. Cycle repeats.
51
49
 
52
50
  ---
53
51
 
54
- ## Quick Start
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
- ## Installation
54
+ Tayto's CLI outputs structured JSON to stdout &mdash; any agent with shell access can manage your tasks.
78
55
 
79
- ```bash
80
- npm install -g @tomkapa/tayto
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
- **Requires:** Node.js >= 25
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
- ## Two Interfaces, One Database
95
+ ## Claude Code Skills
96
96
 
97
- ### CLI &mdash; Built for AI Agents and Scripts
97
+ Tayto ships with [Claude Code skills](https://docs.anthropic.com/en/docs/claude-code/skills) for the full AI-assisted workflow &mdash; no prompt engineering required.
98
98
 
99
- Every command returns structured JSON to stdout. Errors go to stderr with exit code 1.
99
+ ### `/tayto`
100
100
 
101
- ```jsonc
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 &mdash; all without leaving Claude Code.
108
102
 
109
- This makes Tayto a natural fit for AI coding agents. Claude Code can create tasks, search the backlog, read technical notes, and update status &mdash; all through simple CLI calls.
103
+ ### `/enrich-task`
110
104
 
111
- ### TUI &mdash; Built for Humans
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
- Run `tayto` with no arguments to launch an interactive terminal UI with:
107
+ ### `/implement-task`
114
108
 
115
- - Rich markdown rendering for task descriptions and technical notes
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
- ### Project Management
113
+ Install from the community registry:
126
114
 
127
115
  ```bash
128
- tayto project create -n "my-app" -d "Description" --default
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
- Projects auto-detect the current git remote, so `tayto` in a repo directory uses the right project automatically.
137
-
138
- ### Task Management
119
+ Or from the Claude Code marketplace:
139
120
 
140
121
  ```bash
141
- # Create
142
- tayto task create \
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` &rarr; `todo` &rarr; `in-progress` &rarr; `review` &rarr; `done` (or `cancelled`)
228
-
229
- ### Task Fields
230
-
231
- Each task carries rich context for AI consumption:
232
-
233
- - **name** &mdash; short summary
234
- - **description** &mdash; user-facing details
235
- - **technical_notes** &mdash; implementation guidance (appendable)
236
- - **additional_requirements** &mdash; constraints and edge cases (appendable)
237
- - **rank** &mdash; execution order within the project
238
- - **parent_id** &mdash; 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 &mdash; 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 &mdash; no thrown exceptions
278
- - **OpenTelemetry** tracing on every operation
279
- - **FTS5** full-text search across task fields
280
- - **ULID** identifiers &mdash; sortable, collision-free
281
- - **Fractional ranking** &mdash; 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
package/dist/index.js CHANGED
@@ -2401,7 +2401,7 @@ function buildCLI(container) {
2401
2401
  registerDepList(dep, container);
2402
2402
  registerDepGraph(dep, container);
2403
2403
  program.command("tui").description("Launch interactive terminal UI").option("-p, --project <project>", "Start with specific project").action(async (opts) => {
2404
- const { launchTUI } = await import("./tui-IXZGQMWN.js");
2404
+ const { launchTUI } = await import("./tui-24ZW56Q6.js");
2405
2405
  await launchTUI(container, opts.project);
2406
2406
  });
2407
2407
  return program;
@@ -2417,7 +2417,7 @@ async function main() {
2417
2417
  const container = createContainer(db, config.dbPath);
2418
2418
  const args = process.argv.slice(2);
2419
2419
  if (args.length === 0) {
2420
- const { launchTUI } = await import("./tui-IXZGQMWN.js");
2420
+ const { launchTUI } = await import("./tui-24ZW56Q6.js");
2421
2421
  await launchTUI(container);
2422
2422
  } else {
2423
2423
  const program = buildCLI(container);