sessionkit 0.3.2__tar.gz → 0.4.0__tar.gz

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.
@@ -0,0 +1,162 @@
1
+ Metadata-Version: 2.4
2
+ Name: sessionkit
3
+ Version: 0.4.0
4
+ Summary: Session Kit gives your Claude Code sessions voice, mail, a phone line and a tmux sidebar, in one install.
5
+ Author: Mike Bailey
6
+ Author-email: Mike Bailey <mike@sessionkit.ai>
7
+ License-Expression: AGPL-3.0-or-later
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Requires-Dist: click>=8.1
11
+ Requires-Dist: sessionmail>=0.4.0
12
+ Requires-Dist: sessiontools>=0.4.0
13
+ Requires-Dist: sessionphone[media]>=0.4.0
14
+ Requires-Dist: sessionview>=0.4.0
15
+ Requires-Dist: sessionvoice[capture]>=0.4.0
16
+ Requires-Dist: settled[kit]>=0.1.0
17
+ Requires-Python: >=3.11, <3.15
18
+ Project-URL: Homepage, https://github.com/sessionkit/sessionkit
19
+ Project-URL: Repository, https://github.com/sessionkit/sessionkit
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Session Kit
23
+
24
+ Session Kit gives your Claude Code sessions a voice, a phone line and a
25
+ mailbox. From the people who brought you [VoiceMode][voicemode].
26
+
27
+ ```bash
28
+ curl -fsSL https://sessionkit.ai/install.sh | bash
29
+ ```
30
+
31
+ This repo is the kit's home: the installer, the [manual steps][manual]
32
+ and the docs.
33
+
34
+ <!-- Hero image goes here: Talk on a phone, mid-conversation. -->
35
+
36
+ ## Features
37
+
38
+ - **Voice.** Your session hears the room and answers aloud.
39
+ - **A phone line.** Text or ring your session from Delta Chat on your phone.
40
+ - **Mail.** Agents mail each other, and an idle agent wakes when mail lands
41
+ ([mail between agents][mail]).
42
+ - **A crew.** One agent starts another and hands it the work.
43
+ - **Talk.** Watch the conversation live in a browser.
44
+
45
+ ## Quick start
46
+
47
+ After the install, do what its last screen lists (sign in to Claude Code
48
+ once), then start your first session, in whatever folder you're in:
49
+
50
+ ```bash
51
+ session start
52
+ ```
53
+
54
+ Ask Claude to call you. It shows a QR code: scan it with your phone and
55
+ follow the steps to install Delta Chat. Then you can text or ring your
56
+ session. Asking Claude to call you, or ringing your session, is when you
57
+ agree to be heard, and recorded if recording is on.
58
+
59
+ ## What it installs
60
+
61
+ Session Kit installs the family in one go: five packages, each with its
62
+ Claude Code plugin, and the Settings page.
63
+
64
+ - [sessionmail][pkg-mail]: mail for agent memory and communication
65
+ ([the paper][paper]).
66
+ - [sessiontools][pkg-tools]: your live sessions, and starting new ones.
67
+ - [sessionvoice][pkg-voice]: the ears hear the room; the mouth speaks.
68
+ - [sessionphone][pkg-phone]: a phone line to your session, over Delta Chat.
69
+ - [sessionview][pkg-view]: a tmux sidebar of your projects and agents.
70
+ - [settled][settled]: the kit's settings page, on your own Mac.
71
+
72
+ Every command answers `--help`. Commands, services and folders:
73
+ [components][components].
74
+
75
+ ## Requirements
76
+
77
+ - [x] macOS on Apple silicon (tested on an M5 MacBook Air, 16 GB, macOS 27)
78
+ - [ ] Linux (preliminary testing; no install steps yet)
79
+ - [ ] WSL
80
+ - [ ] Windows
81
+
82
+ You need:
83
+
84
+ - [Homebrew][brew]
85
+ - [uv][uv]
86
+ - [Claude Code][claude-code]
87
+ - About 8 GB of free disk
88
+
89
+ The installer adds any of the first three that are missing.
90
+
91
+ ## Installation
92
+
93
+ The one line at the top checks your Mac, lists what it will add, and asks
94
+ before it installs anything. Rather run each step yourself? With the
95
+ requirements in place (the speech server is about 4 GB):
96
+
97
+ ```bash
98
+ brew install tmux ffmpeg notmuch
99
+ uv tool install --python 3.14 sessionkit
100
+ claude plugin marketplace add sessionkit/sessionkit
101
+ claude plugin install sessionkit@sessionkit
102
+ ears install
103
+ ears services install --agent claude
104
+ sessionkit setup
105
+ pager settings hooks on
106
+ ```
107
+
108
+ Then quit Claude Code, every window, so the plugins load. Check it with
109
+ `sessionkit doctor`. More detail: [step by step][install]. To remove it:
110
+ [uninstall][uninstall].
111
+
112
+ **Already using VoiceMode?** It keeps working. Use either one, or both side
113
+ by side.
114
+
115
+ ## Configuration
116
+
117
+ Each package's settings: [configuration][config]. How they stack:
118
+ [settings][settings].
119
+
120
+ ## Logs
121
+
122
+ Where each log is: [logs][logs]. Which to read for a symptom:
123
+ [troubleshooting][trouble]. Restarting a service: [service][service].
124
+ **Health:** `sessionkit doctor`.
125
+
126
+ ## Development
127
+
128
+ `make install`, then `make check`. The rules: [AGENTS.md][agents].
129
+
130
+ Working across the family? With your clones of the five packages beside this
131
+ one, `make install-dev` installs the whole kit from them (`DRY_RUN=1` first
132
+ to see the command).
133
+
134
+ ## Status
135
+
136
+ Alpha, 0.4.0. A new release most Sundays. [Known gaps][gaps] · Licence
137
+ [AGPL-3.0][licence].
138
+
139
+ [voicemode]: https://voicemode.dev
140
+ [brew]: https://brew.sh
141
+ [uv]: https://docs.astral.sh/uv/
142
+ [claude-code]: https://code.claude.com/docs/en/overview
143
+ [install]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md
144
+ [manual]: #installation
145
+ [mail]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#mail-between-agents
146
+ [gaps]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#7-known-gaps-you-will-hit
147
+ [uninstall]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#8-uninstall
148
+ [components]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/components.md
149
+ [config]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/configuration.md
150
+ [settings]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/settings.md
151
+ [service]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/service.md
152
+ [logs]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/components.md#logs
153
+ [trouble]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/troubleshooting.md
154
+ [agents]: https://github.com/sessionkit/sessionkit/blob/HEAD/AGENTS.md
155
+ [licence]: https://github.com/sessionkit/sessionkit/blob/HEAD/LICENSE
156
+ [pkg-mail]: https://github.com/sessionkit/sessionmail
157
+ [paper]: https://cora7.com/blog/the-mailbox-is-the-memory/
158
+ [pkg-tools]: https://github.com/sessionkit/sessiontools
159
+ [pkg-voice]: https://github.com/sessionkit/sessionvoice
160
+ [pkg-phone]: https://github.com/sessionkit/sessionphone
161
+ [pkg-view]: https://github.com/sessionkit/sessionview
162
+ [settled]: https://github.com/sessionkit/settled
@@ -0,0 +1,141 @@
1
+ # Session Kit
2
+
3
+ Session Kit gives your Claude Code sessions a voice, a phone line and a
4
+ mailbox. From the people who brought you [VoiceMode][voicemode].
5
+
6
+ ```bash
7
+ curl -fsSL https://sessionkit.ai/install.sh | bash
8
+ ```
9
+
10
+ This repo is the kit's home: the installer, the [manual steps][manual]
11
+ and the docs.
12
+
13
+ <!-- Hero image goes here: Talk on a phone, mid-conversation. -->
14
+
15
+ ## Features
16
+
17
+ - **Voice.** Your session hears the room and answers aloud.
18
+ - **A phone line.** Text or ring your session from Delta Chat on your phone.
19
+ - **Mail.** Agents mail each other, and an idle agent wakes when mail lands
20
+ ([mail between agents][mail]).
21
+ - **A crew.** One agent starts another and hands it the work.
22
+ - **Talk.** Watch the conversation live in a browser.
23
+
24
+ ## Quick start
25
+
26
+ After the install, do what its last screen lists (sign in to Claude Code
27
+ once), then start your first session, in whatever folder you're in:
28
+
29
+ ```bash
30
+ session start
31
+ ```
32
+
33
+ Ask Claude to call you. It shows a QR code: scan it with your phone and
34
+ follow the steps to install Delta Chat. Then you can text or ring your
35
+ session. Asking Claude to call you, or ringing your session, is when you
36
+ agree to be heard, and recorded if recording is on.
37
+
38
+ ## What it installs
39
+
40
+ Session Kit installs the family in one go: five packages, each with its
41
+ Claude Code plugin, and the Settings page.
42
+
43
+ - [sessionmail][pkg-mail]: mail for agent memory and communication
44
+ ([the paper][paper]).
45
+ - [sessiontools][pkg-tools]: your live sessions, and starting new ones.
46
+ - [sessionvoice][pkg-voice]: the ears hear the room; the mouth speaks.
47
+ - [sessionphone][pkg-phone]: a phone line to your session, over Delta Chat.
48
+ - [sessionview][pkg-view]: a tmux sidebar of your projects and agents.
49
+ - [settled][settled]: the kit's settings page, on your own Mac.
50
+
51
+ Every command answers `--help`. Commands, services and folders:
52
+ [components][components].
53
+
54
+ ## Requirements
55
+
56
+ - [x] macOS on Apple silicon (tested on an M5 MacBook Air, 16 GB, macOS 27)
57
+ - [ ] Linux (preliminary testing; no install steps yet)
58
+ - [ ] WSL
59
+ - [ ] Windows
60
+
61
+ You need:
62
+
63
+ - [Homebrew][brew]
64
+ - [uv][uv]
65
+ - [Claude Code][claude-code]
66
+ - About 8 GB of free disk
67
+
68
+ The installer adds any of the first three that are missing.
69
+
70
+ ## Installation
71
+
72
+ The one line at the top checks your Mac, lists what it will add, and asks
73
+ before it installs anything. Rather run each step yourself? With the
74
+ requirements in place (the speech server is about 4 GB):
75
+
76
+ ```bash
77
+ brew install tmux ffmpeg notmuch
78
+ uv tool install --python 3.14 sessionkit
79
+ claude plugin marketplace add sessionkit/sessionkit
80
+ claude plugin install sessionkit@sessionkit
81
+ ears install
82
+ ears services install --agent claude
83
+ sessionkit setup
84
+ pager settings hooks on
85
+ ```
86
+
87
+ Then quit Claude Code, every window, so the plugins load. Check it with
88
+ `sessionkit doctor`. More detail: [step by step][install]. To remove it:
89
+ [uninstall][uninstall].
90
+
91
+ **Already using VoiceMode?** It keeps working. Use either one, or both side
92
+ by side.
93
+
94
+ ## Configuration
95
+
96
+ Each package's settings: [configuration][config]. How they stack:
97
+ [settings][settings].
98
+
99
+ ## Logs
100
+
101
+ Where each log is: [logs][logs]. Which to read for a symptom:
102
+ [troubleshooting][trouble]. Restarting a service: [service][service].
103
+ **Health:** `sessionkit doctor`.
104
+
105
+ ## Development
106
+
107
+ `make install`, then `make check`. The rules: [AGENTS.md][agents].
108
+
109
+ Working across the family? With your clones of the five packages beside this
110
+ one, `make install-dev` installs the whole kit from them (`DRY_RUN=1` first
111
+ to see the command).
112
+
113
+ ## Status
114
+
115
+ Alpha, 0.4.0. A new release most Sundays. [Known gaps][gaps] · Licence
116
+ [AGPL-3.0][licence].
117
+
118
+ [voicemode]: https://voicemode.dev
119
+ [brew]: https://brew.sh
120
+ [uv]: https://docs.astral.sh/uv/
121
+ [claude-code]: https://code.claude.com/docs/en/overview
122
+ [install]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md
123
+ [manual]: #installation
124
+ [mail]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#mail-between-agents
125
+ [gaps]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#7-known-gaps-you-will-hit
126
+ [uninstall]: https://github.com/sessionkit/sessionkit/blob/HEAD/INSTALL.md#8-uninstall
127
+ [components]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/components.md
128
+ [config]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/configuration.md
129
+ [settings]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/settings.md
130
+ [service]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/service.md
131
+ [logs]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/components.md#logs
132
+ [trouble]: https://github.com/sessionkit/sessionkit/blob/HEAD/docs/troubleshooting.md
133
+ [agents]: https://github.com/sessionkit/sessionkit/blob/HEAD/AGENTS.md
134
+ [licence]: https://github.com/sessionkit/sessionkit/blob/HEAD/LICENSE
135
+ [pkg-mail]: https://github.com/sessionkit/sessionmail
136
+ [paper]: https://cora7.com/blog/the-mailbox-is-the-memory/
137
+ [pkg-tools]: https://github.com/sessionkit/sessiontools
138
+ [pkg-voice]: https://github.com/sessionkit/sessionvoice
139
+ [pkg-phone]: https://github.com/sessionkit/sessionphone
140
+ [pkg-view]: https://github.com/sessionkit/sessionview
141
+ [settled]: https://github.com/sessionkit/settled
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sessionkit"
3
- version = "0.3.2"
3
+ version = "0.4.0"
4
4
  description = "Session Kit gives your Claude Code sessions voice, mail, a phone line and a tmux sidebar, in one install."
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
@@ -9,11 +9,12 @@ classifiers = ["Development Status :: 3 - Alpha"]
9
9
  requires-python = ">=3.11,<3.15"
