@oxis-dev/tessra 2.14.1 → 2.17.1
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 +193 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,197 @@
|
|
|
1
|
-
|
|
1
|
+
# Tessra
|
|
2
|
+
|
|
3
|
+
Semantic code intelligence engine for AI agents. Tessra indexes your codebase and exposes it to Claude Code (and any MCP-compatible AI) through a local MCP server — giving agents full call graphs, symbol lookup, smart context, and multi-repo awareness without reading raw files.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @oxis-dev/tessra
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Requires a valid Tessra license. Get one at [oxis.dev/tessra](https://oxis.dev/tessra).
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Quick start
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 1. Activate your license
|
|
19
|
+
tessra auth <your-license-key>
|
|
20
|
+
|
|
21
|
+
# 2. Register your project and start the daemon
|
|
22
|
+
tessra repo add . --name myapp
|
|
23
|
+
tessra repo use myapp
|
|
24
|
+
tessra mcp # starts the MCP server (used by Claude Code)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Add Tessra to your Claude Code MCP config (`~/.claude/claude_desktop_config.json` or `.claude/settings.json`):
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"mcpServers": {
|
|
32
|
+
"tessra": {
|
|
33
|
+
"command": "tessra",
|
|
34
|
+
"args": ["mcp"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Multi-repo & workspaces
|
|
43
|
+
|
|
44
|
+
Tessra maintains a **persistent catalog** (`~/.tessra/repos.json`) so you can switch projects without restarting the MCP server.
|
|
45
|
+
|
|
46
|
+
### Register repos
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
tessra repo add . # register CWD (uses directory name)
|
|
50
|
+
tessra repo add /projects/api --name api # register with explicit name
|
|
51
|
+
tessra here # auto-detect git root, register + activate
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Switch active repo
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
tessra repo use api # activate; triggers live indexing if daemon is running
|
|
58
|
+
tessra repo current # print active: "api" or "workspace:stack" or "(none)"
|
|
59
|
+
tessra repo list # list all registered repos with status
|
|
60
|
+
tessra repo remove old-svc # remove from catalog
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Workspaces (multi-repo)
|
|
64
|
+
|
|
65
|
+
Group repos into a named workspace and activate them all at once:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
tessra workspace create cbb-stack --repos cbb_express,cbb_admin
|
|
69
|
+
tessra workspace use cbb-stack # activates both repos; deactivates any single repo
|
|
70
|
+
tessra workspace list
|
|
71
|
+
tessra workspace remove cbb-stack
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
When a workspace is active, all repos in it are indexed and available to the agent simultaneously.
|
|
75
|
+
|
|
76
|
+
**XOR rule:** `active_repo` and `active_workspace` are mutually exclusive. Activating one clears the other.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Session scope (multi-repo)
|
|
81
|
+
|
|
82
|
+
When multiple repos are indexed, each MCP connection automatically resolves a **session scope** so the agent only sees symbols of the active repo — avoiding silent wrong-repo context.
|
|
83
|
+
|
|
84
|
+
### Scope resolution order
|
|
85
|
+
|
|
86
|
+
On every `initialize` handshake Tessra resolves the scope in this priority:
|
|
2
87
|
|
|
3
|
-
|
|
88
|
+
1. `workspaceRoot` sent by the client (Claude Code / VS Code sends this automatically)
|
|
89
|
+
2. `--workspace <name|path>` flag on `tessra mcp`
|
|
90
|
+
3. `TESSRA_WORKSPACE` environment variable
|
|
91
|
+
4. CWD git root at daemon startup matched against the catalog
|
|
92
|
+
5. No match → error with actionable instructions
|
|
4
93
|
|
|
5
|
-
|
|
94
|
+
### Cross-repo queries
|
|
6
95
|
|
|
7
|
-
|
|
96
|
+
All search tools accept an optional `repo` parameter to query a specific repo regardless of session scope:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
find("processPayment", repo="payments-api")
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
For intentional cross-repo lookups use the dedicated tool:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
get_cross(symbol="processPayment", from_repo="payments-api")
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Scope info in `tessra doctor`
|
|
109
|
+
|
|
110
|
+
`tessra doctor` now shows the resolved MCP scope so you can verify what the agent will see before starting a session.
|
|
111
|
+
|
|
112
|
+
### Startup order (no `--roots` flag)
|
|
113
|
+
|
|
114
|
+
When `tessra mcp` starts without `--roots`, it resolves context in this order:
|
|
115
|
+
|
|
116
|
+
1. Active workspace → loads all workspace repos
|
|
117
|
+
2. Active repo → loads that repo
|
|
118
|
+
3. CWD is a git repo → loads it with a warning ("run `tessra here` to register")
|
|
119
|
+
4. None of the above → error with instructions
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## CLI reference
|
|
124
|
+
|
|
125
|
+
### Repo management
|
|
126
|
+
|
|
127
|
+
| Command | Description |
|
|
128
|
+
|---------|-------------|
|
|
129
|
+
| `tessra repo add [path] [--name N]` | Register a repo in the catalog (does not activate) |
|
|
130
|
+
| `tessra repo use <name>` | Activate repo; triggers live indexing if daemon is running |
|
|
131
|
+
| `tessra repo current` | Print active repo or workspace (one line) |
|
|
132
|
+
| `tessra repo list` | List all registered repos with states |
|
|
133
|
+
| `tessra repo remove <name>` | Remove from catalog |
|
|
134
|
+
| `tessra here` | Detect git root from CWD, register if needed, activate |
|
|
135
|
+
|
|
136
|
+
### Workspace management
|
|
137
|
+
|
|
138
|
+
| Command | Description |
|
|
139
|
+
|---------|-------------|
|
|
140
|
+
| `tessra workspace create <name> --repos a,b` | Create a named workspace |
|
|
141
|
+
| `tessra workspace use <name>` | Activate workspace (validates all repos first) |
|
|
142
|
+
| `tessra workspace list` | List registered workspaces |
|
|
143
|
+
| `tessra workspace remove <name>` | Remove a workspace |
|
|
144
|
+
|
|
145
|
+
### Diagnostics
|
|
146
|
+
|
|
147
|
+
| Command | Description |
|
|
148
|
+
|---------|-------------|
|
|
149
|
+
| `tessra status` | Active repo/workspace with origin + per-repo states |
|
|
150
|
+
| `tessra doctor` | Health check: repos.json, daemon, individual repos (✔ / ⚠ / ✖) |
|
|
151
|
+
|
|
152
|
+
### Other
|
|
153
|
+
|
|
154
|
+
| Command | Description |
|
|
155
|
+
|---------|-------------|
|
|
156
|
+
| `tessra auth <key>` | Activate license |
|
|
157
|
+
| `tessra login` | Browser-based login (no key needed) |
|
|
158
|
+
| `tessra mcp [--roots dir1 dir2] [--workspace name\|path]` | Start MCP server (reads catalog if no `--roots`); `--workspace` fuerza el scope de sesión |
|
|
159
|
+
| `tessra stats` | Show indexing stats and token savings |
|
|
160
|
+
| `tessra prompt` | Print the recommended system prompt for agents |
|
|
161
|
+
| `tessra telemetry status\|enable\|disable` | Manage telemetry consent |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## MCP tools exposed to the agent
|
|
166
|
+
|
|
167
|
+
| Tool | Description |
|
|
168
|
+
|------|-------------|
|
|
169
|
+
| `find` | Locate a symbol by name (exact / prefix / partial); acepta `repo?` para override de scope |
|
|
170
|
+
| `get_context` | Working context for a symbol; acepta `repo?` para override de scope |
|
|
171
|
+
| `get_extended` | Extended context including framework extras (Angular template, Flutter binding) |
|
|
172
|
+
| `get_related` | Related symbols up / down / both; acepta `repo?` para override de scope |
|
|
173
|
+
| `trace_origin` | Trace from a symbol to its application root; acepta `repo?` para override de scope |
|
|
174
|
+
| `get_impact` | Symbols affected by changing a target; acepta `repo?` para override de scope |
|
|
175
|
+
| `get_outline` | File structure (signatures + imports only) |
|
|
176
|
+
| `read_lines` | Raw lines by path + line range |
|
|
177
|
+
| `repo_info` | Stats for all active repos |
|
|
178
|
+
| `get_dependencies` | External deps from active repositories |
|
|
179
|
+
| `get_metrics` | Token savings summary |
|
|
180
|
+
| `repo_add` | Register a repo from inside Claude Code |
|
|
181
|
+
| `repo_use` | Switch active repo from inside Claude Code |
|
|
182
|
+
| `repo_list` | List registered repos from inside Claude Code |
|
|
183
|
+
| `repo_current` | Current active repo/workspace |
|
|
184
|
+
| `get_cross` | Lookup a symbol in a specific repo regardless of session scope |
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Supported languages
|
|
189
|
+
|
|
190
|
+
Angular · Django · Flutter/GetX · TypeScript · JavaScript · Python · Rust · Go · Java · Kotlin · C# · PHP · Ruby · SQL · Svelte · Vue · Astro
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## License
|
|
8
195
|
|
|
9
|
-
|
|
196
|
+
Tessra is proprietary software by [Oxis](https://oxis.dev).
|
|
197
|
+
A valid subscription is required. Visit [oxis.dev/tessra](https://oxis.dev/tessra) for pricing.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxis-dev/tessra",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.17.1",
|
|
4
4
|
"description": "MCP server for AI coding tools and agents. Provides semantic codebase context for Cursor, Claude Code, Codex, Copilot, Antigravity, and CLI workflows without requiring full file uploads.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": {
|