nexo-brain 2.6.18 → 2.6.20
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/.claude-plugin/plugin.json +1 -1
- package/README.md +8 -4
- package/bin/nexo-brain.js +17 -12
- package/package.json +1 -1
- package/src/agent_runner.py +3 -0
- package/src/client_preferences.py +12 -14
- package/src/client_sync.py +1 -1
- package/src/runtime_power.py +8 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.20",
|
|
4
4
|
"description": "Local cognitive runtime for Claude Code \u2014 persistent memory, overnight learning, doctor diagnostics, personal scripts, recovery-aware jobs, startup preflight, and optional dashboard/power helper.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "NEXO Brain",
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ That means NEXO now manages not only the shared runtime and MCP wiring, but also
|
|
|
38
38
|
- For Codex specifically, `nexo chat` and Codex headless automation inject the current bootstrap explicitly, so Codex starts as NEXO even when plain global Codex startup is inconsistent about global instructions.
|
|
39
39
|
- Deep Sleep now reads both Claude Code and Codex transcript stores, so overnight analysis still works even when the user spends the day in Codex.
|
|
40
40
|
|
|
41
|
-
Version `2.6.14` closes those parity gaps in practice, `2.6.15` hardens the installed-runtime migration path so existing users actually receive the managed bootstrap updates cleanly, `2.6.16` pushes the system further in three directions, `2.6.17` finishes the annoying last-mile migration bugs for real existing installs,
|
|
41
|
+
Version `2.6.14` closes those parity gaps in practice, `2.6.15` hardens the installed-runtime migration path so existing users actually receive the managed bootstrap updates cleanly, `2.6.16` pushes the system further in three directions, `2.6.17` finishes the annoying last-mile migration bugs for real existing installs, `2.6.18` tightens the remaining practical gaps around manual Codex use, Deep Sleep horizon artifacts, and retrieval honesty, and `2.6.20` makes the recommended Claude profile explicit across installer, runtime defaults, existing installs, and the update path itself: `Opus 4.6 with 1M context`.
|
|
42
42
|
|
|
43
43
|
- Codex now gets managed global bootstrap/model sync in `~/.codex/config.toml`, so sessions opened outside `nexo chat` are much less likely to start as plain Codex.
|
|
44
44
|
- Codex config now also persists a managed `mcp_servers.nexo` entry, so the shared brain survives even if ad-hoc Codex MCP state drifts.
|
|
@@ -645,7 +645,7 @@ nexo scripts list # See your personal scripts
|
|
|
645
645
|
During install, NEXO now asks which interactive clients you want to connect, which one `nexo chat` should open by default, whether to enable background automation, which backend should run that automation, and which model profile each active terminal/backend should use. Shared brain stays on in every mode.
|
|
646
646
|
|
|
647
647
|
Recommended defaults:
|
|
648
|
-
- Claude Code: `Opus
|
|
648
|
+
- Claude Code: `Opus 4.6 with 1M context`
|
|
649
649
|
- Codex: `gpt-5.4` with `xhigh` reasoning
|
|
650
650
|
|
|
651
651
|
Or use the shell alias created during install (e.g. `atlas`), which now runs `nexo chat .` so it opens whichever terminal client you selected as default.
|
|
@@ -662,6 +662,9 @@ NEXO is being hardened in public, and the best contributions now are not only co
|
|
|
662
662
|
|
|
663
663
|
The project still recommends Claude Code as the primary path, but contributions that improve Codex, client parity, installer clarity, and ecosystem integrations are especially valuable.
|
|
664
664
|
|
|
665
|
+
Maintainers and contributors touching startup, bootstrap, Deep Sleep, or shared-brain behavior should also use the client parity checklist:
|
|
666
|
+
- [docs/client-parity-checklist.md](docs/client-parity-checklist.md)
|
|
667
|
+
|
|
665
668
|
### What Gets Installed
|
|
666
669
|
|
|
667
670
|
| Component | What | Where |
|
|
@@ -723,7 +726,7 @@ The Doctor system reads existing health artifacts (immune, watchdog, self-audit)
|
|
|
723
726
|
- **macOS or Linux** (Windows via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install))
|
|
724
727
|
- **Node.js 18+** (for the installer)
|
|
725
728
|
- **Claude Code is the primary recommended client.** It remains the most mature NEXO path: native hooks, the most battle-tested automation contract, and the clearest parity with historical production behavior.
|
|
726
|
-
- **Recommended profiles:** Claude Code + `Opus
|
|
729
|
+
- **Recommended profiles:** Claude Code + `Opus 4.6 with 1M context`; Codex + `gpt-5.4` with `xhigh` reasoning if you prefer Codex as your terminal or automation backend.
|
|
727
730
|
- Python 3, Homebrew, and the selected required client/backend can be installed automatically when NEXO has a supported installer path for that dependency.
|
|
728
731
|
|
|
729
732
|
## Architecture
|
|
@@ -830,7 +833,7 @@ NEXO Brain is designed as an MCP server. Claude Code remains the primary recomme
|
|
|
830
833
|
npx nexo-brain
|
|
831
834
|
```
|
|
832
835
|
|
|
833
|
-
All 150+ tools are available immediately after installation. The installer configures Claude Code's `~/.claude/settings.json` automatically. The recommended Claude profile is `Opus
|
|
836
|
+
All 150+ tools are available immediately after installation. The installer configures Claude Code's `~/.claude/settings.json` automatically. The recommended Claude profile is `Opus 4.6 with 1M context`.
|
|
834
837
|
|
|
835
838
|
### Claude Desktop
|
|
836
839
|
|
|
@@ -920,6 +923,7 @@ If NEXO Brain is useful to you, consider:
|
|
|
920
923
|
- **[Sponsor on GitHub](https://github.com/sponsors/wazionapps)** — support ongoing development directly
|
|
921
924
|
- **Share your experience** — tell others how you're using cognitive memory in your AI workflows
|
|
922
925
|
- **Contribute** — see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Issues and PRs welcome
|
|
926
|
+
- **Client parity / shared-brain maintenance** — see [docs/client-parity-checklist.md](docs/client-parity-checklist.md)
|
|
923
927
|
|
|
924
928
|
[](https://star-history.com/#wazionapps/nexo&Date)
|
|
925
929
|
|
package/bin/nexo-brain.js
CHANGED
|
@@ -33,6 +33,10 @@ const LAUNCH_AGENTS = path.join(
|
|
|
33
33
|
);
|
|
34
34
|
const MACOS_FDA_SETTINGS_URL = "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles";
|
|
35
35
|
const PUBLIC_CONTRIBUTION_UPSTREAM = "wazionapps/nexo";
|
|
36
|
+
const DEFAULT_CLAUDE_CODE_MODEL = "claude-opus-4-6[1m]";
|
|
37
|
+
const DEFAULT_CLAUDE_CODE_REASONING_EFFORT = "";
|
|
38
|
+
const DEFAULT_CODEX_MODEL = "gpt-5.4";
|
|
39
|
+
const DEFAULT_CODEX_REASONING_EFFORT = "xhigh";
|
|
36
40
|
|
|
37
41
|
function isEphemeralInstall(nexoHome) {
|
|
38
42
|
const homeDir = require("os").homedir();
|
|
@@ -480,12 +484,12 @@ function getDefaultSchedule(timezone) {
|
|
|
480
484
|
automation_backend: "claude_code",
|
|
481
485
|
client_runtime_profiles: {
|
|
482
486
|
claude_code: {
|
|
483
|
-
model:
|
|
484
|
-
reasoning_effort:
|
|
487
|
+
model: DEFAULT_CLAUDE_CODE_MODEL,
|
|
488
|
+
reasoning_effort: DEFAULT_CLAUDE_CODE_REASONING_EFFORT,
|
|
485
489
|
},
|
|
486
490
|
codex: {
|
|
487
|
-
model:
|
|
488
|
-
reasoning_effort:
|
|
491
|
+
model: DEFAULT_CODEX_MODEL,
|
|
492
|
+
reasoning_effort: DEFAULT_CODEX_REASONING_EFFORT,
|
|
489
493
|
},
|
|
490
494
|
},
|
|
491
495
|
client_install_preferences: {
|
|
@@ -656,12 +660,12 @@ async function askChoice(question, options, defaultValue) {
|
|
|
656
660
|
function defaultClientRuntimeProfiles() {
|
|
657
661
|
return {
|
|
658
662
|
claude_code: {
|
|
659
|
-
model:
|
|
660
|
-
reasoning_effort:
|
|
663
|
+
model: DEFAULT_CLAUDE_CODE_MODEL,
|
|
664
|
+
reasoning_effort: DEFAULT_CLAUDE_CODE_REASONING_EFFORT,
|
|
661
665
|
},
|
|
662
666
|
codex: {
|
|
663
|
-
model:
|
|
664
|
-
reasoning_effort:
|
|
667
|
+
model: DEFAULT_CODEX_MODEL,
|
|
668
|
+
reasoning_effort: DEFAULT_CODEX_REASONING_EFFORT,
|
|
665
669
|
},
|
|
666
670
|
};
|
|
667
671
|
}
|
|
@@ -690,10 +694,11 @@ function runtimeProfileCatalog(lang, client) {
|
|
|
690
694
|
customModelQuestionEn: ` Enter the model alias/name for ${runtimeClientLabel(client)} > `,
|
|
691
695
|
customEffortQuestion: ` Escribe el effort para ${runtimeClientLabel(client)} (vacío = default) > `,
|
|
692
696
|
customEffortQuestionEn: ` Enter the effort for ${runtimeClientLabel(client)} (blank = default) > `,
|
|
693
|
-
modelDefault:
|
|
697
|
+
modelDefault: DEFAULT_CLAUDE_CODE_MODEL,
|
|
694
698
|
effortDefault: "",
|
|
695
699
|
modelOptions: [
|
|
696
|
-
{ value:
|
|
700
|
+
{ value: DEFAULT_CLAUDE_CODE_MODEL, label: `Opus 4.6 with 1M context${recommended}` },
|
|
701
|
+
{ value: "claude-opus-4-6", label: "Opus 4.6" },
|
|
697
702
|
{ value: "sonnet", label: "Sonnet latest" },
|
|
698
703
|
{ value: "custom", label: lang === "es" ? "Modelo personalizado" : "Custom model" },
|
|
699
704
|
],
|
|
@@ -715,8 +720,8 @@ function runtimeProfileCatalog(lang, client) {
|
|
|
715
720
|
customModelQuestionEn: ` Enter the model name for ${runtimeClientLabel(client)} > `,
|
|
716
721
|
customEffortQuestion: ` Escribe el reasoning effort para ${runtimeClientLabel(client)} > `,
|
|
717
722
|
customEffortQuestionEn: ` Enter the reasoning effort for ${runtimeClientLabel(client)} > `,
|
|
718
|
-
modelDefault:
|
|
719
|
-
effortDefault:
|
|
723
|
+
modelDefault: DEFAULT_CODEX_MODEL,
|
|
724
|
+
effortDefault: DEFAULT_CODEX_REASONING_EFFORT,
|
|
720
725
|
modelOptions: [
|
|
721
726
|
{ value: "gpt-5.4", label: `GPT-5.4${recommended}` },
|
|
722
727
|
{ value: "gpt-5.4-pro", label: "GPT-5.4 Pro" },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.20",
|
|
4
4
|
"mcpName": "io.github.wazionapps/nexo",
|
|
5
5
|
"description": "NEXO Brain — Shared brain for AI agents. Persistent memory, semantic RAG, natural forgetting, metacognitive guard, trust scoring, 150+ MCP tools. Works with Claude Code, Codex, Claude Desktop & any MCP client. 100% local, free.",
|
|
6
6
|
"homepage": "https://nexo-brain.com",
|
package/src/agent_runner.py
CHANGED
|
@@ -229,6 +229,9 @@ def _resolve_runtime_model_and_effort(
|
|
|
229
229
|
if client == CLIENT_CODEX:
|
|
230
230
|
if not requested_model or requested_model.lower() in CLAUDE_LEGACY_MODEL_HINTS:
|
|
231
231
|
requested_model = profile["model"]
|
|
232
|
+
elif client == CLIENT_CLAUDE_CODE:
|
|
233
|
+
if not requested_model or requested_model.lower() in CLAUDE_LEGACY_MODEL_HINTS:
|
|
234
|
+
requested_model = profile["model"]
|
|
232
235
|
elif not requested_model:
|
|
233
236
|
requested_model = profile["model"]
|
|
234
237
|
|
|
@@ -36,18 +36,10 @@ INSTALL_PREFERENCE_KEYS = {
|
|
|
36
36
|
"skip",
|
|
37
37
|
"manual",
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
CLIENT_CODEX: {
|
|
45
|
-
"model": "gpt-5.4",
|
|
46
|
-
"reasoning_effort": "xhigh",
|
|
47
|
-
},
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
DEFAULT_CLAUDE_CODE_MODEL = "claude-opus-4-6[1m]"
|
|
40
|
+
DEFAULT_CLAUDE_CODE_REASONING_EFFORT = ""
|
|
41
|
+
DEFAULT_CODEX_MODEL = "gpt-5.4"
|
|
42
|
+
DEFAULT_CODEX_REASONING_EFFORT = "xhigh"
|
|
51
43
|
def _user_home() -> Path:
|
|
52
44
|
return Path(os.environ.get("HOME", str(Path.home()))).expanduser()
|
|
53
45
|
|
|
@@ -225,8 +217,14 @@ def normalize_client_install_preferences(value) -> dict[str, str]:
|
|
|
225
217
|
|
|
226
218
|
def default_client_runtime_profiles() -> dict[str, dict[str, str]]:
|
|
227
219
|
return {
|
|
228
|
-
|
|
229
|
-
|
|
220
|
+
CLIENT_CLAUDE_CODE: {
|
|
221
|
+
"model": DEFAULT_CLAUDE_CODE_MODEL,
|
|
222
|
+
"reasoning_effort": DEFAULT_CLAUDE_CODE_REASONING_EFFORT,
|
|
223
|
+
},
|
|
224
|
+
CLIENT_CODEX: {
|
|
225
|
+
"model": DEFAULT_CODEX_MODEL,
|
|
226
|
+
"reasoning_effort": DEFAULT_CODEX_REASONING_EFFORT,
|
|
227
|
+
},
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
|
package/src/client_sync.py
CHANGED
|
@@ -55,7 +55,7 @@ except Exception:
|
|
|
55
55
|
|
|
56
56
|
def resolve_client_runtime_profile(client: str, preferences: dict | None = None) -> dict:
|
|
57
57
|
defaults = {
|
|
58
|
-
"claude_code": {"model": "opus", "reasoning_effort": ""},
|
|
58
|
+
"claude_code": {"model": "claude-opus-4-6[1m]", "reasoning_effort": ""},
|
|
59
59
|
"codex": {"model": "gpt-5.4", "reasoning_effort": "xhigh"},
|
|
60
60
|
}
|
|
61
61
|
return dict(defaults.get(client, {}))
|
package/src/runtime_power.py
CHANGED
|
@@ -65,6 +65,10 @@ MACOS_FDA_PROBE_PATHS = (
|
|
|
65
65
|
Path.home() / "Library" / "Safari",
|
|
66
66
|
Path.home() / "Library" / "Application Support" / "AddressBook",
|
|
67
67
|
)
|
|
68
|
+
DEFAULT_CLAUDE_CODE_MODEL = "claude-opus-4-6[1m]"
|
|
69
|
+
DEFAULT_CLAUDE_CODE_REASONING_EFFORT = ""
|
|
70
|
+
DEFAULT_CODEX_MODEL = "gpt-5.4"
|
|
71
|
+
DEFAULT_CODEX_REASONING_EFFORT = "xhigh"
|
|
68
72
|
|
|
69
73
|
|
|
70
74
|
def _schedule_defaults() -> dict:
|
|
@@ -81,12 +85,12 @@ def _schedule_defaults() -> dict:
|
|
|
81
85
|
"automation_backend": "claude_code",
|
|
82
86
|
"client_runtime_profiles": {
|
|
83
87
|
"claude_code": {
|
|
84
|
-
"model":
|
|
85
|
-
"reasoning_effort":
|
|
88
|
+
"model": DEFAULT_CLAUDE_CODE_MODEL,
|
|
89
|
+
"reasoning_effort": DEFAULT_CLAUDE_CODE_REASONING_EFFORT,
|
|
86
90
|
},
|
|
87
91
|
"codex": {
|
|
88
|
-
"model":
|
|
89
|
-
"reasoning_effort":
|
|
92
|
+
"model": DEFAULT_CODEX_MODEL,
|
|
93
|
+
"reasoning_effort": DEFAULT_CODEX_REASONING_EFFORT,
|
|
90
94
|
},
|
|
91
95
|
},
|
|
92
96
|
"client_install_preferences": {
|