10
10
  dependencies = [
11
11
  "click>=8.1",
12
- "sessionmail>=0.3.2",
13
- "sessiontools>=0.3.2",
14
- "sessionphone[media]>=0.3.2",
15
- "sessionview>=0.3.2",
16
- "sessionvoice[capture]>=0.3.2",
12
+ "sessionmail>=0.4.0",
13
+ "sessiontools>=0.4.0",
14
+ "sessionphone[media]>=0.4.0",
15
+ "sessionview>=0.4.0",
16
+ "sessionvoice[capture]>=0.4.0",
17
+ "settled[kit]>=0.1.0",
17
18
  ]
18
19
 
19
20
  [[project.authors]]
@@ -31,14 +32,30 @@ pager = "sessionmail.pager:cli"
31
32
  memory = "sessionmail.memory:cli"
32
33
  session = "sessiontools.cli:main"
33
34
  sessionphone = "sessionphone.cli:main"
35
+ dc-answer = "sessionphone.dctools:main"
36
+ dc-call = "sessionphone.dctools:main"
37
+ dc-call-mix = "sessionphone.dctools:main"
38
+ dc-delete = "sessionphone.dctools:main"
39
+ dc-dm = "sessionphone.dctools:main"
40
+ dc-fetch = "sessionphone.dctools:main"
41
+ dc-hangup = "sessionphone.dctools:main"
42
+ dc-invite = "sessionphone.dctools:main"
43
+ dc-live = "sessionphone.dctools:main"
44
+ dc-log = "sessionphone.dctools:main"
45
+ dc-log-web = "sessionphone.dctools:main"
46
+ dc-react = "sessionphone.dctools:main"
47
+ dc-ring = "sessionphone.dctools:main"
48
+ dc-say = "sessionphone.dctools:main"
49
+ dc-send-file = "sessionphone.dctools:main"
50
+ dc-xdc-realtime = "sessionphone.dctools:main"
51
+ dc-xdc-update = "sessionphone.dctools:main"
34
52
  sessionview = "sessionview:main"
