@tempr/cli 0.9.16 → 0.9.18

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.
Files changed (2) hide show
  1. package/README.md +83 -2
  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 `/agents`.
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.16",
3
+ "version": "0.9.18",
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.16",
11
- "@tempr/cli-win32-arm64": "0.9.16",
12
- "@tempr/cli-linux-x64": "0.9.16",
13
- "@tempr/cli-linux-arm64": "0.9.16",
14
- "@tempr/cli-darwin-x64": "0.9.16",
15
- "@tempr/cli-darwin-arm64": "0.9.16"
10
+ "@tempr/cli-win32-x64": "0.9.18",
11
+ "@tempr/cli-win32-arm64": "0.9.18",
12
+ "@tempr/cli-linux-x64": "0.9.18",
13
+ "@tempr/cli-linux-arm64": "0.9.18",
14
+ "@tempr/cli-darwin-x64": "0.9.18",
15
+ "@tempr/cli-darwin-arm64": "0.9.18"
16
16
  }
17
17
  }