rendez-cli 0.1.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.
- rendez_cli-0.1.0/LICENSE +21 -0
- rendez_cli-0.1.0/PKG-INFO +170 -0
- rendez_cli-0.1.0/README.md +151 -0
- rendez_cli-0.1.0/pyproject.toml +50 -0
- rendez_cli-0.1.0/rendez/__init__.py +1134 -0
- rendez_cli-0.1.0/rendez/__main__.py +7 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/PKG-INFO +170 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/SOURCES.txt +11 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/dependency_links.txt +1 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/entry_points.txt +2 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/requires.txt +1 -0
- rendez_cli-0.1.0/rendez_cli.egg-info/top_level.txt +1 -0
- rendez_cli-0.1.0/setup.cfg +4 -0
rendez_cli-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rendez Engine
|
|
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.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rendez-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Put your repository into a Rendez session, from your terminal
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://rendez.space
|
|
7
|
+
Project-URL: Documentation, https://rendez.space
|
|
8
|
+
Keywords: rendez,agent,collaboration,terminal
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Software Development
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: websockets>=12
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
# rendez CLI — put your repository into a session
|
|
21
|
+
|
|
22
|
+
Status: **experimental** (`DEC-021`). Files, plus shell with your
|
|
23
|
+
consent per command (`DEC-022`).
|
|
24
|
+
|
|
25
|
+
The web app is the control plane: the plan, the transcript, who is steering.
|
|
26
|
+
This puts the *files* somewhere useful — the repository already checked out on
|
|
27
|
+
your machine, instead of an empty directory on the server.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
|
|
31
|
+
|
|
32
|
+
cd ~/code/your-repo
|
|
33
|
+
rendez connect -g "add rate limiting"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Not on PyPI: the name `rendez` there belongs to an unrelated project, so the
|
|
37
|
+
distribution would be `rendez-cli` (the installed command stays `rendez`).
|
|
38
|
+
Authentication works and the server is deployed; what is still open before
|
|
39
|
+
publishing is a protocol-version handshake, so an installed CLI and a
|
|
40
|
+
redeployed server cannot drift apart silently (`DEPLOYMENT.md` §10).
|
|
41
|
+
Installing from the repository needs read access to it.
|
|
42
|
+
|
|
43
|
+
**HTTPS rather than `git+ssh`**, which assumes a GitHub SSH key that a
|
|
44
|
+
developer may not have — `gh auth login` covers HTTPS and is already how most
|
|
45
|
+
people here reach this repo. Found by installing on a machine that had no SSH
|
|
46
|
+
key. `pipx reinstall rendez-cli` picks up later commits. From a checkout,
|
|
47
|
+
`PYTHONPATH=cli python3 -m rendez connect` runs the working tree.
|
|
48
|
+
|
|
49
|
+
**A plain `pipx install` copies the source, so it silently shadows your
|
|
50
|
+
checkout.** Editing `cli/rendez/__init__.py` then changes nothing about what
|
|
51
|
+
`rendez connect` runs, and the symptom is a feature that works in tests and is
|
|
52
|
+
absent in the app -- with no error anywhere, because the installed copy is
|
|
53
|
+
older but perfectly valid. If you are developing the CLI:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pipx install --force --editable ./cli # runs your checkout, not a copy
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
To tell which one is live:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
"$(pipx environment --value PIPX_LOCAL_VENVS)/rendez-cli/bin/python" \
|
|
63
|
+
-c "import rendez, inspect; print(inspect.getfile(rendez))"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
2 recent session(s) on this repo:
|
|
68
|
+
1. add rate limiting you · 2026-09-29 14:02
|
|
69
|
+
2. fix the cart bug sam · 2026-09-28 11:40
|
|
70
|
+
|
|
71
|
+
your 1 most recent session(s) with no repository — joining one connects it here:
|
|
72
|
+
3. plan the migration you · 2026-09-27 09:15
|
|
73
|
+
|
|
74
|
+
Number to join, or Enter for a new session:
|
|
75
|
+
|
|
76
|
+
Session add rate limiting
|
|
77
|
+
Open http://localhost:3000/sessions/8f3a...
|
|
78
|
+
Workspace /Users/you/code/your-repo (main, clean)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Sessions are filed under the repository they were attached to, keyed on the
|
|
82
|
+
git remote (`DEC-023`), so a teammate's clone at a different path matches
|
|
83
|
+
yours. A repository with no remote keys on its first commit instead, which
|
|
84
|
+
means renaming or moving the checkout keeps its sessions. A folder that is
|
|
85
|
+
not a git repository has nothing stable to key on and is filed under its
|
|
86
|
+
path -- renaming it hides its sessions, and `rendez connect` says so. Your own sessions that have **no** repository follow underneath, up to
|
|
87
|
+
two of them: a session started in the browser is filed under nothing, and
|
|
88
|
+
joining one from a checkout connects it to that repository for good. They are
|
|
89
|
+
a tail rather than peers — this repository's own sessions come first and are
|
|
90
|
+
never displaced by them, because "what was already going on here?" is the
|
|
91
|
+
question the list answers. To join
|
|
92
|
+
a specific session directly — the app shows this command on its Files tab —
|
|
93
|
+
use `rendez connect --session <id>`. The header then shows the session's
|
|
94
|
+
goal rather than its id -- the id identifies the session, but it is not what
|
|
95
|
+
anyone calls it. A goal is a label, not an identifier: two sessions may share
|
|
96
|
+
one, and `--session` always takes the id. Without this, two people in one repo start parallel sessions that
|
|
97
|
+
cannot see each other's edits. Press Enter to start fresh, or `--new` to skip
|
|
98
|
+
the question. It is skipped automatically when stdin is not a terminal, so
|
|
99
|
+
scripts do not hang.
|
|
100
|
+
|
|
101
|
+
Authentication is mandatory. First sign up and verify your email in the browser,
|
|
102
|
+
then run `rendez login --api https://YOUR-API`. The CLI prompts for your
|
|
103
|
+
**username** -- not your email address (`DEC-067`) -- and your password, and
|
|
104
|
+
stores a revocable token at `~/.config/rendez/auth.json` with
|
|
105
|
+
mode 0600. `rendez logout` revokes it. `rendez connect` uses the same account
|
|
106
|
+
name as the browser. The terminal's printed session URL identifies a session;
|
|
107
|
+
use the browser Share panel to create a link or invite teammates. For a
|
|
108
|
+
link-only CLI join, supply `--session` and the link's `access` value as
|
|
109
|
+
`--share-token`.
|
|
110
|
+
|
|
111
|
+
Your teammates open an invited session in a browser — nothing to install,
|
|
112
|
+
nothing to clone. They see the transcript and the plan; the owner can grant
|
|
113
|
+
collaborator access to steer the agent. When the agent reads or writes a file, it
|
|
114
|
+
happens **here**, in your working tree, and your editor updates.
|
|
115
|
+
|
|
116
|
+
## Options
|
|
117
|
+
|
|
118
|
+
| | |
|
|
119
|
+
|---|---|
|
|
120
|
+
| `-d, --dir` | repository root (default: current directory) |
|
|
121
|
+
| `-g, --goal` | what the session is for |
|
|
122
|
+
| `-s, --session` | join an existing session instead of creating one |
|
|
123
|
+
| `-n, --new` | start a new session without being offered existing ones |
|
|
124
|
+
| `-u, --user` | your name in the room (default: `$USER`) |
|
|
125
|
+
| `--share-token` | access value from a revocable share URL |
|
|
126
|
+
| `--api` | server (default `http://localhost:8100`, or `RENDEZ_API`) |
|
|
127
|
+
| `--web` | web app, for the share link (or `RENDEZ_WEB`) |
|
|
128
|
+
|
|
129
|
+
Requires `websockets`. Only the session **owner** may attach a workspace —
|
|
130
|
+
normally the person who created it, which `connect` does for you.
|
|
131
|
+
|
|
132
|
+
## What it does, exactly
|
|
133
|
+
|
|
134
|
+
Three operations, forwarded from the server and run against your tree:
|
|
135
|
+
|
|
136
|
+
- `read_file` · `write_file` · `list_dir`
|
|
137
|
+
|
|
138
|
+
Paths are resolved and refused if they leave the root. `.git`,
|
|
139
|
+
`node_modules`, `__pycache__`, `.next` and `.venv` are hidden from listings.
|
|
140
|
+
Files over 256KB are refused in both directions — a tool result re-enters the
|
|
141
|
+
model's history on every later request (`DEC-020`), so a large file is paid
|
|
142
|
+
for every turn, not once.
|
|
143
|
+
|
|
144
|
+
## What it does not do
|
|
145
|
+
|
|
146
|
+
- **Shell asks first** (`DEC-022`). `ls`, `cat`, `grep` and similar run
|
|
147
|
+
unprompted; anything else prompts you in this terminal — `y` once, `a`
|
|
148
|
+
always for that exact command this session, `n` no. Only you can answer:
|
|
149
|
+
it is your machine. A redirect kills the command's whole process group, so
|
|
150
|
+
an interrupted `npm test` does not leave its runner behind.
|
|
151
|
+
- **The watcher warns, it does not prevent.** Edit a file the agent is
|
|
152
|
+
working on and the session notices within ~1.5s and tells the agent on its
|
|
153
|
+
next turn. It does not stop the write that already happened, and only files
|
|
154
|
+
the agent has touched are watched.
|
|
155
|
+
- **No git.** Branch and dirty state are shown for context. Nothing commits,
|
|
156
|
+
pushes or checks out.
|
|
157
|
+
- **No second host.** One machine per session. Close your laptop and the
|
|
158
|
+
session has no filesystem until you reconnect; in-flight calls fail
|
|
159
|
+
immediately rather than hanging.
|
|
160
|
+
|
|
161
|
+
## Be aware
|
|
162
|
+
|
|
163
|
+
Anyone who can steer the session can make the agent read and write files in
|
|
164
|
+
this directory. Confinement to the root is a path check, not a sandbox: a
|
|
165
|
+
`.env` **inside** the repository is inside the repository. Run this on repos
|
|
166
|
+
you would screen-share, with people you would screen-share to.
|
|
167
|
+
|
|
168
|
+
For isolated automation, `RENDEZ_AUTH_FILE` overrides the default CLI login
|
|
169
|
+
cache path (`~/.config/rendez/auth.json`). The managed test runner uses a private
|
|
170
|
+
temporary cache so tests cannot replace a developer's saved credentials.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# rendez CLI — put your repository into a session
|
|
2
|
+
|
|
3
|
+
Status: **experimental** (`DEC-021`). Files, plus shell with your
|
|
4
|
+
consent per command (`DEC-022`).
|
|
5
|
+
|
|
6
|
+
The web app is the control plane: the plan, the transcript, who is steering.
|
|
7
|
+
This puts the *files* somewhere useful — the repository already checked out on
|
|
8
|
+
your machine, instead of an empty directory on the server.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
|
|
12
|
+
|
|
13
|
+
cd ~/code/your-repo
|
|
14
|
+
rendez connect -g "add rate limiting"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Not on PyPI: the name `rendez` there belongs to an unrelated project, so the
|
|
18
|
+
distribution would be `rendez-cli` (the installed command stays `rendez`).
|
|
19
|
+
Authentication works and the server is deployed; what is still open before
|
|
20
|
+
publishing is a protocol-version handshake, so an installed CLI and a
|
|
21
|
+
redeployed server cannot drift apart silently (`DEPLOYMENT.md` §10).
|
|
22
|
+
Installing from the repository needs read access to it.
|
|
23
|
+
|
|
24
|
+
**HTTPS rather than `git+ssh`**, which assumes a GitHub SSH key that a
|
|
25
|
+
developer may not have — `gh auth login` covers HTTPS and is already how most
|
|
26
|
+
people here reach this repo. Found by installing on a machine that had no SSH
|
|
27
|
+
key. `pipx reinstall rendez-cli` picks up later commits. From a checkout,
|
|
28
|
+
`PYTHONPATH=cli python3 -m rendez connect` runs the working tree.
|
|
29
|
+
|
|
30
|
+
**A plain `pipx install` copies the source, so it silently shadows your
|
|
31
|
+
checkout.** Editing `cli/rendez/__init__.py` then changes nothing about what
|
|
32
|
+
`rendez connect` runs, and the symptom is a feature that works in tests and is
|
|
33
|
+
absent in the app -- with no error anywhere, because the installed copy is
|
|
34
|
+
older but perfectly valid. If you are developing the CLI:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pipx install --force --editable ./cli # runs your checkout, not a copy
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
To tell which one is live:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
"$(pipx environment --value PIPX_LOCAL_VENVS)/rendez-cli/bin/python" \
|
|
44
|
+
-c "import rendez, inspect; print(inspect.getfile(rendez))"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
2 recent session(s) on this repo:
|
|
49
|
+
1. add rate limiting you · 2026-09-29 14:02
|
|
50
|
+
2. fix the cart bug sam · 2026-09-28 11:40
|
|
51
|
+
|
|
52
|
+
your 1 most recent session(s) with no repository — joining one connects it here:
|
|
53
|
+
3. plan the migration you · 2026-09-27 09:15
|
|
54
|
+
|
|
55
|
+
Number to join, or Enter for a new session:
|
|
56
|
+
|
|
57
|
+
Session add rate limiting
|
|
58
|
+
Open http://localhost:3000/sessions/8f3a...
|
|
59
|
+
Workspace /Users/you/code/your-repo (main, clean)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Sessions are filed under the repository they were attached to, keyed on the
|
|
63
|
+
git remote (`DEC-023`), so a teammate's clone at a different path matches
|
|
64
|
+
yours. A repository with no remote keys on its first commit instead, which
|
|
65
|
+
means renaming or moving the checkout keeps its sessions. A folder that is
|
|
66
|
+
not a git repository has nothing stable to key on and is filed under its
|
|
67
|
+
path -- renaming it hides its sessions, and `rendez connect` says so. Your own sessions that have **no** repository follow underneath, up to
|
|
68
|
+
two of them: a session started in the browser is filed under nothing, and
|
|
69
|
+
joining one from a checkout connects it to that repository for good. They are
|
|
70
|
+
a tail rather than peers — this repository's own sessions come first and are
|
|
71
|
+
never displaced by them, because "what was already going on here?" is the
|
|
72
|
+
question the list answers. To join
|
|
73
|
+
a specific session directly — the app shows this command on its Files tab —
|
|
74
|
+
use `rendez connect --session <id>`. The header then shows the session's
|
|
75
|
+
goal rather than its id -- the id identifies the session, but it is not what
|
|
76
|
+
anyone calls it. A goal is a label, not an identifier: two sessions may share
|
|
77
|
+
one, and `--session` always takes the id. Without this, two people in one repo start parallel sessions that
|
|
78
|
+
cannot see each other's edits. Press Enter to start fresh, or `--new` to skip
|
|
79
|
+
the question. It is skipped automatically when stdin is not a terminal, so
|
|
80
|
+
scripts do not hang.
|
|
81
|
+
|
|
82
|
+
Authentication is mandatory. First sign up and verify your email in the browser,
|
|
83
|
+
then run `rendez login --api https://YOUR-API`. The CLI prompts for your
|
|
84
|
+
**username** -- not your email address (`DEC-067`) -- and your password, and
|
|
85
|
+
stores a revocable token at `~/.config/rendez/auth.json` with
|
|
86
|
+
mode 0600. `rendez logout` revokes it. `rendez connect` uses the same account
|
|
87
|
+
name as the browser. The terminal's printed session URL identifies a session;
|
|
88
|
+
use the browser Share panel to create a link or invite teammates. For a
|
|
89
|
+
link-only CLI join, supply `--session` and the link's `access` value as
|
|
90
|
+
`--share-token`.
|
|
91
|
+
|
|
92
|
+
Your teammates open an invited session in a browser — nothing to install,
|
|
93
|
+
nothing to clone. They see the transcript and the plan; the owner can grant
|
|
94
|
+
collaborator access to steer the agent. When the agent reads or writes a file, it
|
|
95
|
+
happens **here**, in your working tree, and your editor updates.
|
|
96
|
+
|
|
97
|
+
## Options
|
|
98
|
+
|
|
99
|
+
| | |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `-d, --dir` | repository root (default: current directory) |
|
|
102
|
+
| `-g, --goal` | what the session is for |
|
|
103
|
+
| `-s, --session` | join an existing session instead of creating one |
|
|
104
|
+
| `-n, --new` | start a new session without being offered existing ones |
|
|
105
|
+
| `-u, --user` | your name in the room (default: `$USER`) |
|
|
106
|
+
| `--share-token` | access value from a revocable share URL |
|
|
107
|
+
| `--api` | server (default `http://localhost:8100`, or `RENDEZ_API`) |
|
|
108
|
+
| `--web` | web app, for the share link (or `RENDEZ_WEB`) |
|
|
109
|
+
|
|
110
|
+
Requires `websockets`. Only the session **owner** may attach a workspace —
|
|
111
|
+
normally the person who created it, which `connect` does for you.
|
|
112
|
+
|
|
113
|
+
## What it does, exactly
|
|
114
|
+
|
|
115
|
+
Three operations, forwarded from the server and run against your tree:
|
|
116
|
+
|
|
117
|
+
- `read_file` · `write_file` · `list_dir`
|
|
118
|
+
|
|
119
|
+
Paths are resolved and refused if they leave the root. `.git`,
|
|
120
|
+
`node_modules`, `__pycache__`, `.next` and `.venv` are hidden from listings.
|
|
121
|
+
Files over 256KB are refused in both directions — a tool result re-enters the
|
|
122
|
+
model's history on every later request (`DEC-020`), so a large file is paid
|
|
123
|
+
for every turn, not once.
|
|
124
|
+
|
|
125
|
+
## What it does not do
|
|
126
|
+
|
|
127
|
+
- **Shell asks first** (`DEC-022`). `ls`, `cat`, `grep` and similar run
|
|
128
|
+
unprompted; anything else prompts you in this terminal — `y` once, `a`
|
|
129
|
+
always for that exact command this session, `n` no. Only you can answer:
|
|
130
|
+
it is your machine. A redirect kills the command's whole process group, so
|
|
131
|
+
an interrupted `npm test` does not leave its runner behind.
|
|
132
|
+
- **The watcher warns, it does not prevent.** Edit a file the agent is
|
|
133
|
+
working on and the session notices within ~1.5s and tells the agent on its
|
|
134
|
+
next turn. It does not stop the write that already happened, and only files
|
|
135
|
+
the agent has touched are watched.
|
|
136
|
+
- **No git.** Branch and dirty state are shown for context. Nothing commits,
|
|
137
|
+
pushes or checks out.
|
|
138
|
+
- **No second host.** One machine per session. Close your laptop and the
|
|
139
|
+
session has no filesystem until you reconnect; in-flight calls fail
|
|
140
|
+
immediately rather than hanging.
|
|
141
|
+
|
|
142
|
+
## Be aware
|
|
143
|
+
|
|
144
|
+
Anyone who can steer the session can make the agent read and write files in
|
|
145
|
+
this directory. Confinement to the root is a path check, not a sandbox: a
|
|
146
|
+
`.env` **inside** the repository is inside the repository. Run this on repos
|
|
147
|
+
you would screen-share, with people you would screen-share to.
|
|
148
|
+
|
|
149
|
+
For isolated automation, `RENDEZ_AUTH_FILE` overrides the default CLI login
|
|
150
|
+
cache path (`~/.config/rendez/auth.json`). The managed test runner uses a private
|
|
151
|
+
temporary cache so tests cannot replace a developer's saved credentials.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Packaging for the terminal client (`DEPLOYMENT.md` §10).
|
|
2
|
+
#
|
|
3
|
+
# The distribution is `rendez-cli` because `rendez` on PyPI is taken: version
|
|
4
|
+
# 1.2.1, "REUNION Authors", an unrelated cryptography library. The installed
|
|
5
|
+
# command is still `rendez` -- a distribution name and its entry points need
|
|
6
|
+
# not match.
|
|
7
|
+
#
|
|
8
|
+
# Published to PyPI as `rendez-cli` (`DEC-092`). The source repository is
|
|
9
|
+
# private, so no `Source` URL is advertised -- a link a stranger cannot open is
|
|
10
|
+
# worse than none. Installing from the repo still works for people with access:
|
|
11
|
+
#
|
|
12
|
+
# pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
|
|
13
|
+
[build-system]
|
|
14
|
+
requires = ["setuptools>=68"]
|
|
15
|
+
build-backend = "setuptools.build_meta"
|
|
16
|
+
|
|
17
|
+
[project]
|
|
18
|
+
name = "rendez-cli"
|
|
19
|
+
version = "0.1.0"
|
|
20
|
+
description = "Put your repository into a Rendez session, from your terminal"
|
|
21
|
+
readme = "README.md"
|
|
22
|
+
license = "MIT"
|
|
23
|
+
# The CLI only. `server/`, `site/` and `docs/` are not covered and are not
|
|
24
|
+
# published -- the repository they live in is private (`DEC-092`).
|
|
25
|
+
license-files = ["LICENSE"]
|
|
26
|
+
requires-python = ">=3.10"
|
|
27
|
+
keywords = ["rendez", "agent", "collaboration", "terminal"]
|
|
28
|
+
classifiers = [
|
|
29
|
+
"Development Status :: 3 - Alpha",
|
|
30
|
+
"Environment :: Console",
|
|
31
|
+
"Intended Audience :: Developers",
|
|
32
|
+
"Programming Language :: Python :: 3",
|
|
33
|
+
"Topic :: Software Development",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
# `websockets` is the only non-stdlib import. Floored rather than pinned: the
|
|
37
|
+
# server pins 16.1.1 because a deploy pulls whatever is current at build time,
|
|
38
|
+
# but a CLI is installed once by a person who may already have a newer one.
|
|
39
|
+
dependencies = ["websockets>=12"]
|
|
40
|
+
|
|
41
|
+
[project.urls]
|
|
42
|
+
Homepage = "https://rendez.space"
|
|
43
|
+
Documentation = "https://rendez.space"
|
|
44
|
+
# Issues: no public tracker; the repository is private. hello@rendez.space.
|
|
45
|
+
|
|
46
|
+
[project.scripts]
|
|
47
|
+
rendez = "rendez:main"
|
|
48
|
+
|
|
49
|
+
[tool.setuptools]
|
|
50
|
+
packages = ["rendez"]
|