Skip to content

Commit 687ae44

Browse files
Clean up local launch wording
1 parent 4107e31 commit 687ae44

4 files changed

Lines changed: 18 additions & 20 deletions

File tree

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ kontext start
3636

3737
This starts the currently supported adapter, Claude Code, with a local Kontext runtime. No hosted login is required.
3838

39-
By default, Kontext runs in observe mode: the agent keeps running, while Kontext records `would allow`, `would ask`, and `would deny` decisions in the local dashboard. The dashboard is served on loopback, with the URL printed at startup.
39+
By default, Kontext runs in observe mode: the agent keeps running, while Kontext records `would allow` and `would deny` decisions in the local dashboard. The dashboard is served on loopback, with the URL printed at startup.
4040

4141
To block supported risky pre-tool actions, start in enforce mode:
4242

@@ -46,11 +46,11 @@ KONTEXT_MODE=enforce kontext start
4646

4747
## Core features
4848

49-
Kontext balances security and utility for AI agents: low-risk actions keep moving, sensitive actions require approval, and unsafe actions can be blocked before they execute.
49+
Kontext balances security and utility for AI agents: low-risk actions keep moving, and unsafe actions can be blocked before they execute.
5050

5151
- **Audit trails:** Record who instructed which agent to do what, what the agent accessed, which tools it called, what policy decisions were made, and what happened next. Build a chain of custody for security review, incident investigation, and compliance evidence.
52-
- **Deterministic policy:** Apply `allow`, `ask`, and `deny` rules to agent actions at runtime, before they execute. Use hard policies for known boundaries such as destructive commands, production resources, sensitive files, data exports, and credential access.
53-
- **Probabilistic risk detection:** Route actions that deterministic policy allows through a local judge for an additional allow/deny decision without sending tool context to hosted services.
52+
- **Deterministic policy:** Apply `allow` and `deny` rules to agent actions at runtime, before they execute. Use hard policies for known boundaries such as destructive commands, production resources, sensitive files, data exports, and credential access.
53+
- **Local LLM judge:** Route actions that deterministic policy allows through a local judge for an additional allow/deny decision without sending tool context to hosted services.
5454
- **Credential injection:** Inject scoped OAuth credentials at runtime using RFC 8693-compliant OAuth 2.0 Token Exchange, so agents can access approved tools without users pasting secrets into chat, config files, or project environments. Credentials can be short-lived, least-privilege, and bound to the current user, session, or workflow.
5555

5656
The local decision path is:
@@ -61,8 +61,8 @@ Agent tool call
6161
-> local runtime socket
6262
-> action classification
6363
-> deterministic policy
64-
-> probabilistic risk score
65-
-> allow / ask / deny
64+
-> local LLM judge
65+
-> allow / deny
6666
-> local dashboard
6767
```
6868

@@ -90,7 +90,7 @@ For enterprise identity, audit retention, organization controls, deployment plan
9090
| Default | Behavior |
9191
| --- | --- |
9292
| Local evaluation | Default `kontext start` does not require hosted login or trace upload. |
93-
| Observe mode | Decisions are recorded as `would allow`, `would ask`, or `would deny` without blocking the agent. |
93+
| Observe mode | Decisions are recorded as `would allow` or `would deny` without blocking the agent. |
9494
| Loopback dashboard | The local dashboard binds to loopback by default. |
9595
| Redacted storage | Tool events and decisions are stored locally with redaction. |
9696
| No reasoning capture | Kontext captures tool events and outcomes, not LLM reasoning, token usage, or full conversation history. |
@@ -118,7 +118,7 @@ kontext start
118118
|-- Local runtime: Unix socket service + RuntimeCore
119119
|-- Local dashboard: 127.0.0.1:4765
120120
|-- Deterministic policy: curated rule categories + active profile
121-
|-- Probabilistic risk: score + ask escalation for ambiguous actions
121+
|-- Local LLM judge: localhost allow/deny decision after deterministic allow
122122
|-- Store: local SQLite with redacted events and decision metadata
123123
```
124124

