@lovek4d/kickflip 0.1.0 → 0.4.0

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 (120) hide show
  1. package/CONTEXT.md +239 -104
  2. package/README.md +54 -4
  3. package/SKILL.md +63 -42
  4. package/bin/doctor.mjs +4 -3
  5. package/bin/install.mjs +3 -3
  6. package/bin/kickflip.mjs +103 -40
  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/auto-review.mjs +2 -0
  11. package/board/bin/agent.mjs +1 -1
  12. package/board/bin/board.mjs +371 -82
  13. package/board/bin/builder-stop-hook.mjs +4 -3
  14. package/board/domain.mjs +8 -3
  15. package/board/finish.mjs +3 -0
  16. package/board/headless.mjs +3 -0
  17. package/board/on-host.mjs +1 -0
  18. package/board/permissions.mjs +2 -0
  19. package/board/public/app-arch.js +75 -0
  20. package/board/public/app-asks.js +66 -28
  21. package/board/public/app-banner.js +2 -2
  22. package/board/public/app-cards.js +354 -77
  23. package/board/public/app-core.js +40 -8
  24. package/board/public/app-header.js +33 -8
  25. package/board/public/app-lanes.js +238 -34
  26. package/board/public/app-needs.js +2 -0
  27. package/board/public/app-snapshot.js +45 -11
  28. package/board/public/app-threads.js +20 -21
  29. package/board/public/app.html +6 -2
  30. package/board/public/app.js +114 -33
  31. package/board/public/attach.js +39 -3
  32. package/board/public/dialogs.js +161 -118
  33. package/board/public/hub-kit.js +27 -7
  34. package/board/public/hub.css +26 -33
  35. package/board/public/linear-key.js +143 -0
  36. package/board/public/log.html +48 -0
  37. package/board/public/prompts.js +9 -8
  38. package/board/public/prototype-kit.js +6 -6
  39. package/board/public/prototype-switcher.js +13 -5
  40. package/board/public/prototype.html +1 -0
  41. package/board/public/router.js +14 -10
  42. package/board/public/rules-editor.js +4 -5
  43. package/board/public/shell.js +21 -7
  44. package/board/public/sidebar.css +51 -11
  45. package/board/public/sidebar.js +124 -19
  46. package/board/public/style.css +244 -56
  47. package/board/public/toasts.js +5 -3
  48. package/board/public/ui-cards.js +236 -66
  49. package/board/public/ui-enums.js +5 -4
  50. package/board/public/ui-header.js +23 -14
  51. package/board/public/ui-hub.js +34 -16
  52. package/board/public/ui-links.js +18 -10
  53. package/board/public/ui-markdown.js +1 -1
  54. package/board/public/ui-order.js +21 -0
  55. package/board/public/ui-page-header.js +13 -8
  56. package/board/public/ui-patch.js +53 -0
  57. package/board/public/ui-phase-bars.js +17 -0
  58. package/board/public/ui-prompts.js +8 -8
  59. package/board/public/ui-questions.js +35 -11
  60. package/board/public/ui-sidebar.js +83 -21
  61. package/board/public/ui-snapshot.js +30 -13
  62. package/board/public/ui-threads.js +38 -23
  63. package/board/public/ui.js +96 -16
  64. package/board/public/view-frame.js +1 -1
  65. package/board/public/view-hub-settings.js +67 -44
  66. package/board/public/view-hub.js +105 -13
  67. package/board/public/view-notes.js +8 -5
  68. package/board/public/view-questions.js +123 -52
  69. package/board/public/view-settings.js +235 -62
  70. package/board/review.mjs +1 -0
  71. package/board/server.mjs +18 -7
  72. package/board/store.mjs +15 -6
  73. package/board/tickets.mjs +3 -3
  74. package/board/worktree.mjs +20 -13
  75. package/docs/hub-session.md +4 -4
  76. package/hooks-plugin/hooks/codex-share-auto.mjs +7 -5
  77. package/hooks-plugin/hooks/watcher-stop.mjs +41 -0
  78. package/hub/awake.mjs +1 -0
  79. package/hub/board-repo.mjs +1 -1
  80. package/hub/boards.mjs +4 -4
  81. package/hub/close-board.mjs +1 -1
  82. package/hub/duration.mjs +1 -0
  83. package/hub/github.mjs +3 -4
  84. package/hub/home.mjs +1 -1
  85. package/hub/hub.mjs +12 -10
  86. package/hub/incoming.mjs +2 -0
  87. package/hub/linear.mjs +2 -2
  88. package/hub/live.mjs +2 -2
  89. package/hub/new-board.mjs +2 -2
  90. package/hub/permission-denied-hook.mjs +2 -0
  91. package/hub/pr-report.mjs +3 -0
  92. package/hub/presence.mjs +1 -1
  93. package/hub/prompts.mjs +1 -1
  94. package/hub/push.mjs +2 -2
  95. package/hub/readiness.mjs +2 -0
  96. package/hub/repos.mjs +3 -2
  97. package/hub/restart-board.mjs +1 -0
  98. package/hub/routes.mjs +1 -1
  99. package/hub/schedule.mjs +1 -1
  100. package/hub/sessions.mjs +2 -2
  101. package/hub/shell.mjs +2 -1
  102. package/hub/slack.mjs +2 -0
  103. package/hub/stream.mjs +12 -12
  104. package/hub/sw.js +2 -2
  105. package/hub/trust.mjs +2 -0
  106. package/hub/try.mjs +8 -3
  107. package/hub/upgrade.mjs +1 -0
  108. package/hub/usage.mjs +3 -3
  109. package/hub/views.mjs +1 -1
  110. package/package.json +5 -1
  111. package/shared/card-prs.mjs +1 -0
  112. package/shared/colors.css +9 -6
  113. package/shared/fake-gh.mjs +105 -0
  114. package/shared/repos.mjs +1 -1
  115. package/shared/service.mjs +16 -16
  116. package/shared/skills.mjs +2 -0
  117. package/shared/usage-gate.mjs +1 -1
  118. package/starter/public/claude.js +3 -2
  119. package/bin/web-ts.mjs +0 -2
  120. package/board/public/view-polling.js +0 -87
