euron-code 0.4.2__tar.gz → 0.5.1__tar.gz
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.
- {euron_code-0.4.2 → euron_code-0.5.1}/CHANGELOG.md +76 -14
- {euron_code-0.4.2 → euron_code-0.5.1}/PKG-INFO +100 -22
- {euron_code-0.4.2 → euron_code-0.5.1}/README.md +99 -21
- {euron_code-0.4.2 → euron_code-0.5.1}/pyproject.toml +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/__init__.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/agent.py +225 -5
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/api.py +69 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/attachments.py +3 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/auth.py +1 -1
- euron_code-0.5.1/src/euron_code/builtin_skills/build-from-reference/SKILL.md +28 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/cli.py +20 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/config.py +4 -2
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/context.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/doctor.py +3 -3
- euron_code-0.5.1/src/euron_code/error_hints.py +65 -0
- euron_code-0.5.1/src/euron_code/errorlog.py +266 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/hooks.py +2 -2
- euron_code-0.5.1/src/euron_code/licensing.py +67 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/permissions.py +2 -2
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/prompts.py +15 -3
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/repl.py +78 -17
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/sessions.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/__init__.py +5 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/background.py +12 -8
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/base.py +244 -244
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/db.py +1 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/document.py +1 -4
- euron_code-0.5.1/src/euron_code/tools/erie.py +271 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/fs.py +4 -13
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/ignore.py +75 -75
- euron_code-0.5.1/src/euron_code/tools/oss.py +178 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/reuse.py +6 -5
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/search.py +2 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/shell.py +62 -5
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/skill.py +1 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/symbols.py +1 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/task.py +1 -4
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/todo.py +1 -3
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/tools/web.py +1 -2
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/usage_view.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/conftest.py +17 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/mock_gateway.py +215 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_api_shell.py +160 -160
- euron_code-0.5.1/tests/test_bench.py +46 -0
- euron_code-0.5.1/tests/test_erie.py +339 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_permissions.py +91 -91
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_tools_fs.py +143 -143
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v2_tokens_shortcuts.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_accounts_value_setup.py +3 -3
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_context.py +1 -1
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v4.py +13 -4
- euron_code-0.5.1/tests/test_v5.py +425 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/.gitignore +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/LICENSE +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/__main__.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/activity.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/builtin_skills/explain-codebase/SKILL.md +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/builtin_skills/review/SKILL.md +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/builtin_skills/test-writer/SKILL.md +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/cache.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/checkpoints.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/contextforge/LICENSE +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/contextforge/__init__.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/contextforge/text.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/contextforge/toolout.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/credentials.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/documents.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/frontmatter.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/keys.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/memory.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/project_setup.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/repomap.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/rules.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/skills.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/textsafe.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/trust.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/src/euron_code/ui.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/helpers.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/serve_helper.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_agent_mock.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_cli_e2e.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_context_memory_sessions.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_db.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_powershell_exit_codes.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_repl.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_search.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_textsafe.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v2_rules_skills_hooks.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v2_usage_headers.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v31_security.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_activity.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_attachments.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_live_repl.py +0 -0
- {euron_code-0.4.2 → euron_code-0.5.1}/tests/test_v3_single_login.py +0 -0
|
@@ -1,5 +1,71 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.1 (2026-11-05)
|
|
4
|
+
|
|
5
|
+
- Running `euron` again right after a run finished no longer says Euron Code is already running for
|
|
6
|
+
your account: the login is freed when Euron Code exits.
|
|
7
|
+
|
|
8
|
+
## 0.5.0 (2026-11-05)
|
|
9
|
+
|
|
10
|
+
### Build from references (V5 contract section 1)
|
|
11
|
+
- New tools `oss_search` (repos or code), `oss_tree` and `oss_read` through Euron:
|
|
12
|
+
every result shows its licence; only MIT, Apache-2.0, BSD, ISC, 0BSD, Unlicense, MPL-2.0, CC0 and Zlib.
|
|
13
|
+
A `license_not_permitted` answer tells the model plainly it must not use that code, and the client drops
|
|
14
|
+
any non-permitted result it might still receive. MPL-2.0 is flagged as file-level copyleft.
|
|
15
|
+
- `add_third_party_notice` records each reused source in the project's `THIRD_PARTY_NOTICES.md`.
|
|
16
|
+
- Reuse-first is the default for "build me X" and UI work (system prompt + built-in skill
|
|
17
|
+
`build-from-reference`): Euron's index first (typescript for UI), then permissive open source, one or two
|
|
18
|
+
references, read only the needed files, adapt with attribution, generate only what is missing; prefer the
|
|
19
|
+
project's existing component system. Budget notes after 4 searches and 6 reads.
|
|
20
|
+
- `/reference <what>` shows candidates from both sources with licences. The completion report and `-p` JSON
|
|
21
|
+
list what was reused (`Reused: repo/path (MIT)`, `"reused": [...]`).
|
|
22
|
+
|
|
23
|
+
### Error log (V5 contract section 2)
|
|
24
|
+
- Service and network errors, tool errors, crashes (fingerprint: type + top frame), hook failures and slash
|
|
25
|
+
command failures are reported, scrubbed (no prompts, file contents, command text, env values or secrets;
|
|
26
|
+
quoted text removed, home and project paths masked, key-like strings redacted), batched (20 per request,
|
|
27
|
+
under 8 KB) and sent in the background with a 3 s timeout; never blocks or fails what you are doing.
|
|
28
|
+
- Offline queue in `~/.euron/errors.jsonl` (at most 500), sent next time; `/bug` lists the last 10 with ids.
|
|
29
|
+
- Off with `errorReporting: false` or `EURON_NO_ERROR_REPORTS=1`. Disclosed in the README.
|
|
30
|
+
- An unexpected crash now prints a short message with an error id instead of a traceback.
|
|
31
|
+
|
|
32
|
+
### Reuse engine client (V6 contract section 6)
|
|
33
|
+
- `find_reusable(requirement, components, allow_external)`: the first step for build-type requests (a
|
|
34
|
+
heuristic adds a short note to the request; bug fixes, small edits and questions skip it). The model
|
|
35
|
+
splits the request into 1-8 components; Euron decides REUSE / ADAPT / GENERATE per component and
|
|
36
|
+
the CLI shows the table (component, decision, repository@sha, licence, confidence). The client re-checks
|
|
37
|
+
every decision: a non-permitted licence or a failed security scan always becomes GENERATE, unverified
|
|
38
|
+
security turns REUSE into ADAPT.
|
|
39
|
+
- The activity line shows the engine's states (searching, found, checking licence, validating security,
|
|
40
|
+
reusing, adapting, generating, running tests, integration completed), driven by the real tool calls.
|
|
41
|
+
- After tests pass on reused or adapted code, its metadata (never code) goes to the student's private
|
|
42
|
+
component library (`POST /v1/components`); `/components` lists it.
|
|
43
|
+
- Settings `reuse.enabled` and `reuse.external` (both default true), `--no-reuse`. A reuse engine or GitHub
|
|
44
|
+
failure never fails the turn: it generates instead, with a dim note.
|
|
45
|
+
- `-p --output-format json` gains `reuse` and `task_id`; the completion report adds "Reuse plan: ...".
|
|
46
|
+
|
|
47
|
+
### From the first live build test
|
|
48
|
+
- Reuse no longer depends on the model choosing it: for a build request the CLI splits the request into
|
|
49
|
+
components locally (no model call) and calls `/v1/reuse/plan` before the first model call, then puts
|
|
50
|
+
the decisions, files and licences into that first message and shows the table. Websites and UI ask for
|
|
51
|
+
Euron's TypeScript / TSX components. `find_reusable` stays available for more.
|
|
52
|
+
- The details the user gives are used: a system-prompt rule, an attached local photo is copied into
|
|
53
|
+
`assets/` (or `public/`) and referenced, and once per prompt the changed files are checked for
|
|
54
|
+
"Your Name", "Lorem ipsum", "example@example.com" and "TODO: replace", with one nudge to fix them.
|
|
55
|
+
- "Context was N% full ..." is printed only when it freed at least 2,000 tokens or the context was
|
|
56
|
+
60% full or more.
|
|
57
|
+
- The error-report note moved from the privacy section to Settings.
|
|
58
|
+
|
|
59
|
+
### Branding
|
|
60
|
+
- README top: the official Euron Code definition, the 3-step start, "Everything you need to build" and
|
|
61
|
+
the daily allowance with its fair-use note; usage at `euron usage`, `/usage` and euron.one.
|
|
62
|
+
- No vendor or model names, and no internal service details, anywhere a student can see. The `/usage`
|
|
63
|
+
value line reads "at reference market API prices". `/status`, `/cost`, `/context` and `euron doctor` show
|
|
64
|
+
percentages and plain words instead of internal sizes and addresses.
|
|
65
|
+
|
|
66
|
+
### Fewer tokens per request
|
|
67
|
+
- Tool descriptions shortened (about 730 fewer tokens on every request).
|
|
68
|
+
|
|
3
69
|
## 0.4.2 (2026-11-05)
|
|
4
70
|
|
|
5
71
|
### Changed
|
|
@@ -25,7 +91,7 @@
|
|
|
25
91
|
- The system prompt now says to use these for servers instead of `bash`.
|
|
26
92
|
|
|
27
93
|
### Reuse Euron's open-source code (V4 contract section 3)
|
|
28
|
-
- `euron_reuse_search` and `euron_reuse_read` over
|
|
94
|
+
- `euron_reuse_search` and `euron_reuse_read` over Euron's public MIT repos; the
|
|
29
95
|
system prompt asks to search before writing a substantial common component and to keep the licence
|
|
30
96
|
notice; `/reuse <query>`.
|
|
31
97
|
|
|
@@ -39,7 +105,7 @@
|
|
|
39
105
|
|
|
40
106
|
### More tools and gaps closed (audit increment 6)
|
|
41
107
|
- `find_symbol` (definitions and references), `delete_file` and `move_file` (both undone by `/rewind`).
|
|
42
|
-
- `AGENTS.md` and
|
|
108
|
+
- `AGENTS.md` and other agents' instruction files are read alongside `EURON.md` (trust-gated like it).
|
|
43
109
|
- Inline `<tool_call>` JSON is repaired (trailing commas, single quotes, Python literals); garbage
|
|
44
110
|
becomes an error result for the model, never a crash.
|
|
45
111
|
- `/rewind` works after `euron --resume`: checkpoints are kept in `~/.euron/checkpoints/<session>/`
|
|
@@ -48,9 +114,7 @@
|
|
|
48
114
|
- `/export` warns that the file contains tool output.
|
|
49
115
|
|
|
50
116
|
### Euron-only client and privacy (V4 contract section 1, audit increment 3)
|
|
51
|
-
- A 403 `client_not_supported`
|
|
52
|
-
- README and the first image attach say where data goes: prompts on GPUs rented from Vast.ai (not
|
|
53
|
-
logged), images described by Google Gemini (not stored).
|
|
117
|
+
- A 403 `client_not_supported` explains that Euron Code works through the euron app only.
|
|
54
118
|
|
|
55
119
|
### CI
|
|
56
120
|
- `.github/workflows/ci.yml`: pytest on ubuntu, windows and macos x Python 3.9 and 3.12 (ripgrep on one
|
|
@@ -70,7 +134,7 @@
|
|
|
70
134
|
1024. A request that would not fit is compacted first. The prompt estimate starts from the last
|
|
71
135
|
server-reported `prompt_tokens` and adds only the new messages.
|
|
72
136
|
|
|
73
|
-
### Context management
|
|
137
|
+
### Context management
|
|
74
138
|
- An output budget is reserved (min(maxOutputTokens, window/4)); percentages are of the usable rest.
|
|
75
139
|
- From 50%, tool outputs are cleared biggest and oldest first until under 40% (the latest step is never
|
|
76
140
|
touched). Each stub names the call (for reads: path and line range) so the model can read it again.
|
|
@@ -82,13 +146,13 @@
|
|
|
82
146
|
2,000 lines return an outline (definitions with line numbers) unless a range is given. The system
|
|
83
147
|
prompt says: search first, read ranges, edit with `edit_file`, never rewrite big files.
|
|
84
148
|
|
|
85
|
-
### A live session
|
|
149
|
+
### A live session
|
|
86
150
|
- **Activity line** while the agent works: an animated glyph, a rotating verb, elapsed time, tokens
|
|
87
151
|
sent and received (counted live from the stream), what is happening (`thinking`, `writing app.py`,
|
|
88
|
-
`running pytest 12s`, `waiting for
|
|
152
|
+
`running pytest 12s`, `waiting for capacity (2 ahead)`, `retrying in 3s`) and `esc to interrupt`.
|
|
89
153
|
On a terminal it redraws 10 times a second; without one it prints a progress line every 15 s; in `-p`
|
|
90
|
-
mode it appears on stderr only when stderr is a terminal.
|
|
91
|
-
|
|
154
|
+
mode it appears on stderr only when stderr is a terminal. Queue positions are shown
|
|
155
|
+
instead of being ignored.
|
|
92
156
|
- **Status bar**: model and effort, mode, session tokens and their value, context %, today's and this
|
|
93
157
|
week's remaining quota, session uptime. Refreshed continuously.
|
|
94
158
|
- **Type while it works.** The turn runs in a worker thread and the prompt stays live. `/usage`, `/cost`,
|
|
@@ -119,8 +183,7 @@
|
|
|
119
183
|
|
|
120
184
|
### Plan quotas and value (V3 contract)
|
|
121
185
|
- `/usage` shows the plan tier, all four periods (day, week, month, year) with bars and refill times,
|
|
122
|
-
`quota.blocked` prominently, and value lines at
|
|
123
|
-
Sonnet 5.5 API list prices · included in your plan"), plus what the allowance is worth. `/cost` and the
|
|
186
|
+
`quota.blocked` prominently, and value lines at reference market API prices, plus what the allowance is worth. `/cost` and the
|
|
124
187
|
status bar show this session's value. Always labelled as a reference, never a bill.
|
|
125
188
|
- New 429 codes `monthly_token_limit`, `yearly_token_limit` and `cooldown`, each with its refill time in
|
|
126
189
|
local time; exit code 5 in `-p` mode.
|
|
@@ -231,8 +294,7 @@
|
|
|
231
294
|
at turn N"; a read that reached the end of the file covers later partial reads.
|
|
232
295
|
- Micro-compaction at 60% of the context: tool outputs older than the last 3 steps become one-line stubs
|
|
233
296
|
(no model call); the summary still happens at 75%.
|
|
234
|
-
- `/cost` and `/context` report prompt tokens sent, tokens
|
|
235
|
-
(`usage.prompt_tokens_details.cached_tokens`) and tokens saved by each measure. `-p --output-format
|
|
297
|
+
- `/cost` and `/context` report prompt tokens sent, tokens reused from cache and tokens saved by each measure. `-p --output-format
|
|
236
298
|
json` adds `cached_tokens` and `saved_tokens`.
|
|
237
299
|
|
|
238
300
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: euron-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: Euron Code: an agentic coding assistant in your terminal for Euron Plus and Super 30 students.
|
|
5
5
|
Project-URL: Homepage, https://euron.one/code-agent
|
|
6
6
|
Author-email: Euron <contact@euron.one>
|
|
@@ -66,9 +66,20 @@ Description-Content-Type: text/markdown
|
|
|
66
66
|
|
|
67
67
|
# Euron Code
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
**Imagine It. Prompt It. Build Anything.**
|
|
70
|
+
|
|
71
|
+
Your AI Software Engineer. Ready to Build.
|
|
72
|
+
|
|
73
|
+
From a simple website to a complete AI-powered application, Euron Code turns your ideas into real,
|
|
74
|
+
working software.
|
|
75
|
+
|
|
76
|
+
It doesn't just write code. It thinks, plans, builds, runs, tests, finds errors, and fixes them. All from
|
|
77
|
+
your terminal.
|
|
78
|
+
|
|
79
|
+
No more starting from scratch. Euron Code intelligently reuses existing open-source implementations,
|
|
80
|
+
writes what's missing, and brings everything together.
|
|
81
|
+
|
|
82
|
+
One idea. One prompt. Endless possibilities.
|
|
72
83
|
|
|
73
84
|
## Get started in 3 steps
|
|
74
85
|
|
|
@@ -91,12 +102,37 @@ Enter.
|
|
|
91
102
|
|
|
92
103
|
**3. Type what you want**, or type `/` to see every command:
|
|
93
104
|
|
|
94
|
-
- `
|
|
105
|
+
- `build me a todo app with a FastAPI backend and tests`
|
|
95
106
|
- `the tests fail, find out why and fix them`
|
|
96
|
-
- `/
|
|
107
|
+
- `/usage` to see your tokens today, this week, month and year
|
|
97
108
|
|
|
98
109
|
That's it. Press **Esc** to stop it, **Ctrl-D** to quit.
|
|
99
110
|
|
|
111
|
+
## Everything you need to build
|
|
112
|
+
|
|
113
|
+
- 🧠 **Thinks Before It Codes**: understands your requirements and plans the implementation.
|
|
114
|
+
- ⚡ **Builds Complete Applications**: websites, SaaS products, AI agents, APIs, dashboards, automations,
|
|
115
|
+
and more.
|
|
116
|
+
- 🛠️ **Writes, Runs & Fixes**: creates files, executes commands, runs tests, and fixes errors.
|
|
117
|
+
- 🔍 **Reuses Proven Code**: discovers reusable Euron and approved open-source components to build faster.
|
|
118
|
+
- 🔄 **Works Across Your Project**: understands existing code and makes changes without unnecessarily
|
|
119
|
+
rebuilding everything.
|
|
120
|
+
- 🚀 **From Idea to Working Software**: helps you build, test, and prepare real applications for
|
|
121
|
+
deployment.
|
|
122
|
+
|
|
123
|
+
## 10 million AI tokens every day
|
|
124
|
+
|
|
125
|
+
Build more. Experiment more. Create without constantly worrying about tokens.
|
|
126
|
+
|
|
127
|
+
*Up to 10 million tokens per day, subject to fair-use policies, model availability, and plan limits.*
|
|
128
|
+
|
|
129
|
+
Included with **Euron Plus** and **Super 30** (get Plus at https://euron.one/plus).
|
|
130
|
+
|
|
131
|
+
Track your usage any time: `euron usage` in a terminal, `/usage` in a session, or
|
|
132
|
+
https://euron.one/code-agent/usage.
|
|
133
|
+
|
|
134
|
+
*Euron Code: You Imagine. We Code. You Create.*
|
|
135
|
+
|
|
100
136
|
## What happens automatically
|
|
101
137
|
|
|
102
138
|
- **Project setup.** The first time in a folder it writes `EURON.md` (your stack, build and test
|
|
@@ -110,8 +146,10 @@ That's it. Press **Esc** to stop it, **Ctrl-D** to quit.
|
|
|
110
146
|
Safe to delete; never holds secrets; git-ignored.
|
|
111
147
|
- **Runs your app.** It can start your dev server in the background, check it answers
|
|
112
148
|
(`check_app`, optionally in a headless browser), read its logs and stop it again.
|
|
113
|
-
- **
|
|
114
|
-
Euron's open-source repos
|
|
149
|
+
- **Builds from references, not from scratch.** For "build me X" and for UI work it first searches
|
|
150
|
+
Euron's open-source repos, then permissively licensed projects on GitHub, reads only the files it needs,
|
|
151
|
+
adapts them (keeping the licence notice and recording each source in `THIRD_PARTY_NOTICES.md`) and
|
|
152
|
+
writes only what is missing. Faster, and far fewer tokens. Try `/reference <what you want to build>`.
|
|
115
153
|
- **Live progress.** While it works you see what it is doing, the time, tokens and an `esc to interrupt`
|
|
116
154
|
line, and you can keep typing (see below).
|
|
117
155
|
|
|
@@ -126,7 +164,9 @@ Type `/` and pick from the menu. The most useful:
|
|
|
126
164
|
| `/status` | account, key, model, mode, session time and quota at a glance |
|
|
127
165
|
| `/cost`, `/context` | tokens of this session and what fills the context |
|
|
128
166
|
| `/attach <files>` | attach files, folders, Word/Excel/PowerPoint/PDF documents or images |
|
|
167
|
+
| `/reference <what>` | references to build from: Euron's repos + permissive open source, with licences |
|
|
129
168
|
| `/reuse <query>` | search Euron's open-source repos for code to reuse |
|
|
169
|
+
| `/components` | your component library: reused code whose tests passed in your projects |
|
|
130
170
|
| `/ps` | background processes (dev servers) it started; `/ps stop` |
|
|
131
171
|
| `/plan` | plan mode: it explores and proposes a plan, changes nothing |
|
|
132
172
|
| `/review` | review your uncommitted changes |
|
|
@@ -164,23 +204,52 @@ how full the context is, what is left today and this week, and how long the sess
|
|
|
164
204
|
Shift+Tab cycles default -> acceptEdits -> plan, and reaches bypass only if you started with it.
|
|
165
205
|
`--add-dir ../shared` lets it also work in another folder.
|
|
166
206
|
|
|
167
|
-
##
|
|
207
|
+
## Your code and your account
|
|
168
208
|
|
|
169
209
|
- Your code stays on your computer.
|
|
170
|
-
- Images you attach are turned into a text description by Euron's image understanding and are not stored.
|
|
171
210
|
- One login at a time: signing in on another computer signs this one out.
|
|
172
211
|
- Don't paste passwords or API keys into prompts.
|
|
173
212
|
|
|
174
|
-
##
|
|
213
|
+
## How Euron Code reuses proven code
|
|
214
|
+
|
|
215
|
+
Search first, reuse second, modify third, generate only what is missing. When you ask it to build an app,
|
|
216
|
+
a feature, a UI or an integration, Euron Code itself splits the request into a few components and asks
|
|
217
|
+
Euron for proven code for each one before the model starts (the model can ask for more with
|
|
218
|
+
`find_reusable`): Euron's own repositories, your own component library and approved open-source
|
|
219
|
+
projects. You see a decision table
|
|
220
|
+
(component, REUSE / ADAPT / GENERATE, repository@commit, licence, confidence). REUSE reads the pinned files
|
|
221
|
+
and integrates them with minimal edits, ADAPT reads and modifies them, GENERATE writes the part itself.
|
|
222
|
+
For websites and UI it asks for Euron's TypeScript / TSX components. Small edits, bug fixes and questions
|
|
223
|
+
skip this step. The details you give (your name, photo, email, links) go into the files; an attached
|
|
224
|
+
photo is copied into the project's `assets/` (or `public/`) folder, and if a changed file still says
|
|
225
|
+
"Your Name" or "Lorem ipsum" Euron Code is asked once to fix it. If that search is unavailable it simply generates,
|
|
226
|
+
with a short note. When the tests pass on reused or adapted code, the component is added to
|
|
227
|
+
your private library (its name, source, commit, licence and test result; never your code): `/components`
|
|
228
|
+
lists it. Turn reuse off with `--no-reuse` for one run, `reuse.enabled false`, or keep it to Euron's own
|
|
229
|
+
code with `reuse.external false`.
|
|
230
|
+
|
|
231
|
+
Licence rules: only MIT, Apache-2.0, BSD, ISC, 0BSD, Unlicense, MPL-2.0, CC0 and Zlib code is reused (see
|
|
232
|
+
below); a candidate whose licence or security scan fails is always turned into GENERATE by the CLI itself,
|
|
233
|
+
whatever the server says.
|
|
234
|
+
|
|
235
|
+
## Reusing open source safely
|
|
236
|
+
|
|
237
|
+
Only code under MIT, Apache-2.0, BSD-2/3-Clause, ISC, 0BSD, Unlicense, MPL-2.0, CC0-1.0 or Zlib is used.
|
|
238
|
+
GPL, AGPL, LGPL, SSPL and unlicensed code is never copied: Euron does not serve it and the CLI checks
|
|
239
|
+
again. MPL-2.0 files stay separate files under their own licence. Every reused source is recorded in
|
|
240
|
+
your project's `THIRD_PARTY_NOTICES.md`, and the completion report lists it (`Reused: owner/repo/path
|
|
241
|
+
(MIT)`).
|
|
175
242
|
|
|
176
|
-
|
|
177
|
-
about tokens. Included with Euron Plus and Super 30.
|
|
243
|
+
## Limits and value
|
|
178
244
|
|
|
179
|
-
|
|
245
|
+
Your plan has a token allowance per **day**, **week**, **month** and **year**, the same for Euron Plus
|
|
246
|
+
and Super 30.
|
|
247
|
+
`/usage` (or `euron usage`) shows each with a bar, what is left and when it refills, in your local time.
|
|
248
|
+
Days, weeks (Monday), months and years start at midnight IST. If a limit is reached, Euron Code says
|
|
249
|
+
which one and when it refills; nothing else breaks.
|
|
180
250
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
If a limit is reached, Euron Code says which one and when it refills; nothing else breaks.
|
|
251
|
+
It also shows what your own usage would cost at reference market API prices. **It is not a bill: you
|
|
252
|
+
pay nothing extra.** The same numbers are on https://euron.one/code-agent/usage.
|
|
184
253
|
|
|
185
254
|
## Run and check your app
|
|
186
255
|
|
|
@@ -273,7 +342,7 @@ prompt back in the input line. Files you changed again after that turn are skipp
|
|
|
273
342
|
|
|
274
343
|
### Continue later
|
|
275
344
|
|
|
276
|
-
Every session is saved under `~/.euron/sessions/` (text only
|
|
345
|
+
Every session is saved under `~/.euron/sessions/` (text only, without attached images).
|
|
277
346
|
|
|
278
347
|
```bash
|
|
279
348
|
euron --continue # pick up the latest session in this folder
|
|
@@ -390,7 +459,7 @@ Hooks are your own shell commands that run at fixed points. Put them in `setting
|
|
|
390
459
|
| `Stop` | when the model finishes its answer | stderr goes to the model and it continues (at most twice) |
|
|
391
460
|
|
|
392
461
|
Any other non-zero exit is shown as a warning and blocks nothing. `matcher` is a regular expression
|
|
393
|
-
over the tool name; common names (`Edit`, `Write`, `MultiEdit`, `Read`, `Bash`, `Grep`, `Glob`,
|
|
462
|
+
over the tool name; the common short names (`Edit`, `Write`, `MultiEdit`, `Read`, `Bash`, `Grep`, `Glob`,
|
|
394
463
|
`WebFetch`) and Euron Code names (`edit_file`, `bash`, ...) both work. The command runs in the project
|
|
395
464
|
folder with `cmd.exe` on Windows and `sh` elsewhere, and gets one JSON object on stdin: `event`,
|
|
396
465
|
`session_id`, `cwd`, `tool_name`, `tool_input`, `tool_output` (PostToolUse) or `prompt`. Environment:
|
|
@@ -437,6 +506,9 @@ folder or container.
|
|
|
437
506
|
|
|
438
507
|
`--permission-mode plan` gives a read-only run that ends with a plan.
|
|
439
508
|
|
|
509
|
+
With `--output-format json` the result also has `reuse` (one entry per planned component: `component`,
|
|
510
|
+
`decision`, `repo`, `license`), `reused` (files read from references) and `task_id`.
|
|
511
|
+
|
|
440
512
|
Exit codes: `0` ok, `1` error, `2` bad usage, `3` no Euron Plus / Super 30 access, `4` not logged in or
|
|
441
513
|
key rejected, `5` a token allowance used (day, week, month, year) or a cooldown, `6` `--max-turns` reached,
|
|
442
514
|
`130` interrupted.
|
|
@@ -479,8 +551,16 @@ the connection itself is opened read-only. To let it write (local dev databases
|
|
|
479
551
|
| `toolOutputMaxChars` | `12000` | longer tool output is cut to head + tail |
|
|
480
552
|
| `hooks` | `{}` | see [Hooks](#hooks) |
|
|
481
553
|
| `webFetch` | `true` | allow the web page tool (it still asks per site) |
|
|
554
|
+
| `reuse.enabled` | `true` | look for reusable code before building (`--no-reuse` for one run) |
|
|
555
|
+
| `reuse.external` | `true` | also search permissively licensed GitHub projects, not only Euron's |
|
|
556
|
+
| `errorReporting` | `true` | send a short error report when something fails (see below) |
|
|
482
557
|
| `db.connections.<name>` | | database DSNs |
|
|
483
558
|
|
|
559
|
+
**Error reports.** When something fails, Euron Code sends Euron a short error report (the error kind and
|
|
560
|
+
code, the tool or command name, version and OS; never your prompts, code or secrets) so it can be fixed.
|
|
561
|
+
`/bug` shows your last ones. Turn it off with `euron config set errorReporting false` or
|
|
562
|
+
`EURON_NO_ERROR_REPORTS=1`.
|
|
563
|
+
|
|
484
564
|
Environment variables: `EURON_API_KEY` (use a key without logging in, for CI), `EURON_HOME` (instead of
|
|
485
565
|
`~/.euron`), `EURON_NO_BROWSER=1`.
|
|
486
566
|
|
|
@@ -518,9 +598,7 @@ and the keychain.
|
|
|
518
598
|
|
|
519
599
|
## Privacy and safety
|
|
520
600
|
|
|
521
|
-
- Your code stays on your computer
|
|
522
|
-
with Euron's model. Attached images are turned into text by Euron's image understanding and are not
|
|
523
|
-
stored.
|
|
601
|
+
- Your code stays on your computer; the agent works on it from your terminal.
|
|
524
602
|
- Your key is never printed in full and never logged.
|
|
525
603
|
- Edits and commands ask first. Files outside the project folder always ask, even to read.
|
|
526
604
|
- Hooks are commands you configure; project hooks only run after you trust them.
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
# Euron Code
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
**Imagine It. Prompt It. Build Anything.**
|
|
4
|
+
|
|
5
|
+
Your AI Software Engineer. Ready to Build.
|
|
6
|
+
|
|
7
|
+
From a simple website to a complete AI-powered application, Euron Code turns your ideas into real,
|
|
8
|
+
working software.
|
|
9
|
+
|
|
10
|
+
It doesn't just write code. It thinks, plans, builds, runs, tests, finds errors, and fixes them. All from
|
|
11
|
+
your terminal.
|
|
12
|
+
|
|
13
|
+
No more starting from scratch. Euron Code intelligently reuses existing open-source implementations,
|
|
14
|
+
writes what's missing, and brings everything together.
|
|
15
|
+
|
|
16
|
+
One idea. One prompt. Endless possibilities.
|
|
6
17
|
|
|
7
18
|
## Get started in 3 steps
|
|
8
19
|
|
|
@@ -25,12 +36,37 @@ Enter.
|
|
|
25
36
|
|
|
26
37
|
**3. Type what you want**, or type `/` to see every command:
|
|
27
38
|
|
|
28
|
-
- `
|
|
39
|
+
- `build me a todo app with a FastAPI backend and tests`
|
|
29
40
|
- `the tests fail, find out why and fix them`
|
|
30
|
-
- `/
|
|
41
|
+
- `/usage` to see your tokens today, this week, month and year
|
|
31
42
|
|
|
32
43
|
That's it. Press **Esc** to stop it, **Ctrl-D** to quit.
|
|
33
44
|
|
|
45
|
+
## Everything you need to build
|
|
46
|
+
|
|
47
|
+
- 🧠 **Thinks Before It Codes**: understands your requirements and plans the implementation.
|
|
48
|
+
- ⚡ **Builds Complete Applications**: websites, SaaS products, AI agents, APIs, dashboards, automations,
|
|
49
|
+
and more.
|
|
50
|
+
- 🛠️ **Writes, Runs & Fixes**: creates files, executes commands, runs tests, and fixes errors.
|
|
51
|
+
- 🔍 **Reuses Proven Code**: discovers reusable Euron and approved open-source components to build faster.
|
|
52
|
+
- 🔄 **Works Across Your Project**: understands existing code and makes changes without unnecessarily
|
|
53
|
+
rebuilding everything.
|
|
54
|
+
- 🚀 **From Idea to Working Software**: helps you build, test, and prepare real applications for
|
|
55
|
+
deployment.
|
|
56
|
+
|
|
57
|
+
## 10 million AI tokens every day
|
|
58
|
+
|
|
59
|
+
Build more. Experiment more. Create without constantly worrying about tokens.
|
|
60
|
+
|
|
61
|
+
*Up to 10 million tokens per day, subject to fair-use policies, model availability, and plan limits.*
|
|
62
|
+
|
|
63
|
+
Included with **Euron Plus** and **Super 30** (get Plus at https://euron.one/plus).
|
|
64
|
+
|
|
65
|
+
Track your usage any time: `euron usage` in a terminal, `/usage` in a session, or
|
|
66
|
+
https://euron.one/code-agent/usage.
|
|
67
|
+
|
|
68
|
+
*Euron Code: You Imagine. We Code. You Create.*
|
|
69
|
+
|
|
34
70
|
## What happens automatically
|
|
35
71
|
|
|
36
72
|
- **Project setup.** The first time in a folder it writes `EURON.md` (your stack, build and test
|
|
@@ -44,8 +80,10 @@ That's it. Press **Esc** to stop it, **Ctrl-D** to quit.
|
|
|
44
80
|
Safe to delete; never holds secrets; git-ignored.
|
|
45
81
|
- **Runs your app.** It can start your dev server in the background, check it answers
|
|
46
82
|
(`check_app`, optionally in a headless browser), read its logs and stop it again.
|
|
47
|
-
- **
|
|
48
|
-
Euron's open-source repos
|
|
83
|
+
- **Builds from references, not from scratch.** For "build me X" and for UI work it first searches
|
|
84
|
+
Euron's open-source repos, then permissively licensed projects on GitHub, reads only the files it needs,
|
|
85
|
+
adapts them (keeping the licence notice and recording each source in `THIRD_PARTY_NOTICES.md`) and
|
|
86
|
+
writes only what is missing. Faster, and far fewer tokens. Try `/reference <what you want to build>`.
|
|
49
87
|
- **Live progress.** While it works you see what it is doing, the time, tokens and an `esc to interrupt`
|
|
50
88
|
line, and you can keep typing (see below).
|
|
51
89
|
|
|
@@ -60,7 +98,9 @@ Type `/` and pick from the menu. The most useful:
|
|
|
60
98
|
| `/status` | account, key, model, mode, session time and quota at a glance |
|
|
61
99
|
| `/cost`, `/context` | tokens of this session and what fills the context |
|
|
62
100
|
| `/attach <files>` | attach files, folders, Word/Excel/PowerPoint/PDF documents or images |
|
|
101
|
+
| `/reference <what>` | references to build from: Euron's repos + permissive open source, with licences |
|
|
63
102
|
| `/reuse <query>` | search Euron's open-source repos for code to reuse |
|
|
103
|
+
| `/components` | your component library: reused code whose tests passed in your projects |
|
|
64
104
|
| `/ps` | background processes (dev servers) it started; `/ps stop` |
|
|
65
105
|
| `/plan` | plan mode: it explores and proposes a plan, changes nothing |
|
|
66
106
|
| `/review` | review your uncommitted changes |
|
|
@@ -98,23 +138,52 @@ how full the context is, what is left today and this week, and how long the sess
|
|
|
98
138
|
Shift+Tab cycles default -> acceptEdits -> plan, and reaches bypass only if you started with it.
|
|
99
139
|
`--add-dir ../shared` lets it also work in another folder.
|
|
100
140
|
|
|
101
|
-
##
|
|
141
|
+
## Your code and your account
|
|
102
142
|
|
|
103
143
|
- Your code stays on your computer.
|
|
104
|
-
- Images you attach are turned into a text description by Euron's image understanding and are not stored.
|
|
105
144
|
- One login at a time: signing in on another computer signs this one out.
|
|
106
145
|
- Don't paste passwords or API keys into prompts.
|
|
107
146
|
|
|
108
|
-
##
|
|
147
|
+
## How Euron Code reuses proven code
|
|
148
|
+
|
|
149
|
+
Search first, reuse second, modify third, generate only what is missing. When you ask it to build an app,
|
|
150
|
+
a feature, a UI or an integration, Euron Code itself splits the request into a few components and asks
|
|
151
|
+
Euron for proven code for each one before the model starts (the model can ask for more with
|
|
152
|
+
`find_reusable`): Euron's own repositories, your own component library and approved open-source
|
|
153
|
+
projects. You see a decision table
|
|
154
|
+
(component, REUSE / ADAPT / GENERATE, repository@commit, licence, confidence). REUSE reads the pinned files
|
|
155
|
+
and integrates them with minimal edits, ADAPT reads and modifies them, GENERATE writes the part itself.
|
|
156
|
+
For websites and UI it asks for Euron's TypeScript / TSX components. Small edits, bug fixes and questions
|
|
157
|
+
skip this step. The details you give (your name, photo, email, links) go into the files; an attached
|
|
158
|
+
photo is copied into the project's `assets/` (or `public/`) folder, and if a changed file still says
|
|
159
|
+
"Your Name" or "Lorem ipsum" Euron Code is asked once to fix it. If that search is unavailable it simply generates,
|
|
160
|
+
with a short note. When the tests pass on reused or adapted code, the component is added to
|
|
161
|
+
your private library (its name, source, commit, licence and test result; never your code): `/components`
|
|
162
|
+
lists it. Turn reuse off with `--no-reuse` for one run, `reuse.enabled false`, or keep it to Euron's own
|
|
163
|
+
code with `reuse.external false`.
|
|
164
|
+
|
|
165
|
+
Licence rules: only MIT, Apache-2.0, BSD, ISC, 0BSD, Unlicense, MPL-2.0, CC0 and Zlib code is reused (see
|
|
166
|
+
below); a candidate whose licence or security scan fails is always turned into GENERATE by the CLI itself,
|
|
167
|
+
whatever the server says.
|
|
168
|
+
|
|
169
|
+
## Reusing open source safely
|
|
170
|
+
|
|
171
|
+
Only code under MIT, Apache-2.0, BSD-2/3-Clause, ISC, 0BSD, Unlicense, MPL-2.0, CC0-1.0 or Zlib is used.
|
|
172
|
+
GPL, AGPL, LGPL, SSPL and unlicensed code is never copied: Euron does not serve it and the CLI checks
|
|
173
|
+
again. MPL-2.0 files stay separate files under their own licence. Every reused source is recorded in
|
|
174
|
+
your project's `THIRD_PARTY_NOTICES.md`, and the completion report lists it (`Reused: owner/repo/path
|
|
175
|
+
(MIT)`).
|
|
109
176
|
|
|
110
|
-
|
|
111
|
-
about tokens. Included with Euron Plus and Super 30.
|
|
177
|
+
## Limits and value
|
|
112
178
|
|
|
113
|
-
|
|
179
|
+
Your plan has a token allowance per **day**, **week**, **month** and **year**, the same for Euron Plus
|
|
180
|
+
and Super 30.
|
|
181
|
+
`/usage` (or `euron usage`) shows each with a bar, what is left and when it refills, in your local time.
|
|
182
|
+
Days, weeks (Monday), months and years start at midnight IST. If a limit is reached, Euron Code says
|
|
183
|
+
which one and when it refills; nothing else breaks.
|
|
114
184
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
If a limit is reached, Euron Code says which one and when it refills; nothing else breaks.
|
|
185
|
+
It also shows what your own usage would cost at reference market API prices. **It is not a bill: you
|
|
186
|
+
pay nothing extra.** The same numbers are on https://euron.one/code-agent/usage.
|
|
118
187
|
|
|
119
188
|
## Run and check your app
|
|
120
189
|
|
|
@@ -207,7 +276,7 @@ prompt back in the input line. Files you changed again after that turn are skipp
|
|
|
207
276
|
|
|
208
277
|
### Continue later
|
|
209
278
|
|
|
210
|
-
Every session is saved under `~/.euron/sessions/` (text only
|
|
279
|
+
Every session is saved under `~/.euron/sessions/` (text only, without attached images).
|
|
211
280
|
|
|
212
281
|
```bash
|
|
213
282
|
euron --continue # pick up the latest session in this folder
|
|
@@ -324,7 +393,7 @@ Hooks are your own shell commands that run at fixed points. Put them in `setting
|
|
|
324
393
|
| `Stop` | when the model finishes its answer | stderr goes to the model and it continues (at most twice) |
|
|
325
394
|
|
|
326
395
|
Any other non-zero exit is shown as a warning and blocks nothing. `matcher` is a regular expression
|
|
327
|
-
over the tool name; common names (`Edit`, `Write`, `MultiEdit`, `Read`, `Bash`, `Grep`, `Glob`,
|
|
396
|
+
over the tool name; the common short names (`Edit`, `Write`, `MultiEdit`, `Read`, `Bash`, `Grep`, `Glob`,
|
|
328
397
|
`WebFetch`) and Euron Code names (`edit_file`, `bash`, ...) both work. The command runs in the project
|
|
329
398
|
folder with `cmd.exe` on Windows and `sh` elsewhere, and gets one JSON object on stdin: `event`,
|
|
330
399
|
`session_id`, `cwd`, `tool_name`, `tool_input`, `tool_output` (PostToolUse) or `prompt`. Environment:
|
|
@@ -371,6 +440,9 @@ folder or container.
|
|
|
371
440
|
|
|
372
441
|
`--permission-mode plan` gives a read-only run that ends with a plan.
|
|
373
442
|
|
|
443
|
+
With `--output-format json` the result also has `reuse` (one entry per planned component: `component`,
|
|
444
|
+
`decision`, `repo`, `license`), `reused` (files read from references) and `task_id`.
|
|
445
|
+
|
|
374
446
|
Exit codes: `0` ok, `1` error, `2` bad usage, `3` no Euron Plus / Super 30 access, `4` not logged in or
|
|
375
447
|
key rejected, `5` a token allowance used (day, week, month, year) or a cooldown, `6` `--max-turns` reached,
|
|
376
448
|
`130` interrupted.
|
|
@@ -413,8 +485,16 @@ the connection itself is opened read-only. To let it write (local dev databases
|
|
|
413
485
|
| `toolOutputMaxChars` | `12000` | longer tool output is cut to head + tail |
|
|
414
486
|
| `hooks` | `{}` | see [Hooks](#hooks) |
|
|
415
487
|
| `webFetch` | `true` | allow the web page tool (it still asks per site) |
|
|
488
|
+
| `reuse.enabled` | `true` | look for reusable code before building (`--no-reuse` for one run) |
|
|
489
|
+
| `reuse.external` | `true` | also search permissively licensed GitHub projects, not only Euron's |
|
|
490
|
+
| `errorReporting` | `true` | send a short error report when something fails (see below) |
|
|
416
491
|
| `db.connections.<name>` | | database DSNs |
|
|
417
492
|
|
|
493
|
+
**Error reports.** When something fails, Euron Code sends Euron a short error report (the error kind and
|
|
494
|
+
code, the tool or command name, version and OS; never your prompts, code or secrets) so it can be fixed.
|
|
495
|
+
`/bug` shows your last ones. Turn it off with `euron config set errorReporting false` or
|
|
496
|
+
`EURON_NO_ERROR_REPORTS=1`.
|
|
497
|
+
|
|
418
498
|
Environment variables: `EURON_API_KEY` (use a key without logging in, for CI), `EURON_HOME` (instead of
|
|
419
499
|
`~/.euron`), `EURON_NO_BROWSER=1`.
|
|
420
500
|
|
|
@@ -452,9 +532,7 @@ and the keychain.
|
|
|
452
532
|
|
|
453
533
|
## Privacy and safety
|
|
454
534
|
|
|
455
|
-
- Your code stays on your computer
|
|
456
|
-
with Euron's model. Attached images are turned into text by Euron's image understanding and are not
|
|
457
|
-
stored.
|
|
535
|
+
- Your code stays on your computer; the agent works on it from your terminal.
|
|
458
536
|
- Your key is never printed in full and never logged.
|
|
459
537
|
- Edits and commands ask first. Files outside the project folder always ask, even to read.
|
|
460
538
|
- Hooks are commands you configure; project hooks only run after you trust them.
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "euron-code"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.5.1"
|
|
8
8
|
description = "Euron Code: an agentic coding assistant in your terminal for Euron Plus and Super 30 students."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|