@tempr/cli 0.9.17 → 0.9.19
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 +83 -2
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -56,7 +56,13 @@ tempr # interactive session
|
|
|
56
56
|
- `tempr -c` resumes this folder's most recent session; `/resume` picks one from a list.
|
|
57
57
|
- `!command` in the REPL runs a command yourself -- `!git status` -- in this folder, and its output goes in front of your next message. No approval: it's your own command.
|
|
58
58
|
- A turn that runs 30 seconds or more rings the terminal bell when it's done or needs approval, with a desktop notification where the terminal shows one; `tempr config set-notifications off` or `TEMPR_NO_NOTIFY` turns it off.
|
|
59
|
-
- `/diff` shows what the last turn changed on disk, and `/undo` puts it back -- skipping any file that has changed since, so an undo never overwrites work it didn't make.
|
|
59
|
+
- `/diff` shows what the last turn changed on disk, and `/undo` puts it back -- skipping any file that has changed since, so an undo never overwrites work it didn't make. `/rewind` goes back to before any earlier message: its files, the conversation, or both.
|
|
60
|
+
- `--plan` (or `/plan` in the REPL) starts in plan mode: the agent looks around with read-only tools and proposes a plan, and nothing changes until you approve it.
|
|
61
|
+
- `/compact [focus]` summarizes the conversation so far so the session can go on inside the model's context; it also happens by itself near the limit.
|
|
62
|
+
- The agent can start a command in the background (a dev server, a watcher) and read its output later; `/tasks` lists them and `/tasks stop <id>` ends one. They all stop when the session ends.
|
|
63
|
+
- A model that reasons shows "✻ Thought for Ns" before each step; `--verbose` prints what it thought.
|
|
64
|
+
- `-w/--worktree <name>` runs the session in a git worktree of its own, on a new branch, so it doesn't touch this folder.
|
|
65
|
+
- `tempr history search <text>` finds past sessions by what was said in them; `tempr history export` (or `/export`) writes one out as Markdown.
|
|
60
66
|
- `tempr keys` lists your provider keys -- Tempr calls every model with your own key for its provider. `tempr keys add [provider]` adds or replaces one (no provider opens a picker), and `tempr keys remove <provider>` removes one; `/keys` does the same inside the REPL. The key is typed at a hidden prompt, piped in on stdin, or read with `--from-env VARIABLE` -- never passed as an argument, where it would land in shell history. Tempr checks it with the provider before saving it; a key the provider rejects isn't saved unless you say so or pass `--force`, and one that couldn't be checked (the provider was down, or offers no way to check) is saved with a note. Azure OpenAI, Azure AI Foundry, AWS Bedrock and custom endpoints need more than a key, so they're set up on the Portal's Provider keys page; on a Team plan, your organization's admin manages keys.
|
|
61
67
|
- `tempr models` lists the models your licence can use, with prices and context sizes; `/model` with no argument opens a picker over the same list.
|
|
62
68
|
- `tempr init` drafts an `AGENTS.md` for this workspace from a scan of what's in it.
|
|
@@ -172,6 +178,73 @@ You know this schema inside out. Prefer an index over a rewrite, and always expl
|
|
|
172
178
|
|
|
173
179
|
`/commands` and `/agents` list what's available, and both complete on Tab.
|
|
174
180
|
|
|
181
|
+
## Claude Code's files, plugins and hooks
|
|
182
|
+
|
|
183
|
+
A repository set up for Claude Code works unchanged: commands in `.claude/commands` and
|
|
184
|
+
`~/.claude/commands`, subagents in `.claude/agents` and `~/.claude/agents`, skills in
|
|
185
|
+
`~/.claude/skills`, and the project's `.mcp.json` servers. Tempr's own file of the same name wins.
|
|
186
|
+
|
|
187
|
+
**Plugins** are Claude Code's: bundles of commands, agents, skills, hooks, MCP servers and language
|
|
188
|
+
servers, installed from Claude Code's marketplaces.
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
tempr plugin marketplace add owner/repo # or a git address, a folder, a marketplace.json
|
|
192
|
+
tempr plugin list # installed, and what the marketplaces offer
|
|
193
|
+
tempr plugin install <name> # its commands are /<plugin>:<name>, its agents @<plugin>:<name>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`enable`, `disable` and `uninstall` do what they say; `/plugin` in the REPL takes the same words, and
|
|
197
|
+
`--plugin-dir <dir>` loads one from a folder for a session, for trying a plugin you're writing.
|
|
198
|
+
|
|
199
|
+
**Hooks** use Claude Code's settings format, in `~/.tempr/settings.json` and the folder's
|
|
200
|
+
`.tempr/settings.json`, `.claude/settings.json` and `.claude/settings.local.json`: PreToolUse,
|
|
201
|
+
PostToolUse, UserPromptSubmit, Stop, SessionStart, SessionEnd, Notification, PreCompact and
|
|
202
|
+
PostCompact, as commands or as prompts the model judges. `tempr hooks list` shows them.
|
|
203
|
+
|
|
204
|
+
A folder's hooks, allow rules and `.mcp.json` servers are commands someone else may have written,
|
|
205
|
+
so they wait until you allow them for that folder, once (`tempr hooks allow`, or the prompt in a
|
|
206
|
+
session), and again after any change. Lasting allow and deny rules for tools and paths
|
|
207
|
+
(`Read(./.env)`, `Bash(git push:*)`) go in the same settings files; `/permissions` lists the ones in
|
|
208
|
+
force.
|
|
209
|
+
|
|
210
|
+
**Code intelligence:** a language server from a plugin's `.lsp.json`, or under `"lspServers"` in
|
|
211
|
+
`~/.tempr/settings.json`, starts the first time the agent edits a file it handles. The edit's result
|
|
212
|
+
carries the errors and warnings it reports, so the agent fixes them without a separate build, and an
|
|
213
|
+
`lsp` tool asks it for definitions, references, hover text and symbols.
|
|
214
|
+
|
|
215
|
+
## Local models
|
|
216
|
+
|
|
217
|
+
Models on your own machine or server -- Ollama, LM Studio, llama.cpp, vLLM or anything else that
|
|
218
|
+
speaks OpenAI's chat API -- run here, talking to the server directly: nothing you send them goes
|
|
219
|
+
through Tempr's server, and they're free.
|
|
220
|
+
|
|
221
|
+
Ollama (port 11434) and LM Studio (port 1234) are found when they're running; `tempr models` lists
|
|
222
|
+
their models and `tempr doctor` says whether each one answers. Use one as `--model ollama/<model>`,
|
|
223
|
+
or set it as your default. Add any other server under `"provider"` in `~/.tempr/settings.json`, in
|
|
224
|
+
OpenCode's format:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"provider": {
|
|
229
|
+
"vllm": {
|
|
230
|
+
"options": { "baseURL": "http://192.168.1.20:8000/v1", "apiKey": "{env:VLLM_KEY}" },
|
|
231
|
+
"models": { "qwen3-coder": { "limit": { "context": 131072 }, "reasoning": true } }
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
- The agent's tools work with models that support tool calling; one that doesn't answers without
|
|
238
|
+
them and says so, and a call a model writes out as text instead of making it is run as a call.
|
|
239
|
+
- A model that thinks gets reasoning levels: `--reasoning none` turns its thinking off, which on a
|
|
240
|
+
small local model makes answers many times faster.
|
|
241
|
+
- Agent work needs a long context window. Ollama gives a model only a few thousand tokens unless
|
|
242
|
+
started with `OLLAMA_CONTEXT_LENGTH=32768` (or more), and silently drops the start of a request
|
|
243
|
+
that doesn't fit; Tempr reads the window Ollama runs the model with, and says when a request
|
|
244
|
+
didn't fit.
|
|
245
|
+
- Sub-agents, web search and fetch, and your organization's rules and skills run on Tempr's server,
|
|
246
|
+
so a local model's turn doesn't have them.
|
|
247
|
+
|
|
175
248
|
## Headless and CI
|
|
176
249
|
|
|
177
250
|
`--json` writes one event per line and then a final result object:
|
|
@@ -233,7 +306,8 @@ with `tempr auth` first, or from the editor, which offers the browser sign-in.
|
|
|
233
306
|
A new session starts on the model last picked in an editor, or on your default until you pick one
|
|
234
307
|
(`tempr config set-model` makes the default the starting model again). A reasoning level is kept
|
|
235
308
|
per model, as `/reasoning` keeps it.
|
|
236
|
-
- **Slash commands:** your command templates, plus `/undo`, `/diff` and `/
|
|
309
|
+
- **Slash commands:** your command templates, plus `/undo`, `/diff`, `/agents` and `/compact`.
|
|
310
|
+
- **Thinking:** a model's reasoning shows as the agent's thoughts, in editors that show them.
|
|
237
311
|
- **MCP servers** the editor passes run beside yours from `~/.tempr/mcp.json`; one with the same name
|
|
238
312
|
as one of yours takes its place for the session.
|
|
239
313
|
- **Command output** streams into a terminal under the call, in editors that draw one (Zed); in
|
|
@@ -247,6 +321,8 @@ setup for each editor is at <https://temprhq.io/docs/cli-editors>.
|
|
|
247
321
|
|
|
248
322
|
Everything below goes to your Tempr server (`api.temprhq.io` unless the `TEMPRAPP_SERVER_URL`
|
|
249
323
|
environment variable or a `serverUrl` entry in `~/.tempr/config.json` says otherwise), which relays model calls to the providers your license has keys for.
|
|
324
|
+
A turn on a [local model](#local-models) is the exception: it goes to that model's server instead,
|
|
325
|
+
and Tempr's server doesn't see it.
|
|
250
326
|
|
|
251
327
|
**Sent on every turn you send**
|
|
252
328
|
|
|
@@ -260,6 +336,11 @@ environment variable or a `serverUrl` entry in `~/.tempr/config.json` says other
|
|
|
260
336
|
writes commands that work on your machine, and the projects found in the current directory, with
|
|
261
337
|
their folders and build and test commands.
|
|
262
338
|
|
|
339
|
+
**Fetched when you ask for it**
|
|
340
|
+
|
|
341
|
+
- Adding a plugin marketplace or installing a plugin fetches it from where it lives (GitHub, the git
|
|
342
|
+
address or URL you gave). Plugins, hooks and language servers then run on your machine.
|
|
343
|
+
|
|
263
344
|
**Sent only if you say yes**
|
|
264
345
|
|
|
265
346
|
- Crash reports: the error type and message, the stack trace, the CLI version and your OS version.
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tempr/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.19",
|
|
4
4
|
"description": "Sign in, chat, and run agentic coding tasks against your Tempr license from the terminal.",
|
|
5
5
|
"homepage": "https://temprhq.io",
|
|
6
6
|
"license": "SEE LICENSE IN README.md",
|
|
7
7
|
"bin": { "tempr": "bin/tempr.js" },
|
|
8
8
|
"files": ["bin/"],
|
|
9
9
|
"optionalDependencies": {
|
|
10
|
-
"@tempr/cli-win32-x64": "0.9.
|
|
11
|
-
"@tempr/cli-win32-arm64": "0.9.
|
|
12
|
-
"@tempr/cli-linux-x64": "0.9.
|
|
13
|
-
"@tempr/cli-linux-arm64": "0.9.
|
|
14
|
-
"@tempr/cli-darwin-x64": "0.9.
|
|
15
|
-
"@tempr/cli-darwin-arm64": "0.9.
|
|
10
|
+
"@tempr/cli-win32-x64": "0.9.19",
|
|
11
|
+
"@tempr/cli-win32-arm64": "0.9.19",
|
|
12
|
+
"@tempr/cli-linux-x64": "0.9.19",
|
|
13
|
+
"@tempr/cli-linux-arm64": "0.9.19",
|
|
14
|
+
"@tempr/cli-darwin-x64": "0.9.19",
|
|
15
|
+
"@tempr/cli-darwin-arm64": "0.9.19"
|
|
16
16
|
}
|
|
17
17
|
}
|