@usejarvis/brain 0.1.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/LICENSE +153 -0
- package/README.md +278 -0
- package/bin/jarvis.ts +413 -0
- package/package.json +74 -0
- package/scripts/ensure-bun.cjs +8 -0
- package/src/actions/README.md +421 -0
- package/src/actions/app-control/desktop-controller.test.ts +26 -0
- package/src/actions/app-control/desktop-controller.ts +438 -0
- package/src/actions/app-control/interface.ts +64 -0
- package/src/actions/app-control/linux.ts +273 -0
- package/src/actions/app-control/macos.ts +54 -0
- package/src/actions/app-control/sidecar-launcher.test.ts +23 -0
- package/src/actions/app-control/sidecar-launcher.ts +286 -0
- package/src/actions/app-control/windows.ts +44 -0
- package/src/actions/browser/cdp.ts +138 -0
- package/src/actions/browser/chrome-launcher.ts +252 -0
- package/src/actions/browser/session.ts +437 -0
- package/src/actions/browser/stealth.ts +49 -0
- package/src/actions/index.ts +20 -0
- package/src/actions/terminal/executor.ts +157 -0
- package/src/actions/terminal/wsl-bridge.ts +126 -0
- package/src/actions/test.ts +93 -0
- package/src/actions/tools/agents.ts +321 -0
- package/src/actions/tools/builtin.ts +846 -0
- package/src/actions/tools/commitments.ts +192 -0
- package/src/actions/tools/content.ts +217 -0
- package/src/actions/tools/delegate.ts +147 -0
- package/src/actions/tools/desktop.test.ts +55 -0
- package/src/actions/tools/desktop.ts +305 -0
- package/src/actions/tools/goals.ts +376 -0
- package/src/actions/tools/local-tools-guard.ts +20 -0
- package/src/actions/tools/registry.ts +171 -0
- package/src/actions/tools/research.ts +111 -0
- package/src/actions/tools/sidecar-list.ts +57 -0
- package/src/actions/tools/sidecar-route.ts +105 -0
- package/src/actions/tools/workflows.ts +216 -0
- package/src/agents/agent.ts +132 -0
- package/src/agents/delegation.ts +107 -0
- package/src/agents/hierarchy.ts +113 -0
- package/src/agents/index.ts +19 -0
- package/src/agents/messaging.ts +125 -0
- package/src/agents/orchestrator.ts +576 -0
- package/src/agents/role-discovery.ts +61 -0
- package/src/agents/sub-agent-runner.ts +307 -0
- package/src/agents/task-manager.ts +151 -0
- package/src/authority/approval-delivery.ts +59 -0
- package/src/authority/approval.ts +196 -0
- package/src/authority/audit.ts +158 -0
- package/src/authority/authority.test.ts +519 -0
- package/src/authority/deferred-executor.ts +103 -0
- package/src/authority/emergency.ts +66 -0
- package/src/authority/engine.ts +297 -0
- package/src/authority/index.ts +12 -0
- package/src/authority/learning.ts +111 -0
- package/src/authority/tool-action-map.ts +74 -0
- package/src/awareness/analytics.ts +466 -0
- package/src/awareness/awareness.test.ts +332 -0
- package/src/awareness/capture-engine.ts +305 -0
- package/src/awareness/context-graph.ts +130 -0
- package/src/awareness/context-tracker.ts +349 -0
- package/src/awareness/index.ts +25 -0
- package/src/awareness/intelligence.ts +321 -0
- package/src/awareness/ocr-engine.ts +88 -0
- package/src/awareness/service.ts +528 -0
- package/src/awareness/struggle-detector.ts +342 -0
- package/src/awareness/suggestion-engine.ts +476 -0
- package/src/awareness/types.ts +201 -0
- package/src/cli/autostart.ts +241 -0
- package/src/cli/deps.ts +449 -0
- package/src/cli/doctor.ts +230 -0
- package/src/cli/helpers.ts +401 -0
- package/src/cli/onboard.ts +580 -0
- package/src/comms/README.md +329 -0
- package/src/comms/auth-error.html +48 -0
- package/src/comms/channels/discord.ts +228 -0
- package/src/comms/channels/signal.ts +56 -0
- package/src/comms/channels/telegram.ts +316 -0
- package/src/comms/channels/whatsapp.ts +60 -0
- package/src/comms/channels.test.ts +173 -0
- package/src/comms/desktop-notify.ts +114 -0
- package/src/comms/example.ts +129 -0
- package/src/comms/index.ts +129 -0
- package/src/comms/streaming.ts +142 -0
- package/src/comms/voice.test.ts +152 -0
- package/src/comms/voice.ts +291 -0
- package/src/comms/websocket.test.ts +409 -0
- package/src/comms/websocket.ts +473 -0
- package/src/config/README.md +387 -0
- package/src/config/index.ts +6 -0
- package/src/config/loader.test.ts +137 -0
- package/src/config/loader.ts +142 -0
- package/src/config/types.ts +260 -0
- package/src/daemon/README.md +232 -0
- package/src/daemon/agent-service-interface.ts +9 -0
- package/src/daemon/agent-service.ts +600 -0
- package/src/daemon/api-routes.ts +2119 -0
- package/src/daemon/background-agent-service.ts +396 -0
- package/src/daemon/background-agent.test.ts +78 -0
- package/src/daemon/channel-service.ts +201 -0
- package/src/daemon/commitment-executor.ts +297 -0
- package/src/daemon/event-classifier.ts +239 -0
- package/src/daemon/event-coalescer.ts +123 -0
- package/src/daemon/event-reactor.ts +214 -0
- package/src/daemon/health.ts +220 -0
- package/src/daemon/index.ts +1004 -0
- package/src/daemon/llm-settings.ts +316 -0
- package/src/daemon/observer-service.ts +150 -0
- package/src/daemon/pid.ts +98 -0
- package/src/daemon/research-queue.ts +155 -0
- package/src/daemon/services.ts +175 -0
- package/src/daemon/ws-service.ts +788 -0
- package/src/goals/accountability.ts +240 -0
- package/src/goals/awareness-bridge.ts +185 -0
- package/src/goals/estimator.ts +185 -0
- package/src/goals/events.ts +28 -0
- package/src/goals/goals.test.ts +400 -0
- package/src/goals/integration.test.ts +329 -0
- package/src/goals/nl-builder.test.ts +220 -0
- package/src/goals/nl-builder.ts +256 -0
- package/src/goals/rhythm.test.ts +177 -0
- package/src/goals/rhythm.ts +275 -0
- package/src/goals/service.test.ts +135 -0
- package/src/goals/service.ts +348 -0
- package/src/goals/types.ts +106 -0
- package/src/goals/workflow-bridge.ts +96 -0
- package/src/integrations/google-api.ts +134 -0
- package/src/integrations/google-auth.ts +175 -0
- package/src/llm/README.md +291 -0
- package/src/llm/anthropic.ts +386 -0
- package/src/llm/gemini.ts +371 -0
- package/src/llm/index.ts +19 -0
- package/src/llm/manager.ts +153 -0
- package/src/llm/ollama.ts +307 -0
- package/src/llm/openai.ts +350 -0
- package/src/llm/provider.test.ts +231 -0
- package/src/llm/provider.ts +60 -0
- package/src/llm/test.ts +87 -0
- package/src/observers/README.md +278 -0
- package/src/observers/calendar.ts +113 -0
- package/src/observers/clipboard.ts +136 -0
- package/src/observers/email.ts +109 -0
- package/src/observers/example.ts +58 -0
- package/src/observers/file-watcher.ts +124 -0
- package/src/observers/index.ts +159 -0
- package/src/observers/notifications.ts +197 -0
- package/src/observers/observers.test.ts +203 -0
- package/src/observers/processes.ts +225 -0
- package/src/personality/README.md +61 -0
- package/src/personality/adapter.ts +196 -0
- package/src/personality/index.ts +20 -0
- package/src/personality/learner.ts +209 -0
- package/src/personality/model.ts +132 -0
- package/src/personality/personality.test.ts +236 -0
- package/src/roles/README.md +252 -0
- package/src/roles/authority.ts +119 -0
- package/src/roles/example-usage.ts +198 -0
- package/src/roles/index.ts +42 -0
- package/src/roles/loader.ts +143 -0
- package/src/roles/prompt-builder.ts +194 -0
- package/src/roles/test-multi.ts +102 -0
- package/src/roles/test-role.yaml +77 -0
- package/src/roles/test-utils.ts +93 -0
- package/src/roles/test.ts +106 -0
- package/src/roles/tool-guide.ts +190 -0
- package/src/roles/types.ts +36 -0
- package/src/roles/utils.ts +200 -0
- package/src/scripts/google-setup.ts +168 -0
- package/src/sidecar/connection.ts +179 -0
- package/src/sidecar/index.ts +6 -0
- package/src/sidecar/manager.ts +542 -0
- package/src/sidecar/protocol.ts +85 -0
- package/src/sidecar/rpc.ts +161 -0
- package/src/sidecar/scheduler.ts +136 -0
- package/src/sidecar/types.ts +112 -0
- package/src/sidecar/validator.ts +144 -0
- package/src/vault/README.md +110 -0
- package/src/vault/awareness.ts +341 -0
- package/src/vault/commitments.ts +299 -0
- package/src/vault/content-pipeline.ts +260 -0
- package/src/vault/conversations.ts +173 -0
- package/src/vault/entities.ts +180 -0
- package/src/vault/extractor.test.ts +356 -0
- package/src/vault/extractor.ts +345 -0
- package/src/vault/facts.ts +190 -0
- package/src/vault/goals.ts +477 -0
- package/src/vault/index.ts +87 -0
- package/src/vault/keychain.ts +99 -0
- package/src/vault/observations.ts +115 -0
- package/src/vault/relationships.ts +178 -0
- package/src/vault/retrieval.test.ts +126 -0
- package/src/vault/retrieval.ts +227 -0
- package/src/vault/schema.ts +658 -0
- package/src/vault/settings.ts +38 -0
- package/src/vault/vectors.ts +92 -0
- package/src/vault/workflows.ts +403 -0
- package/src/workflows/auto-suggest.ts +290 -0
- package/src/workflows/engine.ts +366 -0
- package/src/workflows/events.ts +24 -0
- package/src/workflows/executor.ts +207 -0
- package/src/workflows/nl-builder.ts +198 -0
- package/src/workflows/nodes/actions/agent-task.ts +73 -0
- package/src/workflows/nodes/actions/calendar-action.ts +85 -0
- package/src/workflows/nodes/actions/code-execution.ts +73 -0
- package/src/workflows/nodes/actions/discord.ts +77 -0
- package/src/workflows/nodes/actions/file-write.ts +73 -0
- package/src/workflows/nodes/actions/gmail.ts +69 -0
- package/src/workflows/nodes/actions/http-request.ts +117 -0
- package/src/workflows/nodes/actions/notification.ts +85 -0
- package/src/workflows/nodes/actions/run-tool.ts +55 -0
- package/src/workflows/nodes/actions/send-message.ts +82 -0
- package/src/workflows/nodes/actions/shell-command.ts +76 -0
- package/src/workflows/nodes/actions/telegram.ts +60 -0
- package/src/workflows/nodes/builtin.ts +119 -0
- package/src/workflows/nodes/error/error-handler.ts +37 -0
- package/src/workflows/nodes/error/fallback.ts +47 -0
- package/src/workflows/nodes/error/retry.ts +82 -0
- package/src/workflows/nodes/logic/delay.ts +42 -0
- package/src/workflows/nodes/logic/if-else.ts +41 -0
- package/src/workflows/nodes/logic/loop.ts +90 -0
- package/src/workflows/nodes/logic/merge.ts +38 -0
- package/src/workflows/nodes/logic/race.ts +40 -0
- package/src/workflows/nodes/logic/switch.ts +59 -0
- package/src/workflows/nodes/logic/template-render.ts +53 -0
- package/src/workflows/nodes/logic/variable-get.ts +37 -0
- package/src/workflows/nodes/logic/variable-set.ts +59 -0
- package/src/workflows/nodes/registry.ts +99 -0
- package/src/workflows/nodes/transform/aggregate.ts +99 -0
- package/src/workflows/nodes/transform/csv-parse.ts +70 -0
- package/src/workflows/nodes/transform/json-parse.ts +63 -0
- package/src/workflows/nodes/transform/map-filter.ts +84 -0
- package/src/workflows/nodes/transform/regex-match.ts +89 -0
- package/src/workflows/nodes/triggers/calendar.ts +33 -0
- package/src/workflows/nodes/triggers/clipboard.ts +32 -0
- package/src/workflows/nodes/triggers/cron.ts +40 -0
- package/src/workflows/nodes/triggers/email.ts +40 -0
- package/src/workflows/nodes/triggers/file-change.ts +45 -0
- package/src/workflows/nodes/triggers/git.ts +46 -0
- package/src/workflows/nodes/triggers/manual.ts +23 -0
- package/src/workflows/nodes/triggers/poll.ts +81 -0
- package/src/workflows/nodes/triggers/process.ts +44 -0
- package/src/workflows/nodes/triggers/screen-event.ts +37 -0
- package/src/workflows/nodes/triggers/webhook.ts +39 -0
- package/src/workflows/safe-eval.ts +139 -0
- package/src/workflows/template.ts +118 -0
- package/src/workflows/triggers/cron.ts +311 -0
- package/src/workflows/triggers/manager.ts +285 -0
- package/src/workflows/triggers/observer-bridge.ts +172 -0
- package/src/workflows/triggers/poller.ts +201 -0
- package/src/workflows/triggers/screen-condition.ts +218 -0
- package/src/workflows/triggers/triggers.test.ts +740 -0
- package/src/workflows/triggers/webhook.ts +191 -0
- package/src/workflows/types.ts +133 -0
- package/src/workflows/variables.ts +72 -0
- package/src/workflows/workflows.test.ts +383 -0
- package/src/workflows/yaml.ts +104 -0
- package/ui/dist/index-j75njzc1.css +1199 -0
- package/ui/dist/index-p2zh407q.js +80603 -0
- package/ui/dist/index.html +13 -0
- package/ui/public/openwakeword/models/embedding_model.onnx +0 -0
- package/ui/public/openwakeword/models/hey_jarvis_v0.1.onnx +0 -0
- package/ui/public/openwakeword/models/melspectrogram.onnx +0 -0
- package/ui/public/openwakeword/models/silero_vad.onnx +0 -0
- package/ui/public/ort/ort-wasm-simd-threaded.jsep.mjs +106 -0
- package/ui/public/ort/ort-wasm-simd-threaded.jsep.wasm +0 -0
- package/ui/public/ort/ort-wasm-simd-threaded.mjs +59 -0
- package/ui/public/ort/ort-wasm-simd-threaded.wasm +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
Jarvis Source Available License 2.0
|
|
2
|
+
(Based on RSALv2)
|
|
3
|
+
|
|
4
|
+
Last Update: March 12, 2026
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
1. ACCEPTANCE
|
|
8
|
+
|
|
9
|
+
This Agreement sets forth the terms and conditions on which the Licensor
|
|
10
|
+
makes available the Software. By installing, downloading, accessing,
|
|
11
|
+
Using, or distributing any of the Software, You agree to all of the
|
|
12
|
+
terms and conditions of this Agreement.
|
|
13
|
+
|
|
14
|
+
If You are receiving the Software on behalf of Your Company, You
|
|
15
|
+
represent and warrant that You have the authority to agree to this
|
|
16
|
+
Agreement on behalf of such entity.
|
|
17
|
+
|
|
18
|
+
The Licensor reserves the right to update this Agreement from time to
|
|
19
|
+
time.
|
|
20
|
+
|
|
21
|
+
The terms below have the meanings set forth below for purposes of this
|
|
22
|
+
Agreement:
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
2. DEFINITIONS
|
|
26
|
+
|
|
27
|
+
"Agreement" means this Jarvis Source Available License 2.0 Agreement.
|
|
28
|
+
|
|
29
|
+
"Control" means ownership, directly or indirectly, of substantially all
|
|
30
|
+
the assets of an entity, or the power to direct its management and
|
|
31
|
+
policies by vote, contract, or otherwise.
|
|
32
|
+
|
|
33
|
+
"License" means the License as described in the License paragraph below.
|
|
34
|
+
|
|
35
|
+
"Licensor" means Vieri Balboni (the individual developer and copyright
|
|
36
|
+
holder of the Software). Upon incorporation of a legal entity to back
|
|
37
|
+
the development of the Software, the Licensor role will transfer to
|
|
38
|
+
such entity, and this Agreement will be updated accordingly.
|
|
39
|
+
|
|
40
|
+
"Modify", "Modified", or "Modification" means to copy from or adapt all
|
|
41
|
+
or part of the work in a fashion requiring copyright permission other
|
|
42
|
+
than making an exact copy. The resulting work is called a Modified
|
|
43
|
+
version of the earlier work.
|
|
44
|
+
|
|
45
|
+
"Software" means the J.A.R.V.I.S. (Just A Really Versatile Intelligent
|
|
46
|
+
System) software as made available by the Licensor at
|
|
47
|
+
https://github.com/vierisid/jarvis, including any portion of it.
|
|
48
|
+
|
|
49
|
+
"Trademark" means the trademarks, service marks, and any other similar
|
|
50
|
+
rights.
|
|
51
|
+
|
|
52
|
+
"Use" means anything You do with the Software requiring one of Your
|
|
53
|
+
Licenses.
|
|
54
|
+
|
|
55
|
+
"You" means the recipient of the Software, the individual or entity on
|
|
56
|
+
whose behalf You are agreeing to this Agreement.
|
|
57
|
+
|
|
58
|
+
"Your Company" means any legal entity, sole proprietorship, or other
|
|
59
|
+
kind of organization that You work for, plus all organizations that
|
|
60
|
+
have control over, are under the control of, or are under common
|
|
61
|
+
control with that organization.
|
|
62
|
+
|
|
63
|
+
"Your Licenses" means all the Licenses granted to You for the Software
|
|
64
|
+
under this Agreement.
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
3. LICENSE
|
|
68
|
+
|
|
69
|
+
The Licensor grants You a non-exclusive, royalty-free, worldwide,
|
|
70
|
+
non-sublicensable, non-transferable license to use, copy, distribute,
|
|
71
|
+
make available, and prepare derivative works of the Software, in each
|
|
72
|
+
case subject to the limitations and conditions below.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
4. LIMITATIONS
|
|
76
|
+
|
|
77
|
+
You may not make the functionality of the Software or a Modified
|
|
78
|
+
version available to third parties as a service or distribute the
|
|
79
|
+
Software or a Modified version in a manner that makes the functionality
|
|
80
|
+
of the Software available to third parties.
|
|
81
|
+
|
|
82
|
+
Making the functionality of the Software or Modified version available
|
|
83
|
+
to third parties includes, without limitation, enabling third parties
|
|
84
|
+
to interact with the functionality of the Software or Modified version
|
|
85
|
+
in distributed form or remotely through a computer network, offering a
|
|
86
|
+
product or service, the value of which entirely or primarily derives
|
|
87
|
+
from the value of the Software or Modified version, or offering a
|
|
88
|
+
product or service that accomplishes for users the primary purpose of
|
|
89
|
+
the Software or Modified version.
|
|
90
|
+
|
|
91
|
+
You may not alter, remove, or obscure any licensing, copyright, or
|
|
92
|
+
other notices of the Licensor in the Software. Any use of the
|
|
93
|
+
Licensor's Trademarks is subject to applicable law.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
5. PATENTS
|
|
97
|
+
|
|
98
|
+
The Licensor grants You a License, under any patent claims the Licensor
|
|
99
|
+
can License, or becomes able to License, to make, have made, use, sell,
|
|
100
|
+
offer for sale, import and have imported the Software, in each case
|
|
101
|
+
subject to the limitations and conditions in this License. This License
|
|
102
|
+
does not cover any patent claims that You cause to be infringed by
|
|
103
|
+
Modifications or additions to the Software. If You or Your Company make
|
|
104
|
+
any written claim that the Software infringes or contributes to
|
|
105
|
+
infringement of any patent, your patent License for the Software
|
|
106
|
+
granted under this Agreement ends immediately. If Your Company makes
|
|
107
|
+
such a claim, your patent License ends immediately for work on behalf
|
|
108
|
+
of Your Company.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
6. NOTICES
|
|
112
|
+
|
|
113
|
+
You must ensure that anyone who gets a copy of any part of the Software
|
|
114
|
+
from You also gets a copy of the terms and conditions in this
|
|
115
|
+
Agreement.
|
|
116
|
+
|
|
117
|
+
If You modify the Software, You must include in any Modified copies of
|
|
118
|
+
the Software prominent notices stating that You have Modified the
|
|
119
|
+
Software.
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
7. NO OTHER RIGHTS
|
|
123
|
+
|
|
124
|
+
The terms and conditions of this Agreement do not imply any Licenses
|
|
125
|
+
other than those expressly granted in this Agreement.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
8. TERMINATION
|
|
129
|
+
|
|
130
|
+
If You Use the Software in violation of this Agreement, such Use is not
|
|
131
|
+
Licensed, and Your Licenses will automatically terminate. If the
|
|
132
|
+
Licensor provides You with a notice of your violation, and You cease
|
|
133
|
+
all violations of this License no later than 30 days after You receive
|
|
134
|
+
that notice, Your Licenses will be reinstated retroactively. However,
|
|
135
|
+
if You violate this Agreement after such reinstatement, any additional
|
|
136
|
+
violation of this Agreement will cause your Licenses to terminate
|
|
137
|
+
automatically and permanently.
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
9. NO LIABILITY
|
|
141
|
+
|
|
142
|
+
AS FAR AS THE LAW ALLOWS, THE SOFTWARE COMES AS IS, WITHOUT ANY
|
|
143
|
+
WARRANTY OR CONDITION, AND THE LICENSOR WILL NOT BE LIABLE TO YOU FOR
|
|
144
|
+
ANY DAMAGES ARISING OUT OF THIS AGREEMENT OR THE USE OR NATURE OF THE
|
|
145
|
+
SOFTWARE, UNDER ANY KIND OF LEGAL CLAIM.
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
10. GOVERNING LAW AND JURISDICTION
|
|
149
|
+
|
|
150
|
+
This Agreement will be construed and enforced in all respects in
|
|
151
|
+
accordance with the laws of the Italian Republic without reference to
|
|
152
|
+
its choice of law rules. The courts located in Milan, Italy, have
|
|
153
|
+
exclusive jurisdiction for all purposes relating to this Agreement.
|
package/README.md
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# JARVIS
|
|
2
|
+
|
|
3
|
+
**Just A Rather Very Intelligent System**
|
|
4
|
+
|
|
5
|
+
> An always-on autonomous AI daemon with desktop awareness, multi-agent hierarchy, visual workflows, and goal pursuit.
|
|
6
|
+
|
|
7
|
+
JARVIS is not a chatbot with tools. It is a persistent daemon that sees your desktop, thinks about what you're doing, and acts — within the authority limits you define.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What Makes JARVIS Different
|
|
12
|
+
|
|
13
|
+
| Feature | Typical AI Assistant | JARVIS |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Always-on | No — request/response only | Yes — persistent daemon |
|
|
16
|
+
| Desktop awareness | No | Yes — screen capture every 5-10s |
|
|
17
|
+
| Native app control | No | Yes — Go sidecar with Win32/X11 automation |
|
|
18
|
+
| Multi-agent delegation | No | Yes — 9 specialist roles |
|
|
19
|
+
| Visual workflow builder | No | Yes — 50+ nodes, n8n-style |
|
|
20
|
+
| Voice with wake word | No | Yes — streaming TTS + openwakeword |
|
|
21
|
+
| Goal pursuit (OKRs) | No | Yes — drill sergeant accountability |
|
|
22
|
+
| Authority gating | No | Yes — runtime enforcement + audit trail |
|
|
23
|
+
| LLM provider choice | Usually locked to one | 4 providers: Anthropic, OpenAI, Gemini, Ollama |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Install
|
|
28
|
+
|
|
29
|
+
### npm (recommended)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g @usejarvis/brain
|
|
33
|
+
jarvis onboard
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### One-liner
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
curl -fsSL https://raw.githubusercontent.com/vierisid/jarvis/main/install.sh | bash
|
|
40
|
+
jarvis onboard
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The install script sets up Bun, clones the repo, and links the `jarvis` CLI. Then run `jarvis onboard` to configure your assistant interactively.
|
|
44
|
+
|
|
45
|
+
### Manual
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
git clone https://github.com/vierisid/jarvis.git ~/.jarvis/daemon
|
|
49
|
+
cd ~/.jarvis/daemon
|
|
50
|
+
bun install
|
|
51
|
+
bun run build:ui
|
|
52
|
+
jarvis onboard
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Run
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
jarvis start # Start in foreground
|
|
59
|
+
jarvis start -d # Start as background daemon
|
|
60
|
+
jarvis start --port 3142 # Start on a specific port
|
|
61
|
+
jarvis stop # Stop the daemon
|
|
62
|
+
jarvis status # Check if running
|
|
63
|
+
jarvis doctor # Verify environment & connectivity
|
|
64
|
+
jarvis logs -f # Follow live logs
|
|
65
|
+
jarvis update # Update to latest version
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The dashboard is available at `http://localhost:3142` once the daemon is running.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Sidecar Setup
|
|
73
|
+
|
|
74
|
+
The sidecar is a lightweight agent that runs on your desktop machine and gives JARVIS access to desktop automation, browser control, terminal, filesystem, screenshots, and more.
|
|
75
|
+
|
|
76
|
+
### 1. Install the sidecar
|
|
77
|
+
|
|
78
|
+
**Via npm:**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install -g @usejarvis/sidecar
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Or download the binary** from [GitHub Releases](https://github.com/vierisid/jarvis/releases) for your platform (macOS, Linux, Windows).
|
|
85
|
+
|
|
86
|
+
### 2. Enroll in the dashboard
|
|
87
|
+
|
|
88
|
+
1. Open the JARVIS dashboard at `http://localhost:3142`
|
|
89
|
+
2. Go to **Settings** → **Sidecar**
|
|
90
|
+
3. Enter a friendly name for this machine (e.g. "work laptop") and click **Enroll**
|
|
91
|
+
4. Click **Copy** to copy the token command
|
|
92
|
+
|
|
93
|
+
### 3. Run the sidecar
|
|
94
|
+
|
|
95
|
+
Paste and run the copied command on the machine where you installed the sidecar:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
jarvis-sidecar --token <your-token>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The sidecar saves the token locally, so on subsequent runs you just need:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
jarvis-sidecar
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Once connected, the sidecar appears as online in the Settings page where you can configure its capabilities (terminal, filesystem, desktop, browser, clipboard, screenshot, awareness).
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Core Capabilities
|
|
112
|
+
|
|
113
|
+
**Conversations** — Multi-provider LLM routing (Anthropic Claude, OpenAI GPT, Google Gemini, Ollama). Streaming responses, personality engine, vault-injected memory context on every message.
|
|
114
|
+
|
|
115
|
+
**Tool Execution** — 14+ builtin tools with up to 200 iterations per turn. The agent loop runs until the task is complete, not until the response looks done.
|
|
116
|
+
|
|
117
|
+
**Memory & Knowledge** — Vault knowledge graph (entities, facts, relationships) stored in SQLite. Extracted automatically after each response. Injected into the system prompt so JARVIS always remembers what matters.
|
|
118
|
+
|
|
119
|
+
**Browser Control** — Auto-launches Chromium via CDP. 7 browser tools handle navigation, interaction, extraction, and form filling.
|
|
120
|
+
|
|
121
|
+
**Desktop Automation** — Go sidecar with JWT-authenticated WebSocket, RPC protocol, and binary streaming. Win32 API automation (EnumWindows, UIAutomation, SendKeys) on Windows, X11 tools on Linux.
|
|
122
|
+
|
|
123
|
+
**Multi-Agent Hierarchy** — `delegate_task` and `manage_agents` tools. An AgentTaskManager coordinates 9 specialist roles. Sub-agents are denied governed actions — authority stays with the top-level agent.
|
|
124
|
+
|
|
125
|
+
**Voice Interface** — Edge TTS or ElevenLabs with streaming sentence-by-sentence playback. Binary WebSocket protocol carries mic audio (WebM) and TTS audio (MP3) on the same connection. Wake word via openwakeword (ONNX, runs in-browser).
|
|
126
|
+
|
|
127
|
+
**Continuous Awareness** — Full desktop capture at 5-10 second intervals. Hybrid OCR (Tesseract.js) + Cloud Vision. Struggle detection, activity session inference, entity-linked context graph. Proactive suggestions and an overlay widget.
|
|
128
|
+
|
|
129
|
+
**Workflow Automation** — Visual builder powered by `@xyflow/react`. 50+ nodes across 5 categories. Triggers: cron, webhook, file watch, screen events, polling, clipboard, process, git, email, calendar. NL chat creation, YAML export/import, retry + fallback + AI-powered self-heal.
|
|
130
|
+
|
|
131
|
+
**Goal Pursuit** — OKR hierarchy (objective → key result → daily action). Google-style 0.0-1.0 scoring. Morning planning, evening review, drill sergeant escalation. Awareness pipeline auto-advances progress. Three dashboard views: kanban, timeline, metrics.
|
|
132
|
+
|
|
133
|
+
**Authority & Autonomy** — Runtime enforcement with soft-gate approvals. Multi-channel approval delivery (chat, Telegram, Discord). Full audit trail. Emergency pause/kill controls. Consecutive-approval learning suggests auto-approve rules.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Dashboard (13 Pages)
|
|
138
|
+
|
|
139
|
+
Built with React 19 and Tailwind CSS 4. Served by the daemon at `http://localhost:3142`.
|
|
140
|
+
|
|
141
|
+
| Page | Purpose |
|
|
142
|
+
|---|---|
|
|
143
|
+
| Chat | Primary conversation interface with streaming |
|
|
144
|
+
| Tasks | Active commitments and background work queue |
|
|
145
|
+
| Content Pipeline | Multi-step content generation and review |
|
|
146
|
+
| Knowledge Graph | Visual vault explorer — entities, facts, relationships |
|
|
147
|
+
| Memory | Raw vault search and inspection |
|
|
148
|
+
| Calendar | Google Calendar integration with scheduling tools |
|
|
149
|
+
| Agent Office | Multi-agent delegation status and role management |
|
|
150
|
+
| Command Center | Tool history, execution logs, proactive notifications |
|
|
151
|
+
| Authority | Approval queue, permission rules, audit trail |
|
|
152
|
+
| Awareness | Live desktop feed, activity timeline, suggestions |
|
|
153
|
+
| Workflows | Visual builder, execution monitor, version history |
|
|
154
|
+
| Goals | OKR dashboard — kanban, timeline, and metrics views |
|
|
155
|
+
| Settings | LLM providers, TTS/STT, channels, behavior config |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Configuration
|
|
160
|
+
|
|
161
|
+
JARVIS stores its configuration at `~/.jarvis/config.yaml`. Run `jarvis onboard` for interactive setup — it walks through LLM provider, voice, channels, personality, and authority settings.
|
|
162
|
+
|
|
163
|
+
```yaml
|
|
164
|
+
daemon:
|
|
165
|
+
port: 3142
|
|
166
|
+
data_dir: "~/.jarvis"
|
|
167
|
+
db_path: "~/.jarvis/jarvis.db"
|
|
168
|
+
|
|
169
|
+
llm:
|
|
170
|
+
primary: "anthropic"
|
|
171
|
+
fallback: ["openai", "gemini", "ollama"]
|
|
172
|
+
anthropic:
|
|
173
|
+
api_key: "sk-ant-..."
|
|
174
|
+
model: "claude-sonnet-4-6"
|
|
175
|
+
|
|
176
|
+
personality:
|
|
177
|
+
core_traits: ["loyal", "efficient", "proactive"]
|
|
178
|
+
assistant_name: "Jarvis"
|
|
179
|
+
|
|
180
|
+
authority:
|
|
181
|
+
default_level: 3
|
|
182
|
+
|
|
183
|
+
active_role: "personal-assistant"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
See [config.example.yaml](config.example.yaml) for the full reference including Google OAuth, Telegram, Discord, ElevenLabs, and voice settings.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Development
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
bun test # Run all tests (379 tests across 22 files)
|
|
194
|
+
bun run dev # Hot-reload daemon
|
|
195
|
+
bun run build:ui # Rebuild dashboard
|
|
196
|
+
bun run db:init # Initialize or reset the database
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Stack
|
|
200
|
+
|
|
201
|
+
- **Runtime**: Bun (not Node.js)
|
|
202
|
+
- **Language**: TypeScript (ESM)
|
|
203
|
+
- **Database**: SQLite via `bun:sqlite`
|
|
204
|
+
- **UI**: React 19, Tailwind CSS 4, `@xyflow/react`
|
|
205
|
+
- **LLM**: Anthropic Claude, OpenAI GPT, Google Gemini, Ollama
|
|
206
|
+
- **Desktop sidecar**: Go (JWT auth, WebSocket RPC, platform-specific automation)
|
|
207
|
+
- **Voice**: openwakeword (ONNX), Edge TTS / ElevenLabs
|
|
208
|
+
- **Package**: [`@usejarvis/brain`](https://www.npmjs.com/package/@usejarvis/brain) on npm
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Development Status
|
|
213
|
+
|
|
214
|
+
### Completed Milestones
|
|
215
|
+
|
|
216
|
+
| # | Milestone | Summary |
|
|
217
|
+
|---|---|---|
|
|
218
|
+
| 1 | LLM Conversations | Multi-provider streaming, personality engine |
|
|
219
|
+
| 2 | Tool Execution Loop | 14+ builtin tools, 200-iteration agent loop |
|
|
220
|
+
| 3 | Memory Retrieval | Vault knowledge graph injected per message |
|
|
221
|
+
| 4 | Browser Control | Chromium auto-launch, CDP, 7 browser tools |
|
|
222
|
+
| 5 | Proactive Agent | CommitmentExecutor, Gmail/Calendar observers, research queue |
|
|
223
|
+
| 6 | Dashboard UI | 13-page React 19 dashboard, Google integrations |
|
|
224
|
+
| 7 | Multi-Agent Hierarchy | `delegate_task`, AgentTaskManager, 9 specialist roles |
|
|
225
|
+
| 8 | Communication Channels | Telegram, Discord, pluggable STT, voice transcription |
|
|
226
|
+
| 9 | Native App Control | Go sidecar, platform-specific automation, 7 desktop tools |
|
|
227
|
+
| 10 | Voice Interface | Edge TTS / ElevenLabs, binary WS, wake word, streaming playback |
|
|
228
|
+
| 11 | Authority & Autonomy | Runtime enforcement, soft-gate approvals, audit trail, emergency controls |
|
|
229
|
+
| 12 | Distribution & Onboarding | `jarvis` CLI, install.sh, npm package, interactive wizard |
|
|
230
|
+
| 13 | Continuous Awareness | Desktop capture, OCR+Vision, proactive suggestions, overlay widget |
|
|
231
|
+
| 14 | Workflow Automation | Visual builder, 50+ nodes, NL creation, self-healing execution |
|
|
232
|
+
| 15 | Plugin Ecosystem | TypeScript SDK, tiered permissions, official plugin registry |
|
|
233
|
+
| 16 | Autonomous Goal Pursuit | OKR hierarchy, 0.0-1.0 scoring, daily rhythm, accountability |
|
|
234
|
+
|
|
235
|
+
**379 tests passing across 22 test files. ~65,000 lines of TypeScript + Go.**
|
|
236
|
+
|
|
237
|
+
### Upcoming
|
|
238
|
+
|
|
239
|
+
| # | Milestone |
|
|
240
|
+
|---|---|
|
|
241
|
+
| 17 | Smart Home — Home Assistant integration |
|
|
242
|
+
| 18 | Financial Intelligence — Plaid, portfolio tracking |
|
|
243
|
+
| 19 | Mobile Companion — React Native dashboard |
|
|
244
|
+
| 20 | Self-Improvement — Autonomous prompt evolution |
|
|
245
|
+
| 21 | Multi-Modal — DALL-E 3, full video/image processing |
|
|
246
|
+
| 22 | Swarm Intelligence — Multi-device coordination |
|
|
247
|
+
| — | Windows and macOS sidecar installers |
|
|
248
|
+
|
|
249
|
+
See [VISION.md](VISION.md) for the full roadmap with detailed specifications.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Documentation
|
|
254
|
+
|
|
255
|
+
- [VISION.md](VISION.md) — Full roadmap and milestone specifications
|
|
256
|
+
- [docs/LLM_PROVIDERS.md](docs/LLM_PROVIDERS.md) — LLM provider configuration
|
|
257
|
+
- [docs/WORKFLOW_AUTOMATION.md](docs/WORKFLOW_AUTOMATION.md) — Workflow engine guide
|
|
258
|
+
- [docs/VAULT_EXTRACTOR.md](docs/VAULT_EXTRACTOR.md) — Memory and knowledge vault
|
|
259
|
+
- [docs/PERSONALITY_ENGINE.md](docs/PERSONALITY_ENGINE.md) — Personality and role system
|
|
260
|
+
- [config.example.yaml](config.example.yaml) — Full configuration reference
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Requirements
|
|
265
|
+
|
|
266
|
+
- **Bun** >= 1.0
|
|
267
|
+
- **OS**: Windows, macOS, or Linux
|
|
268
|
+
- **LLM API key** — at least one of: Anthropic, OpenAI, Google Gemini, or a local Ollama instance
|
|
269
|
+
- Google OAuth credentials (optional — Calendar and Gmail integration)
|
|
270
|
+
- Telegram bot token (optional — notification channel)
|
|
271
|
+
- Discord bot token (optional — notification channel)
|
|
272
|
+
- ElevenLabs API key (optional — premium TTS)
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## License
|
|
277
|
+
|
|
278
|
+
[Jarvis Source Available License 2.0](LICENSE) (based on RSALv2)
|