@lovek4d/kickflip 0.1.0 → 0.3.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.
Files changed (96) hide show
  1. package/CONTEXT.md +177 -78
  2. package/README.md +46 -5
  3. package/SKILL.md +58 -37
  4. package/bin/doctor.mjs +4 -3
  5. package/bin/install.mjs +3 -3
  6. package/bin/kickflip.mjs +87 -32
  7. package/bin/statusline.mjs +4 -3
  8. package/bin/wait-events.mjs +2 -2
  9. package/board/arch-review.mjs +5 -0
  10. package/board/bin/agent.mjs +1 -1
  11. package/board/bin/board.mjs +241 -69
  12. package/board/bin/builder-stop-hook.mjs +4 -3
  13. package/board/domain.mjs +5 -3
  14. package/board/on-host.mjs +1 -0
  15. package/board/public/app-arch.js +75 -0
  16. package/board/public/app-asks.js +33 -14
  17. package/board/public/app-cards.js +242 -49
  18. package/board/public/app-core.js +39 -5
  19. package/board/public/app-header.js +24 -6
  20. package/board/public/app-lanes.js +76 -26
  21. package/board/public/app-needs.js +1 -0
  22. package/board/public/app-snapshot.js +45 -11
  23. package/board/public/app-threads.js +13 -11
  24. package/board/public/app.html +4 -1
  25. package/board/public/app.js +131 -20
  26. package/board/public/dialogs.js +114 -116
  27. package/board/public/hub-kit.js +19 -2
  28. package/board/public/hub.css +24 -18
  29. package/board/public/linear-key.js +141 -0
  30. package/board/public/router.js +6 -3
  31. package/board/public/rules-editor.js +1 -1
  32. package/board/public/shell.js +1 -1
  33. package/board/public/sidebar.css +31 -11
  34. package/board/public/sidebar.js +88 -16
  35. package/board/public/style.css +141 -46
  36. package/board/public/toasts.js +6 -4
  37. package/board/public/ui-cards.js +102 -37
  38. package/board/public/ui-header.js +17 -8
  39. package/board/public/ui-hub.js +30 -12
  40. package/board/public/ui-links.js +18 -10
  41. package/board/public/ui-order.js +18 -0
  42. package/board/public/ui-page-header.js +4 -2
  43. package/board/public/ui-questions.js +37 -16
  44. package/board/public/ui-sidebar.js +49 -11
  45. package/board/public/ui-snapshot.js +15 -9
  46. package/board/public/ui-threads.js +25 -16
  47. package/board/public/ui.js +23 -11
  48. package/board/public/view-hub-settings.js +46 -30
  49. package/board/public/view-hub.js +64 -13
  50. package/board/public/view-notes.js +7 -4
  51. package/board/public/view-polling.js +3 -3
  52. package/board/public/view-questions.js +42 -22
  53. package/board/public/view-settings.js +90 -35
  54. package/board/review.mjs +1 -0
  55. package/board/server.mjs +12 -7
  56. package/board/store.mjs +14 -6
  57. package/board/tickets.mjs +3 -3
  58. package/board/worktree.mjs +14 -13
  59. package/docs/hub-session.md +3 -3
  60. package/hooks-plugin/hooks/codex-share-auto.mjs +7 -5
  61. package/hooks-plugin/hooks/watcher-stop.mjs +41 -0
  62. package/hub/awake.mjs +1 -0
  63. package/hub/board-repo.mjs +1 -1
  64. package/hub/boards.mjs +4 -4
  65. package/hub/close-board.mjs +1 -1
  66. package/hub/duration.mjs +1 -0
  67. package/hub/github.mjs +4 -5
  68. package/hub/home.mjs +1 -1
  69. package/hub/hub.mjs +12 -10
  70. package/hub/linear.mjs +2 -2
  71. package/hub/new-board.mjs +2 -2
  72. package/hub/pr-report.mjs +1 -0
  73. package/hub/push.mjs +2 -2
  74. package/hub/readiness.mjs +2 -0
  75. package/hub/repos.mjs +3 -2
  76. package/hub/restart-board.mjs +1 -0
  77. package/hub/routes.mjs +1 -1
  78. package/hub/schedule.mjs +1 -1
  79. package/hub/sessions.mjs +2 -2
  80. package/hub/shell.mjs +2 -1
  81. package/hub/slack.mjs +2 -0
  82. package/hub/stream.mjs +12 -12
  83. package/hub/sw.js +1 -1
  84. package/hub/trust.mjs +2 -0
  85. package/hub/try.mjs +4 -3
  86. package/hub/upgrade.mjs +1 -0
  87. package/hub/usage.mjs +3 -3
  88. package/hub/views.mjs +1 -1
  89. package/package.json +1 -1
  90. package/shared/colors.css +7 -5
  91. package/shared/fake-gh.mjs +54 -0
  92. package/shared/service.mjs +16 -16
  93. package/shared/skills.mjs +2 -0
  94. package/shared/usage-gate.mjs +1 -1
  95. package/starter/public/claude.js +3 -2
  96. package/bin/web-ts.mjs +0 -2
