atlarix 14.52.3 → 15.0.0

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 ADDED
@@ -0,0 +1,46 @@
1
+ # Atlarix CLI — an AI coding agent in your terminal
2
+
3
+ Atlarix is an AI coding agent by [NorahLabs](https://norahlabs.com). The CLI is the same agent
4
+ as the [Atlarix desktop app](https://atlarix.dev), in your terminal: it reads your project,
5
+ plans, edits files with a diff you approve, runs commands in a sandbox, and reviews and debugs
6
+ code. Your sessions, models, API keys, MCP servers and automations are shared with the app.
7
+
8
+ ```sh
9
+ npm i -g atlarix
10
+ atlarix
11
+ ```
12
+
13
+ Other ways to install: `curl -fsSL https://atlarix.dev/install | sh` (macOS, Linux),
14
+ `irm https://atlarix.dev/install.ps1 | iex` (Windows), `brew install amariahak/atlarix/atlarix`,
15
+ or winget. The CLI updates itself.
16
+
17
+ ## What it does
18
+
19
+ - **Works in any folder.** Run `atlarix` in a project and ask: "fix the failing test",
20
+ "explain the auth flow", "add a health endpoint".
21
+ - **Five work modes.** Build, Explore, Plan, Debug and Review (shift+tab switches).
22
+ - **Any model.** Atlarix Auto and the Atlarix Core models, your own API key for any provider
23
+ (OpenAI, Anthropic, Google, DeepSeek, OpenRouter and more), or a local model with Ollama or
24
+ LM Studio.
25
+ - **Nothing changes without you.** File edits show a diff to approve; shell commands run in a
26
+ per-OS sandbox.
27
+ - **Sub-agents and background work.** Hand independent tasks to sub-agents; follow and stop
28
+ background commands from the strip above the prompt box.
29
+ - **Relics.** Ask for a report, plan or design as a shareable page.
30
+ - **Batch mode for CI.** `atlarix run --prompt "…"` runs one task unattended and exits; it is
31
+ what powers the [Atlarix cloud agent](https://atlarix.dev/cloud-agent) in GitHub Actions.
32
+
33
+ ## Sign in
34
+
35
+ `atlarix` opens your browser to sign in; `atlarix login --device` signs in from a machine
36
+ without one. Your own API key or a local model works without an Atlarix account.
37
+
38
+ ## Links
39
+
40
+ - Product page: https://atlarix.dev/cli
41
+ - Docs: https://atlarix.dev/docs
42
+ - Changelog: https://atlarix.dev/changelog
43
+ - Pricing: https://atlarix.dev/pricing
44
+ - Issues: https://github.com/AmariahAK/atlarix-releases/issues
45
+
46
+ Atlarix is proprietary software by NorahLabs (Nairobi, Kenya).
package/bin/atlarix.js ADDED
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `atlarix` from npm. Runs this platform's compiled CLI — the interactive
4
+ * terminal app, the same binary as the curl / Homebrew / winget installs — from
5
+ * its `atlarix-<os>-<arch>` package (an optional dependency, so npm installs
6
+ * only the one that fits).
7
+ *
8
+ * With no matching package (an unusual platform, or `--no-optional`), it runs
9
+ * the bundled Node build instead: the batch agent (`atlarix run …`) that CI,
10
+ * the cloud agent and benchmarks use. So `npx atlarix run …` works everywhere.
11
+ */
12
+ import { spawnSync } from "node:child_process";
13
+ import { createRequire } from "node:module";
14
+ import { fileURLToPath } from "node:url";
15
+ import path from "node:path";
16
+
17
+ const require = createRequire(import.meta.url);
18
+
19
+ function isMusl() {
20
+ if (process.platform !== "linux") return false;
21
+ try {
22
+ return !process.report?.getReport()?.header?.glibcVersionRuntime;
23
+ } catch {
24
+ return false;
25
+ }
26
+ }
27
+
28
+ const os = process.platform === "win32" ? "windows" : process.platform;
29
+ const name = `atlarix-${os}-${process.arch}${isMusl() ? "-musl" : ""}`;
30
+ const exe = process.platform === "win32" ? "atlarix.exe" : "atlarix";
31
+
32
+ let binary = null;
33
+ try {
34
+ binary = require.resolve(`${name}/bin/${exe}`);
35
+ } catch {
36
+ /* not installed for this platform */
37
+ }
38
+
39
+ if (binary) {
40
+ const r = spawnSync(binary, process.argv.slice(2), { stdio: "inherit" });
41
+ if (r.error) {
42
+ console.error(`atlarix: could not start ${binary}: ${r.error.message}`);
43
+ process.exit(1);
44
+ }
45
+ if (r.signal) process.kill(process.pid, r.signal);
46
+ process.exit(r.status ?? 1);
47
+ }
48
+
49
+ const batch = process.argv.slice(2).some((a) => a === "run" || a.startsWith("--prompt") || a === "--version" || a === "-v");
50
+ if (!batch) {
51
+ console.error(
52
+ `atlarix: the interactive CLI isn't installed for ${os}-${process.arch} (package ${name}).\n` +
53
+ "Install it from https://atlarix.dev/install, or reinstall without --no-optional.\n" +
54
+ "Scripts and CI can still use `atlarix run --prompt …`.",
55
+ );
56
+ process.exit(1);
57
+ }
58
+ await import(path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "dist-headless", "atlarix-headless.mjs"));
@@ -47,6 +47,10 @@ Atlarix renders these inline as collapsible cards — put the visual in the same
47
47
  - **Graph** — ` ```graph ` fence: `{ "title"?: string, "nodes": [{ "id", "name" }], "edges": [{ "source", "target" }] }` for flows / architecture / dependencies (edge ids must exist on nodes; no coordinates).
48
48
  - **Markmap** — ` ```markmap ` fence: markdown headings + bullets with one root `#` title, for hierarchies / outlines.
49
49
 
50
+ ## Relics
51
+
52
+ A **relic** (the `relic` tool) is a self-contained web page to SHARE, not a file of the project: a design to agree on before building, an explainer, a report. Reach for one when a page shows it better than chat does; one relic per thing, updated in place with its `id`. Tell the user the link or path it returns. Never put secrets in one.
53
+
50
54
  ## Browsers
51
55
 
52
56
  - `browser` and `browser_inspect` drive the user's own browser (Chrome, Edge or Brave) through the Atlarix extension, in Atlarix's own tab group — never the tab the user is on. Open the app you are building at its localhost dev-server URL there, act, then check `browser_inspect` mode:"console" (it shows entries since your last navigate) to confirm nothing threw.