package/README.md CHANGED
@@ -4,21 +4,71 @@ Kickflip puts your Claude Code sessions' work on your phone. One hub on your hos
4
4
 
5
5
  ## Install
6
6
 
7
- Requires Node 22+.
7
+ On a Mac, with [Homebrew](https://brew.sh):
8
8
 
9
9
  ```sh
10
+ brew install node git gh
11
+ brew install --cask tailscale-app claude-code
12
+
10
13
  npm i -g @lovek4d/kickflip
11
- kickflip install
14
+ kickflip init
15
+ ```
16
+
17
+ Kickflip needs Node 22 or newer. On Linux, install the same tools with your package manager.
18
+
19
+ Sign in to Tailscale and turn on HTTPS certificates for your tailnet. Run `gh auth login`. Do both on the host, and put Tailscale on your phone too.
20
+
21
+ Optional: tmux, only for `kickflip join --hub` and `kickflip hub` below, and Codex.
22
+
23
+ `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.
24
+
25
+ ## Open on your phone
26
+
27
+ Run `kickflip url`. Open the address it prints.
28
+
29
+ ```
30
+ $ kickflip url
31
+ https://mac.tailnet-name.ts.net/
12
32
  ```
13
33
 
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.
34
+ Add it to your home screen to get push notifications.
35
+
36
+ ## Add a board
37
+
38
+ - **From the app:** tap New board and pick a GitHub repo.
39
+ - **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.
40
+
41
+ The hub checks every board's PRs on GitHub in one query, and handles about 50 open PRs at once.
42
+
43
+ ## Run the hub board in tmux (optional)
44
+
45
+ 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.
46
+
47
+ ## Commands
48
+
49
+ - `kickflip init`: first-time setup
50
+ - `kickflip url`: print the address to open on your phone
51
+ - `kickflip doctor`: check what is set up, `--fix` repairs it
52
+ - `kickflip join`: add this folder as a board
53
+ - `kickflip hub`: attach to the hub board's tmux session
54
+ - `kickflip sessions`: list each board's session
55
+ - `kickflip start <route>` / `resume <route>`: start or resume a board's session
56
+ - `kickflip restart <route>` / `logs <route>`: restart a site or read its log
57
+ - `kickflip close <route>` / `reopen <route>`: close a board and bring it back
58
+ - `kickflip export <route>` / `import <file>`: move a board to another host
59
+ - `kickflip notifications`: set push notifications
60
+ - `kickflip update`: install the latest version
61
+
62
+ Run `kickflip --help` for everything.
63
+
64
+ For sessions, prerequisites in detail and development from a clone, see [SKILL.md](SKILL.md).
15
65
 
16
66
  ## License
17
67
 
18
68
  Kickflip is licensed under the [Prosperity Public License 3.0.0](LICENSE).
19
69
 
20
70
  - **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.
71
+ - **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
72
  - **Ever** (https://www.evercars.com) holds a free commercial license with no end date.
23
73
 
24
74
  Contributing? See [CONTRIBUTING.md](CONTRIBUTING.md).