35
- sessionview-config = "sessionview:main"
36
- sessionview-session = "sessionview:main"
37
- sessionview-messages = "sessionview:main"
38
53
  ears = "ears.cli:main"
39
54
  ears-serve = "ears.serve:main"
40
55
  mouth = "mouth.__main__:main"
41
56
  talk = "talk.cli:main"
57
+ sessionvoice-web = "talk.web:main"
58
+ settled = "settled.cli:main"
42
59
 
43
60
  [build-system]
44
61
  requires = ["uv_build>=0.11.9,<0.12.0"]
@@ -0,0 +1,123 @@
1
+ [project]
2
+ name = "sessionkit"
3
+ version = "0.4.0"
4
+ description = "Session Kit gives your Claude Code sessions voice, mail, a phone line and a tmux sidebar, in one install."
5
+ readme = "README.md"
6
+ license = "AGPL-3.0-or-later"
7
+ license-files = ["LICENSE"]
8
+ classifiers = ["Development Status :: 3 - Alpha"]
9
+ authors = [
10
+ { name = "Mike Bailey", email = "mike@sessionkit.ai" }
11
+ ]
12
+ requires-python = ">=3.11,<3.15"
13
+ # The family, one install. Floored at 0.3.0: the kit is released and tested
14
+ # with the family's 0.3.0, so it needs every family package at 0.3.0 or
15
+ # later, and PyPI's 0.0.1 name placeholders and the 0.1.0 alphas must never
16
+ # satisfy these.
17
+ # Within the 0.4.0 floor below, `sessionkit setup` asks sessiontools for
18
+ # `session agent default`, and INSTALL.md describes sessionmail's one-run
19
+ # mail setup. Setup also asks sessiontools for the agents folder with
20
+ # `session path agent --config --json`.
21
+ # That verb ships in sessiontools 0.3.3, below the floor; with a sessiontools
22
+ # that lacks it, setup writes no agent file and says so.
23
+ # All five are floored at 0.4.0 or later: the family is released together, and
24
+ # an older copy of one package beside the others splits its state between the
25
+ # old and new folders.
26
+ # sessionview from 0.4.0 has its helpers as verbs, and the kit links
27
+ # `sessionview` alone. An older sessionview still types
28
+ # `sessionview-messages` into its messages tab, which the kit no longer links.
29
+ # sessionphone with its media extra: the bot, calls and `sessionphone web` need it.
30
+ # sessionvoice with its capture extra, so the ears can hear the room.
31
+ # settled, the Settings app, is required too: a hard dependency, never an
32
+ # optional extra. It is not a family package: it has its own version line,
33
+ # floored at 0.1.0 so PyPI's 0.0.1 name placeholder can never satisfy it, and
34
+ # its kit extra brings the kit's tool registry and jsonschema, without which
35
+ # it shows none of the kit's tools.
36
+ # That extra asks for sessiontools 0.3.3, which the sessiontools line below
37
+ # covers.
38
+ # This is the RULED list, kept in tests/_ruled_deps.py with the ruling;
39
+ # tests/test_dependency_gate.py fails when these lines, the built wheel or
40
+ # uv.lock drift from it.
41
+ dependencies = [
42
+ "click>=8.1",
43
+ "sessionmail>=0.4.0",
44
+ "sessiontools>=0.4.0",
45
+ "sessionphone[media]>=0.4.0",
46
+ "sessionview>=0.4.0",
47
+ "sessionvoice[capture]>=0.4.0",
48
+ "settled[kit]>=0.1.0",
49
+ ]
50
+
51
+ [project.urls]
52
+ Homepage = "https://github.com/sessionkit/sessionkit"
53
+ Repository = "https://github.com/sessionkit/sessionkit"
54
+
55
+ # The kit's own command, then every child command RE-DECLARED (the
56
+ # recommended re-export). `uv tool install` links only the executables of the
57
+ # package it is asked for, never its dependencies', so without these lines
58
+ # `uv tool install sessionkit` would put `sessionkit` alone on the PATH.
59
+ # Each entry point is the child's own target, copied verbatim; re-measure them
60
+ # at each child's HEAD whenever a child adds, renames or drops a command.
61
+ # Measured from each child's 0.3.0 wheel (entry_points.txt), by wheel sha256:
62
+ # mail 8e4d9476, tools 8d089699, phone ac402a39, view 3942f119, voice ebc1b65c.
63
+ # settled: from the settings repo's pyproject at 1487963 and its 0.1.0
64
+ # wheel, sha256 d796d326 (re-measure from the staged 0.1.0 wheel, by sha256).
65
+ # sessionview ships one command. Its helpers are verbs of it, `sessionview
66
+ # config`, `sessionview session` and `sessionview messages`, never on the PATH.
67
+ # The kit itself still ships no `session` of its own: `session` below is
68
+ # sessiontools' command, re-exported, not a second implementation.
69
+ [project.scripts]
70
+ sessionkit = "sessionkit.cli:main"
71
+ # sessionmail
72
+ message = "sessionmail.message:cli"
73
+ pager = "sessionmail.pager:cli"
74
+ memory = "sessionmail.memory:cli"
75
+ # sessiontools
76
+ session = "sessiontools.cli:main"
77
+ # sessionphone
78
+ sessionphone = "sessionphone.cli:main"
79
+ # sessionphone's dc-* tools: one console-script target, sessionphone.dctools:main,
80
+ # which runs the tool named by argv[0]. uv links only the kit's own scripts, so
81
+ # without these lines a kit install leaves them off PATH.
82
+ # dc-env (a library the tools source), bridge-check and bin/sessionphone never ship.
83
+ dc-answer = "sessionphone.dctools:main"
84
+ dc-call = "sessionphone.dctools:main"
85
+ dc-call-mix = "sessionphone.dctools:main"
86
+ dc-delete = "sessionphone.dctools:main"
87
+ dc-dm = "sessionphone.dctools:main"
88
+ dc-fetch = "sessionphone.dctools:main"
89
+ dc-hangup = "sessionphone.dctools:main"
90
+ dc-invite = "sessionphone.dctools:main"
91
+ dc-live = "sessionphone.dctools:main"
92
+ dc-log = "sessionphone.dctools:main"
93
+ dc-log-web = "sessionphone.dctools:main"
94
+ dc-react = "sessionphone.dctools:main"
95
+ dc-ring = "sessionphone.dctools:main"
96
+ dc-say = "sessionphone.dctools:main"
97
+ dc-send-file = "sessionphone.dctools:main"
98
+ dc-xdc-realtime = "sessionphone.dctools:main"
99
+ dc-xdc-update = "sessionphone.dctools:main"
100
+ # sessionview
101
+ sessionview = "sessionview:main"
102
+ # sessionvoice
103
+ ears = "ears.cli:main"
104
+ ears-serve = "ears.serve:main"
105
+ mouth = "mouth.__main__:main"
106
+ talk = "talk.cli:main"
107
+ # the front door asks it for Talk's room: `sessionvoice-web web-room` (docs/family-web.md)
108
+ sessionvoice-web = "talk.web:main"
109
+ # settled
110
+ settled = "settled.cli:main"
111
+
112
+ [build-system]
113
+ requires = ["uv_build>=0.11.9,<0.12.0"]
114
+ build-backend = "uv_build"
115
+
116
+ [dependency-groups]
117
+ dev = [
118
+ "pytest>=8",
119
+ "ruff>=0.6",
120
+ ]
121
+
122
+ [tool.pytest.ini_options]
123
+ testpaths = ["tests", "dark-launch/tests"]