sessionkit 0.3.0__tar.gz → 0.3.2__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.
- sessionkit-0.3.2/PKG-INFO +439 -0
- sessionkit-0.3.2/README.md +419 -0
- sessionkit-0.3.2/pyproject.toml +57 -0
- sessionkit-0.3.0/pyproject.toml → sessionkit-0.3.2/pyproject.toml.orig +14 -7
- {sessionkit-0.3.0 → sessionkit-0.3.2}/src/sessionkit/cli.py +63 -12
- sessionkit-0.3.2/src/sessionkit/doctor.py +229 -0
- sessionkit-0.3.2/src/sessionkit/install.sh +1159 -0
- {sessionkit-0.3.0 → sessionkit-0.3.2}/src/sessionkit/setup.py +148 -19
- sessionkit-0.3.0/PKG-INFO +0 -233
- sessionkit-0.3.0/README.md +0 -213
- {sessionkit-0.3.0 → sessionkit-0.3.2}/LICENSE +0 -0
- {sessionkit-0.3.0 → sessionkit-0.3.2}/src/sessionkit/__init__.py +0 -0
- {sessionkit-0.3.0 → sessionkit-0.3.2}/src/sessionkit/py.typed +0 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sessionkit
|
|
3
|
+
Version: 0.3.2
|
|
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.3.2
|
|
12
|
+
Requires-Dist: sessiontools>=0.3.2
|
|
13
|
+
Requires-Dist: sessionphone[media]>=0.3.2
|
|
14
|
+
Requires-Dist: sessionview>=0.3.2
|
|
15
|
+
Requires-Dist: sessionvoice[capture]>=0.3.2
|
|
16
|
+
Requires-Python: >=3.11, <3.15
|
|
17
|
+
Project-URL: Homepage, https://github.com/sessionkit/sessionkit
|
|
18
|
+
Project-URL: Repository, https://github.com/sessionkit/sessionkit
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# Session Kit
|
|
22
|
+
|
|
23
|
+
Session Kit lets your Claude Code sessions mail each other, hear you and
|
|
24
|
+
answer aloud. One install brings the five family packages and their Claude
|
|
25
|
+
Code plugins.
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
You need:
|
|
30
|
+
|
|
31
|
+
- macOS.
|
|
32
|
+
- [Claude Code][claude-code].
|
|
33
|
+
- Have Claude Code: nothing to run.
|
|
34
|
+
- No Claude Code: install it with Anthropic's installer.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- Its "Setup notes" say `~/.local/bin is not in your PATH`? The installer
|
|
41
|
+
does not change your PATH itself. Add the folder with Anthropic's two
|
|
42
|
+
lines for zsh, the Mac's shell:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
|
|
46
|
+
source ~/.zshrc
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
- Claude Code asks you to sign in the first time you start it.
|
|
50
|
+
- [Homebrew][brew] or at least Apple's Command Line Tools. Homebrew
|
|
51
|
+
installs the Command Line Tools for you ([prerequisites][prereqs]), and
|
|
52
|
+
the kit needs two of their tools: the plugin lines clone with git, and the
|
|
53
|
+
ears build a Swift helper with `swiftc`.
|
|
54
|
+
- Have Homebrew: nothing to run. It installed the Command Line Tools.
|
|
55
|
+
- No Homebrew: get the Command Line Tools alone.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
xcode-select --install
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- uv.
|
|
62
|
+
- Have uv: nothing to run.
|
|
63
|
+
- No uv: install it.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- Then open a new terminal, so `uv` is on your PATH. Or run:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
source ~/.zshrc
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- For a call on a Mac: [Homebrew][brew], then ffmpeg from it. A call needs
|
|
76
|
+
ffmpeg, and Homebrew is how a Mac gets it. The Command Line Tools alone
|
|
77
|
+
are not enough for a call.
|
|
78
|
+
- Have Homebrew: go on to ffmpeg.
|
|
79
|
+
- No Homebrew: install it with its own installer, from [brew.sh][brew].
|
|
80
|
+
- Then install ffmpeg:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
brew install ffmpeg
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
- Homebrew lists what ffmpeg needs, then asks
|
|
87
|
+
`Do you want to proceed with the installation? [y/n]`. Press `y`. It
|
|
88
|
+
goes on at once, with no Return.
|
|
89
|
+
- Then the speech server, then link the phone: the phone bullets below.
|
|
90
|
+
- A call without Homebrew is the workaround case. This guide does not
|
|
91
|
+
cover it.
|
|
92
|
+
|
|
93
|
+
Then install the kit:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
uv tool install --python 3.14 sessionkit
|
|
97
|
+
claude plugin marketplace add sessionkit/sessionkit
|
|
98
|
+
claude plugin install sessionkit@sessionkit
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The first line puts the commands on your PATH. The other two install the
|
|
102
|
+
kit's plugin and the five family plugins it depends on.
|
|
103
|
+
|
|
104
|
+
- **Keep `--python 3.14`.** Without it, uv takes the Python it finds: 3.15,
|
|
105
|
+
where a voice library has no build yet and the install fails, or the
|
|
106
|
+
Command Line Tools' 3.11. The kit is tested on 3.14.
|
|
107
|
+
- To upgrade:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
uv tool upgrade sessionkit
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
It keeps the Python the install chose.
|
|
114
|
+
- To reinstall, give the pin again:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
uv tool install --python 3.14 --reinstall sessionkit
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Without it, uv drops the pin from its record, or, with `--force`, builds
|
|
121
|
+
the kit again on the Python it finds.
|
|
122
|
+
- **A dialog may ask to install the Command Line Tools.** On a Mac without
|
|
123
|
+
them, the first `uv tool install` opens it. Click Install and let it
|
|
124
|
+
finish: the plugin lines need the git it brings. The dialog can open
|
|
125
|
+
behind the Terminal window: look for it in the Dock or with Cmd-Tab.
|
|
126
|
+
- **Phone calls are installed, and walked for a session started with
|
|
127
|
+
`session start <name>`.** A fresh Mac took a real call and passed. A plain
|
|
128
|
+
`claude` session does not hear calls you make to it yet. Whether the phone
|
|
129
|
+
bot signs its mail to your Claude follows your mail carrier:
|
|
130
|
+
[bot mail signing][phone-signing].
|
|
131
|
+
- **The speech server comes before the phone.** A call hears you through
|
|
132
|
+
it, so it is installed before you link your phone.
|
|
133
|
+
- No phone: nothing to run now. [Hearing and speaking][hearing]
|
|
134
|
+
installs the speech server with the rest of the voice.
|
|
135
|
+
- A phone: first Homebrew, then ffmpeg, as the call item under "You
|
|
136
|
+
need" says.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
brew install ffmpeg
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
- At Homebrew's `[y/n]`, press `y`.
|
|
143
|
+
- Then install the speech server. It builds the server and fetches its
|
|
144
|
+
weights, about 2.9 GB.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
ears services install --only speech
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- Then link the phone. This makes its account on a public relay and
|
|
151
|
+
prints the invite link. The name people see in their chat list goes in
|
|
152
|
+
place of NAME:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
sessionphone setup --name NAME
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
A name with a space in it needs quotes, or the shell splits it in two
|
|
159
|
+
and setup refuses the second word:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
sessionphone setup --name "Ada Lovelace"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
- The rest of linking is in [sessionphone][pkg-phone]'s docs.
|
|
166
|
+
|
|
167
|
+
- **Then quit Claude Code and start it again**, every window of it, before
|
|
168
|
+
you run anything else.
|
|
169
|
+
|
|
170
|
+
A plugin installed from the shell loads only when Claude Code starts, so a
|
|
171
|
+
session that was already open has no plugin commands on its PATH, and no
|
|
172
|
+
plugin hooks.
|
|
173
|
+
|
|
174
|
+
Then set up mail. This makes the box `claude`, which your first session
|
|
175
|
+
needs to hear mail and calls:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
sessionkit setup
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
- **On a fresh Mac it exits 4, and that is expected.** It leaves two
|
|
182
|
+
notmuch steps for later: [the manual install][setup] shows its last
|
|
183
|
+
lines.
|
|
184
|
+
|
|
185
|
+
The three install lines leave the ears without the model they listen
|
|
186
|
+
with. Fetch it once:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
ears install
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
It downloads the 2.3 MB voice-activity model from GitHub (one pinned
|
|
193
|
+
release of Silero VAD, checked against its SHA-256) to
|
|
194
|
+
`~/.cache/ears/silero_vad.onnx`, with no sudo, and prints `done`. Without
|
|
195
|
+
it the ears cannot hear you, and `ears services install`, the step that
|
|
196
|
+
starts them ([hearing and speaking][hearing]), refuses with
|
|
197
|
+
`silero MISSING`. The Swift helper is built later, when those services start.
|
|
198
|
+
|
|
199
|
+
- **The mail hooks start off.** They tell an agent about new mail between
|
|
200
|
+
its tool calls. To turn them on, set `"hooks": true` in
|
|
201
|
+
`~/.sessionkit/mail/settings/mail.json`. The plugin writes that file,
|
|
202
|
+
with the hooks off, the first time a Claude Code session runs a tool,
|
|
203
|
+
and it holds other settings too, so change only that key. Never write
|
|
204
|
+
the file over: that deletes the other keys. This works whether the file
|
|
205
|
+
is there yet or not, and whether it has a `hooks` key or not:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
f=~/.sessionkit/mail/settings/mail.json
|
|
209
|
+
if [ -f "$f" ]; then
|
|
210
|
+
perl -0777 -pi -e '
|
|
211
|
+
if (/"hooks"\s*:/) { s/"hooks"\s*:\s*false/"hooks": true/ }
|
|
212
|
+
elsif (/\A\s*\{\s*\}\s*\z/) { s/\{\s*\}/{"hooks": true}/ }
|
|
213
|
+
else { s/\{(\s*)/"{$1" . q("hooks": true,) . ($1 || " ")/e }
|
|
214
|
+
' "$f"
|
|
215
|
+
else
|
|
216
|
+
mkdir -p ~/.sessionkit/mail/settings
|
|
217
|
+
echo '{"version": 1, "hooks": true, "sendmail": "drop"}' > "$f"
|
|
218
|
+
fi
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
A `"hooks": false` becomes `true`. A file with no `hooks` key gets
|
|
222
|
+
`"hooks": true` as its first key, and its other keys stay as they were.
|
|
223
|
+
If the file is not there yet, this writes what the plugin would have
|
|
224
|
+
written, with the hooks on. The plugin never replaces a file that is
|
|
225
|
+
already there.
|
|
226
|
+
|
|
227
|
+
Step by step, with every step that needs you marked: [the manual
|
|
228
|
+
install][install].
|
|
229
|
+
|
|
230
|
+
To see what this Mac is still missing, run the kit's check. It installs
|
|
231
|
+
nothing. It prints one line for each thing the kit needs, and under each
|
|
232
|
+
missing one, the command that adds it:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
sessionkit doctor
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
It exits 0 when nothing the kit needs is missing, and 1 when something is.
|
|
239
|
+
The phone bot and the session key are shown, but they never fail it.
|
|
240
|
+
|
|
241
|
+
- No kit yet, or `sessionkit` will not start? The installer runs the same
|
|
242
|
+
check. Its address is not live yet. From a clone of this repository,
|
|
243
|
+
run `bash install.sh --check`. Once the address is live:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
curl -fsSL https://sessionkit.ai/install.sh | bash -s -- --check
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Quick start
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
sessionkit --version
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
It lists the kit and each family package, with its version. Each `X.Y.Z`
|
|
256
|
+
is the version you installed:
|
|
257
|
+
|
|
258
|
+
```text
|
|
259
|
+
sessionkit, version X.Y.Z
|
|
260
|
+
sessionmail X.Y.Z
|
|
261
|
+
sessiontools X.Y.Z
|
|
262
|
+
sessionphone X.Y.Z
|
|
263
|
+
sessionview X.Y.Z
|
|
264
|
+
sessionvoice X.Y.Z
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Start Claude in a project folder, not in your home folder, where a new
|
|
268
|
+
Terminal opens. Started in the home folder, Claude Code asks macOS for
|
|
269
|
+
access to folders such as Desktop, Downloads, Photos and Media Library.
|
|
270
|
+
Make a folder, go into it, and start Claude there:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
mkdir -p ~/work && cd ~/work
|
|
274
|
+
session start
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
- **The first session on this Mac is `claude`, and it hears Delta.** Your
|
|
278
|
+
phone's Delta messages and calls go to the box `claude`, and only the
|
|
279
|
+
session that holds `claude` hears them. It says so as it starts:
|
|
280
|
+
|
|
281
|
+
```text
|
|
282
|
+
session start: this session is claude, the default seat on this host (box claude)
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
- **A second session starts plain.** Start another the same way while the
|
|
286
|
+
first one runs, and it is a plain Claude Code session. It does not hear
|
|
287
|
+
Delta, and its one line names the session that holds `claude`:
|
|
288
|
+
|
|
289
|
+
```text
|
|
290
|
+
session start: starting plain: the default seat claude is held by session 6161d8f8-d49f-4826-9f80-095bd2e6aaed (pid 6993, live 2s), so this session will NOT hear Delta messages or calls; that one does
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- **Never a bare `claude`.** Mail to your agent's box, your phone's
|
|
294
|
+
included, reaches only a session started as that agent.
|
|
295
|
+
- **Without the box `claude`, the first session starts plain too.** The
|
|
296
|
+
mail setup under Installation makes the box ([first checks][checks]).
|
|
297
|
+
The line names the repair:
|
|
298
|
+
|
|
299
|
+
```text
|
|
300
|
+
session start: starting plain: box claude is missing, so this session will NOT hear Delta messages or calls; repair: message setup --box claude
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Then, from your agent inside a Claude Code session, list your live
|
|
304
|
+
sessions:
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
session list
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Mail another agent, its box name in place of TO:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
message send TO -s "PR ready" -f note.md
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Speak one line:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
mouth say "the build is green"
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
- **Mail works inside a session.** `message` and `pager` read who is asking
|
|
323
|
+
from the session. A plain terminal has no session, so they refuse with
|
|
324
|
+
`no seat in the environment ... set an identity` ([first checks][checks]).
|
|
325
|
+
A send never makes a box: the address must have one already ([mail
|
|
326
|
+
between agents][mail]).
|
|
327
|
+
- **The mouth plays on your Mac's default output** when no device is set.
|
|
328
|
+
`mouth devices` lists the others, and `--device DEVICE` picks one.
|
|
329
|
+
- **To hear you**, the ears need a speech-to-text server: [hearing and
|
|
330
|
+
speaking][hearing].
|
|
331
|
+
- **Your agent talks with the kit's mouth and ears.** sessionvoice's ears
|
|
332
|
+
skill sets the default:
|
|
333
|
+
|
|
334
|
+
> **With the kit, an agent talks through the kit's own mouth and ears: it
|
|
335
|
+
> speaks with `mouth say` and listens by arming the ears with `ears-arm`. That
|
|
336
|
+
> is the default whenever the user asks it to talk, speak, listen or use voice,
|
|
337
|
+
> even on a host that also has VoiceMode's `converse` tool. It uses `converse`
|
|
338
|
+
> only when the user asks for converse by name.**
|
|
339
|
+
|
|
340
|
+
## Requirements
|
|
341
|
+
|
|
342
|
+
- [x] macOS (tested on macOS 27, Apple silicon)
|
|
343
|
+
- [ ] Linux
|
|
344
|
+
- [ ] WSL
|
|
345
|
+
- [ ] Windows
|
|
346
|
+
|
|
347
|
+
What the kit depends on, what needs each one, and how to upgrade it:
|
|
348
|
+
[dependencies][dependencies].
|
|
349
|
+
|
|
350
|
+
## Uninstall
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
claude plugin marketplace remove sessionkit
|
|
354
|
+
uv tool uninstall sessionkit
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Removing the marketplace removes its six plugins too, but not the copies they
|
|
358
|
+
ran from. Those copies, the services and your data have their own steps:
|
|
359
|
+
[uninstall][uninstall].
|
|
360
|
+
|
|
361
|
+
## Usage
|
|
362
|
+
|
|
363
|
+
Every command answers `--help`, and each has a page: [components][components].
|
|
364
|
+
|
|
365
|
+
## The family
|
|
366
|
+
|
|
367
|
+
Session Kit installs these together:
|
|
368
|
+
|
|
369
|
+
- [sessionmail][pkg-mail]: mail for coding agents. `message`, `pager` and
|
|
370
|
+
`memory` over one maildir.
|
|
371
|
+
- [sessiontools][pkg-tools]: sessions, status and idle. `session`.
|
|
372
|
+
- [sessionvoice][pkg-voice]: ambient voice. `ears` hears; `mouth` speaks.
|
|
373
|
+
- [sessionphone][pkg-phone]: phone calls to a session over Delta Chat.
|
|
374
|
+
Installed, and walked on a fresh Mac for a session started with
|
|
375
|
+
`session start <name>`. A plain `claude` session does not hear calls you
|
|
376
|
+
make to it yet.
|
|
377
|
+
- [sessionview][pkg-view]: a tmux sidebar of your projects and your agents.
|
|
378
|
+
`sessionview` (said "session view").
|
|
379
|
+
|
|
380
|
+
## Components
|
|
381
|
+
|
|
382
|
+
The commands, services and folders the install adds, and where each
|
|
383
|
+
package logs: [components][components].
|
|
384
|
+
|
|
385
|
+
## Configuration
|
|
386
|
+
|
|
387
|
+
Each package configures itself: [configuration][configuration]. How the
|
|
388
|
+
settings files stack: [the settings guide][settings].
|
|
389
|
+
|
|
390
|
+
## Logs
|
|
391
|
+
|
|
392
|
+
Each package keeps its own log: [logs][logs]. Which one to read for a
|
|
393
|
+
symptom: [troubleshooting][troubleshooting].
|
|
394
|
+
|
|
395
|
+
## Development
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
git clone https://github.com/sessionkit/sessionkit
|
|
399
|
+
cd sessionkit
|
|
400
|
+
make install
|
|
401
|
+
make check
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
`make install` installs the kit editable, with uv. `make check` runs ruff,
|
|
405
|
+
shellcheck, then the tests.
|
|
406
|
+
|
|
407
|
+
The rules for changing the kit: [AGENTS.md][agents].
|
|
408
|
+
|
|
409
|
+
## Status
|
|
410
|
+
|
|
411
|
+
Alpha, 0.3.2. Tested on macOS 27 on Apple silicon; Linux and Windows are
|
|
412
|
+
untested. What you may still hit: [known gaps][gaps].
|
|
413
|
+
|
|
414
|
+
Licence: [AGPL-3.0][licence].
|
|
415
|
+
|
|
416
|
+
[claude-code]: https://code.claude.com/docs/en/overview
|
|
417
|
+
[brew]: https://brew.sh
|
|
418
|
+
[install]: INSTALL.md
|
|
419
|
+
[prereqs]: INSTALL.md#1-prerequisites-human
|
|
420
|
+
[setup]: INSTALL.md#2-install-the-kit
|
|
421
|
+
[checks]: INSTALL.md#4-first-checks
|
|
422
|
+
[hearing]: INSTALL.md#5-hearing-and-speaking-it-hears-me-and-speaks
|
|
423
|
+
[mail]: INSTALL.md#mail-between-agents
|
|
424
|
+
[uninstall]: INSTALL.md#8-uninstall
|
|
425
|
+
[gaps]: INSTALL.md#7-known-gaps-you-will-hit
|
|
426
|
+
[components]: docs/components.md
|
|
427
|
+
[dependencies]: docs/dependencies.md
|
|
428
|
+
[logs]: docs/components.md#logs
|
|
429
|
+
[configuration]: docs/configuration.md
|
|
430
|
+
[settings]: docs/settings.md
|
|
431
|
+
[troubleshooting]: docs/troubleshooting.md
|
|
432
|
+
[agents]: AGENTS.md
|
|
433
|
+
[licence]: LICENSE
|
|
434
|
+
[pkg-mail]: https://github.com/sessionkit/sessionmail
|
|
435
|
+
[pkg-tools]: https://github.com/sessionkit/sessiontools
|
|
436
|
+
[pkg-voice]: https://github.com/sessionkit/sessionvoice
|
|
437
|
+
[pkg-phone]: https://github.com/sessionkit/sessionphone
|
|
438
|
+
[phone-signing]: https://github.com/sessionkit/sessionphone/blob/HEAD/docs/bot-mail-signing.md
|
|
439
|
+
[pkg-view]: https://github.com/sessionkit/sessionview
|