package/README.md CHANGED
@@ -2,23 +2,64 @@
2
2
 
3
3
  Kickflip puts your Claude Code sessions' work on your phone. One hub on your host, a Mac or a Linux machine, serves pages over your Tailscale network: a sidebar of every site, and boards that show each session's work as cards, with the questions waiting on you and a push notification when something needs you. Sessions write to their boards, and you follow and steer them from your phone.
4
4
 
5
- ## Install
5
+ ## Set up
6
6
 
7
- Requires Node 22+.
7
+ You need these first:
8
+
9
+ - Node 22+
10
+ - Git
11
+ - [Claude Code](https://claude.com/claude-code)
12
+ - [gh](https://cli.github.com), signed in
13
+ - [Tailscale](https://tailscale.com), with HTTPS certificates turned on for your tailnet, on the host and on your phone
14
+
15
+ Optional: tmux, only for `kickflip join --hub` and `kickflip hub` below, and Codex.
16
+
17
+ Install and set up the host:
8
18
 
9
19
  ```sh
10
20
  npm i -g @lovek4d/kickflip
11
- kickflip install
21
+ kickflip init
12
22
  ```
13
23
 
14
- See [Install on a new host](SKILL.md#install-on-a-new-host) in SKILL.md for prerequisites, updates and development from a clone.
24
+ `kickflip init` links kickflip into Claude Code, starts the hub as a login service and serves it over Tailscale. Run `kickflip doctor` any time to see what is set up and what is not.
25
+
26
+ ## Open the hub on your phone
27
+
28
+ On your phone, open your host's Tailscale address in the browser (`https://<host>.<tailnet>.ts.net/`). Add it to your home screen to get push notifications.
29
+
30
+ ## Add a board
31
+
32
+ - **From the app:** tap New board and pick a GitHub repo.
33
+ - **From a folder:** in a git repo's folder, run `kickflip join`. It asks for a board name and starts the board's Claude Code session in the background.
34
+
35
+ ## Run the hub board in tmux (optional)
36
+
37
+ To have the hub board's session running in a terminal you can attach to, run `kickflip join --hub` in its folder. Later, `kickflip hub` attaches to it, or starts it first. This needs tmux.
38
+
39
+ ## Commands
40
+
41
+ - `kickflip init`: first-time setup
42
+ - `kickflip doctor`: check what is set up, `--fix` repairs it
43
+ - `kickflip join`: add this folder as a board
44
+ - `kickflip hub`: attach to the hub board's tmux session
45
+ - `kickflip sessions`: list each board's session
46
+ - `kickflip start <route>` / `resume <route>`: start or resume a board's session
47
+ - `kickflip restart <route>` / `logs <route>`: restart a site or read its log
48
+ - `kickflip close <route>` / `reopen <route>`: close a board and bring it back
49
+ - `kickflip export <route>` / `import <file>`: move a board to another host
50
+ - `kickflip notifications`: set push notifications
51
+ - `kickflip update`: install the latest version
52
+
53
+ Run `kickflip --help` for everything.
54
+
55
+ For sessions, prerequisites in detail and development from a clone, see [SKILL.md](SKILL.md).
15
56
 
16
57
  ## License
17
58
 
18
59
  Kickflip is licensed under the [Prosperity Public License 3.0.0](LICENSE).
19
60
 
20
61
  - **Free for noncommercial use:** personal use, hobby projects, study and research, and use by charities, schools and government.
21
- - **Companies** get a 30-day trial. After that, using kickflip for work needs a commercial license from Love Kharod; get in touch through https://github.com/lovek4d.
62
+ - **Companies** get a 30-day trial. After that, using kickflip for work needs a commercial license from Love Kharod; reach Love at love@kickflip.sh.
22
63
  - **Ever** (https://www.evercars.com) holds a free commercial license with no end date.
23
64
 
24
65
  Contributing? See [CONTRIBUTING.md](CONTRIBUTING.md).