docs/guard.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,19 @@
22

33
Guard is the local safety mode inside `kontext`.
44

5-
It lets a developer run Claude Code normally while Kontext watches tool calls locally, redacts captured data, stores events in local SQLite, and shows a local dashboard with `would allow`, `would ask`, and `would deny` decisions.
5+
It lets a developer run Claude Code normally while Kontext watches tool calls locally, redacts captured data, stores events in local SQLite, and shows a local dashboard with `would allow` and `would deny` decisions.
66

77
## User path
88

99
```bash
1010
brew install kontext-security/tap/kontext
11-
kontext guard start
12-
claude
11+
kontext start
1312
```
1413

1514
Until the Guard PR is merged and released, test from source:
1615

1716
```bash
18-
go run ./cmd/kontext guard start
19-
claude
17+
go run ./cmd/kontext start
2018
```
2119

2220
## Runtime boundary
@@ -31,10 +29,10 @@ Guard mode is local-first by default:
3129
- embedded local dashboard
3230
- observe mode by default
3331

34-
Hosted mode remains separate:
32+
Hosted managed mode remains separate:
3533

3634
```bash
37-
kontext start --agent claude
35+
kontext start --managed --agent claude
3836
```
3937

4038
Hosted mode owns login, provider connection, short-lived scoped credentials, hosted traces, and team governance.
@@ -61,7 +59,7 @@ Guard uses two layers:
6159

6260
## Local judge
6361

64-
Guard can optionally call a localhost OpenAI-compatible judge, such as `llama-server`, after deterministic rules allow a blocking tool call:
62+
The user-facing `kontext start` path manages a local judge by default. For daemon-only diagnostics, Guard can call a localhost OpenAI-compatible judge, such as `llama-server`, after deterministic rules allow a blocking tool call:
6563

6664
```bash
6765
kontext guard start \

internal/guard/cli/cli.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func runDaemon(ctx context.Context, args []string, out io.Writer) error {
172172
defer runtimeService.Stop()
173173
fmt.Fprintf(out, "Kontext Guard local daemon listening on http://%s\n", *addr)
174174
fmt.Fprintf(out, "Hook runtime: unix://%s\n", *socketPath)
175-
fmt.Fprintln(out, "Mode: observe (Claude Code runs normally; decisions are recorded as would allow / would ask / would deny).")
175+
fmt.Fprintln(out, "Mode: observe (Claude Code runs normally; decisions are recorded as would allow / would deny).")
176176
fmt.Fprintf(out, "Dashboard: http://%s\n", *addr)
177177
if localJudge != nil {
178178
fmt.Fprintf(out, "Local judge: %s\n", judgeStatus)
@@ -540,7 +540,7 @@ func installClaudeHooks(out io.Writer, socketPath string) error {
540540
}
541541
fmt.Fprintf(out, "Installed Kontext Guard Claude Code hooks into %s\n", settingsPath)
542542
fmt.Fprintf(out, "Hook command: %s\n", hookCommand)
543-
fmt.Fprintln(out, "Default mode is observe. Set KONTEXT_MODE=enforce later to block ask/deny decisions.")
543+
fmt.Fprintln(out, "Default mode is observe. Set KONTEXT_MODE=enforce later to block deny decisions.")
544544
return nil
545545
}
546546

internal/run/local.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ func StartLocal(ctx context.Context, opts Options) error {
7575

7676
func printLocalMode(out *os.File, mode string) {
7777
if mode == "enforce" {
78-
fmt.Fprintln(out, "Mode: enforce (ask and deny decisions block supported pre-tool actions).")
78+
fmt.Fprintln(out, "Mode: enforce (deny decisions block supported pre-tool actions).")
7979
return
8080
}
81-
fmt.Fprintln(out, "Mode: observe (agent actions run normally; decisions are recorded as would allow / would ask / would deny).")
81+
fmt.Fprintln(out, "Mode: observe (agent actions run normally; decisions are recorded as would allow / would deny).")
8282
}

0 commit comments

Comments
 (0)