tessl 0.81.3 → 0.83.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.
- package/README.md +78 -18
- package/bin/tessl.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,33 +1,93 @@
|
|
|
1
|
-
#
|
|
1
|
+
# M: The CLI that briefs your agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- Create your own internal docs and share with your team
|
|
5
|
+
## Overview
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
`m` is a CLI that also serves as an MCP (Model Context Protocol) server for AI agents. It manages local context steering, agent steering, and CLI tools to manage plugins and workspaces.
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
The CLI acts as a bridge between your local development environment and the Tessl platform, providing agents with the context they need to be effective in your project.
|
|
11
10
|
|
|
12
|
-
##
|
|
11
|
+
## Key Features
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
- **MCP Server**: Exposes tools for AI agents to interact with your local plugins and get contextual recommendations
|
|
14
|
+
- **Project Setup**: search and install plugins relevant to your project.
|
|
15
|
+
- **Workspace Operations**: Create and manage workspaces, handle team members.
|
|
16
|
+
- **Plugin Management**: publish and archive plugins in the registry.
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
## Development
|
|
19
|
+
|
|
20
|
+
### Environment Setup
|
|
21
|
+
|
|
22
|
+
This will install the dependencies for a dev environment:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
./scripts/setup.sh
|
|
26
|
+
bun install
|
|
18
27
|
```
|
|
19
28
|
|
|
20
|
-
|
|
29
|
+
Functionally, the setup script installs brew, runs `brew bundle` and copies the .env if it is missing.
|
|
30
|
+
|
|
31
|
+
### WorkOS setup for workspace and plugin publishing development
|
|
32
|
+
|
|
33
|
+
> [!WARNING]
|
|
34
|
+
> `m` runs against Tessl's API and WorkOS in production by default, which minimises setup and works well for read-only use cases.
|
|
21
35
|
|
|
22
|
-
|
|
36
|
+
If you're testing workspace-related or plugin publishing functionality, you probably want to run against the development API instead.
|
|
37
|
+
You can do this by following the setup instructions for running via Tilt in the [backend repo](https://github.com/tesslio/backend) and copying `TESSL_API_BASE_URL` and `WORKOS_CLIENT_ID` from [.env.example](./.env.example) to point the CLI at it.
|
|
23
38
|
|
|
24
|
-
|
|
39
|
+
### Useful Commands
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bun dev # Run the CLI in dev mode
|
|
43
|
+
bun mcp # Run the MCP server in dev mode
|
|
44
|
+
bunx @modelcontextprotocol/inspector bun mcp # Inspect the MCP server
|
|
45
|
+
|
|
46
|
+
bun format # Format
|
|
47
|
+
bun lint # Lint source code (typecheck + oxlint + ast-grep)
|
|
48
|
+
bun test # Run the test suite
|
|
49
|
+
bun flat # Convenience: runs format, lint and test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
To run the dev CLI from outside the `m` directory, symlink `contrib/tessl-local.sh` to your PATH:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
ln -s /path/to/m/contrib/tessl-local.sh /usr/local/bin/tessl-local
|
|
56
|
+
tessl-local api /v1/workspaces # works from anywhere
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The script resolves its own location (even through symlinks), loads `.env` from the project root, and runs from source.
|
|
60
|
+
|
|
61
|
+
### Visual Integration Tests
|
|
62
|
+
|
|
63
|
+
The CLI uses VHS (Video Home System) for visual integration testing. These tests record terminal sessions as code, validating CLI behavior and generating visual documentation.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
bun tape workspace list # Run specific test
|
|
67
|
+
bun tape --all # Run all visual tests
|
|
68
|
+
bun tape --all --format gif,mp4 # Generate video recordings
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Syncing API types
|
|
72
|
+
|
|
73
|
+
To update the types in [src/infrastructure/api/types.ts](./src/infrastructure/api/types.ts) to match the backend, run:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
bun update-client-types # Runs against dev, requires you to be running backend locally
|
|
77
|
+
|
|
78
|
+
## Or to run against the production API
|
|
79
|
+
bun update-client-types:prod
|
|
80
|
+
```
|
|
25
81
|
|
|
26
|
-
|
|
82
|
+
### Testing github actions locally
|
|
27
83
|
|
|
28
|
-
|
|
84
|
+
1. `brew install act rancher-desktop`
|
|
85
|
+
2. Add `NPM_TOKEN_TILEWORKS_READ=` (and other keys) to `.secrets`
|
|
86
|
+
- use your `~/.npmrc` for your npm token. 1password likely has the other keys
|
|
87
|
+
3. `export DOCKER_HOST=$(docker context inspect --format '{{.Endpoints.docker.Host}}')`
|
|
88
|
+
4. Run `act` to test a workflow.
|
|
89
|
+
- eg: `act workflow_dispatch --job release --input tag="cli-release-nightly-251103" --artifact-server-path ./build`
|
|
29
90
|
|
|
30
|
-
##
|
|
91
|
+
## Contributing
|
|
31
92
|
|
|
32
|
-
|
|
33
|
-
- [Privacy Policy](https://tessl.io/policies/privacy-cookies)
|
|
93
|
+
For detailed development guidelines, see [AGENTS.md](./AGENTS.md).
|
package/bin/tessl.js
CHANGED
|
@@ -327,7 +327,7 @@ function printUnsupportedPlatformMessage() {
|
|
|
327
327
|
async function prepareBinary() {
|
|
328
328
|
const tesslBinPath = getTesslBinPath();
|
|
329
329
|
const existingBinary = await getExistingBinaryPath(tesslBinPath);
|
|
330
|
-
const installerVersion = "0.
|
|
330
|
+
const installerVersion = "0.83.0";
|
|
331
331
|
const isTestOrDevBuild = installerVersion.includes("test") || installerVersion.includes("dev");
|
|
332
332
|
let versionMismatch = false;
|
|
333
333
|
if (isTestOrDevBuild && existingBinary) {
|