myeliza-cli 1.0.0__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.
Files changed (64) hide show
  1. myeliza_cli-1.0.0/.gitignore +9 -0
  2. myeliza_cli-1.0.0/CHANGELOG.md +26 -0
  3. myeliza_cli-1.0.0/LICENSE +21 -0
  4. myeliza_cli-1.0.0/PKG-INFO +310 -0
  5. myeliza_cli-1.0.0/README.md +275 -0
  6. myeliza_cli-1.0.0/docs/n8n/README.md +54 -0
  7. myeliza_cli-1.0.0/pyproject.toml +65 -0
  8. myeliza_cli-1.0.0/skills/README.md +34 -0
  9. myeliza_cli-1.0.0/skills/eliza-bot/SKILL.md +88 -0
  10. myeliza_cli-1.0.0/skills/eliza-businesscontext/SKILL.md +96 -0
  11. myeliza_cli-1.0.0/skills/eliza-contenttypes/SKILL.md +72 -0
  12. myeliza_cli-1.0.0/skills/eliza-contracts/SKILL.md +115 -0
  13. myeliza_cli-1.0.0/skills/eliza-dms/SKILL.md +217 -0
  14. myeliza_cli-1.0.0/skills/eliza-dsg/SKILL.md +117 -0
  15. myeliza_cli-1.0.0/skills/eliza-forms/SKILL.md +117 -0
  16. myeliza_cli-1.0.0/skills/eliza-glossar/SKILL.md +69 -0
  17. myeliza_cli-1.0.0/skills/eliza-ims/SKILL.md +96 -0
  18. myeliza_cli-1.0.0/skills/eliza-issues/SKILL.md +137 -0
  19. myeliza_cli-1.0.0/skills/eliza-kpi/SKILL.md +116 -0
  20. myeliza_cli-1.0.0/skills/eliza-measuring/SKILL.md +82 -0
  21. myeliza_cli-1.0.0/skills/eliza-okr/SKILL.md +110 -0
  22. myeliza_cli-1.0.0/skills/eliza-organisation/SKILL.md +216 -0
  23. myeliza_cli-1.0.0/skills/eliza-processes/SKILL.md +132 -0
  24. myeliza_cli-1.0.0/skills/eliza-projects/SKILL.md +124 -0
  25. myeliza_cli-1.0.0/skills/eliza-resources/SKILL.md +86 -0
  26. myeliza_cli-1.0.0/skills/eliza-spaces/SKILL.md +216 -0
  27. myeliza_cli-1.0.0/skills/eliza-standards/SKILL.md +98 -0
  28. myeliza_cli-1.0.0/skills/eliza-streams/SKILL.md +186 -0
  29. myeliza_cli-1.0.0/skills/eliza-swot/SKILL.md +100 -0
  30. myeliza_cli-1.0.0/skills/eliza-time/SKILL.md +127 -0
  31. myeliza_cli-1.0.0/skills/eliza-tutorials/SKILL.md +111 -0
  32. myeliza_cli-1.0.0/skills/eliza-users/SKILL.md +164 -0
  33. myeliza_cli-1.0.0/src/myeliza_cli/__init__.py +3 -0
  34. myeliza_cli-1.0.0/src/myeliza_cli/client.py +121 -0
  35. myeliza_cli-1.0.0/src/myeliza_cli/commands/__init__.py +1 -0
  36. myeliza_cli-1.0.0/src/myeliza_cli/commands/auth.py +67 -0
  37. myeliza_cli-1.0.0/src/myeliza_cli/commands/bot.py +112 -0
  38. myeliza_cli-1.0.0/src/myeliza_cli/commands/businesscontext.py +123 -0
  39. myeliza_cli-1.0.0/src/myeliza_cli/commands/contenttypes.py +63 -0
  40. myeliza_cli-1.0.0/src/myeliza_cli/commands/contracts.py +227 -0
  41. myeliza_cli-1.0.0/src/myeliza_cli/commands/dms.py +753 -0
  42. myeliza_cli-1.0.0/src/myeliza_cli/commands/dsg.py +151 -0
  43. myeliza_cli-1.0.0/src/myeliza_cli/commands/forms.py +144 -0
  44. myeliza_cli-1.0.0/src/myeliza_cli/commands/glossar.py +106 -0
  45. myeliza_cli-1.0.0/src/myeliza_cli/commands/ims.py +125 -0
  46. myeliza_cli-1.0.0/src/myeliza_cli/commands/issues.py +256 -0
  47. myeliza_cli-1.0.0/src/myeliza_cli/commands/kpi.py +99 -0
  48. myeliza_cli-1.0.0/src/myeliza_cli/commands/measuring.py +117 -0
  49. myeliza_cli-1.0.0/src/myeliza_cli/commands/okr.py +159 -0
  50. myeliza_cli-1.0.0/src/myeliza_cli/commands/organisation.py +331 -0
  51. myeliza_cli-1.0.0/src/myeliza_cli/commands/processes.py +200 -0
  52. myeliza_cli-1.0.0/src/myeliza_cli/commands/projects.py +218 -0
  53. myeliza_cli-1.0.0/src/myeliza_cli/commands/resources.py +152 -0
  54. myeliza_cli-1.0.0/src/myeliza_cli/commands/spaces.py +340 -0
  55. myeliza_cli-1.0.0/src/myeliza_cli/commands/standards.py +119 -0
  56. myeliza_cli-1.0.0/src/myeliza_cli/commands/streams.py +229 -0
  57. myeliza_cli-1.0.0/src/myeliza_cli/commands/swot.py +143 -0
  58. myeliza_cli-1.0.0/src/myeliza_cli/commands/time.py +137 -0
  59. myeliza_cli-1.0.0/src/myeliza_cli/commands/tutorials.py +157 -0
  60. myeliza_cli-1.0.0/src/myeliza_cli/commands/users.py +164 -0
  61. myeliza_cli-1.0.0/src/myeliza_cli/config.py +172 -0
  62. myeliza_cli-1.0.0/src/myeliza_cli/main.py +89 -0
  63. myeliza_cli-1.0.0/src/myeliza_cli/mcp_server.py +1853 -0
  64. myeliza_cli-1.0.0/src/myeliza_cli/output.py +70 -0
@@ -0,0 +1,9 @@
1
+ .env
2
+ __pycache__/
3
+ *.egg-info/
4
+ dist/
5
+ build/
6
+ .venv/
7
+ *.pyc
8
+ reference_api_client.py
9
+ dist/
@@ -0,0 +1,26 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [1.0.0] - 2026-03-27
6
+
7
+ ### Added
8
+ - **24 CLI-Module:** issues, dms, forms, kpi, processes, spaces, standards, streams, time, users, contenttypes, glossar, organisation, contracts, projects, tutorials, okr, swot, dsg, bot, measuring, resources, businesscontext, ims
9
+ - **MCP-Server** mit ~70 Tools für AI-Agent-Integration (Claude Cowork, Claude Code, Cursor)
10
+ - **Spaces-Erweiterungen:** card-get, card-comments, card-comment-add mit Multipart-Upload
11
+ - **Issues:** Serial Number Lookup (`--serial` Flag)
12
+ - **Multi-Instanz-Support:** Konfiguration in `~/.myeliza/config.yaml`
13
+ - **Output-Formate:** Rich Table (default), JSON, CSV
14
+ - Organisation: Skill-Assignment Commands — skills, skill-categories, skill-entries, skill-entry-add, skill-entry-remove, qualifikationen, qualifikation-add
15
+ - Users: User-Management Commands — create, update, deactivate, activate, set-password, invite
16
+ - Users: groups --search Filter für Gruppensuche nach Name
17
+ - Users: user_type Option bei create und update (--user-type consultant)
18
+ - Time: Public Holiday Commands — holidays, holiday-create, holiday-delete
19
+ - DMS: `dms export` Command — Markdown-Beschreibungen als professionelle PDF oder DOCX exportieren mit Logo, Cover-Seite und Branding
20
+ - Spaces: card-set-parent und card-clear-parent Commands zum Verknüpfen von Cards mit Objekten
21
+
22
+ ### Changed
23
+ - Package umbenannt von `eliza-cli` zu `myeliza-cli`
24
+ - Command umbenannt von `eliza` zu `myeliza`
25
+ - Config-Pfad: `~/.myeliza/` mit Fallback auf `~/.eliza/`
26
+ - PyPI-ready: Classifiers, URLs, Keywords, LICENSE
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 ELIZA AG
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,310 @@
1
+ Metadata-Version: 2.4
2
+ Name: myeliza-cli
3
+ Version: 1.0.0
4
+ Summary: Command-line interface and MCP server for the ELIZA platform
5
+ Project-URL: Homepage, https://eliza.swiss
6
+ Project-URL: Documentation, https://docs.eliza.swiss
7
+ Project-URL: Repository, https://gitlab.com/eliza.swiss/myeliza-cli
8
+ Project-URL: Issues, https://gitlab.com/eliza.swiss/myeliza-cli/-/issues
9
+ Project-URL: Changelog, https://gitlab.com/eliza.swiss/myeliza-cli/-/blob/main/CHANGELOG.md
10
+ Author-email: ELIZA AG <hello@eliza.swiss>
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: cli,eliza,healthcare,mcp,myeliza,qm,quality-management
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: System Administrators
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Natural Language :: German
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Topic :: Office/Business
27
+ Classifier: Topic :: System :: Systems Administration
28
+ Requires-Python: >=3.10
29
+ Requires-Dist: mcp>=1.0.0
30
+ Requires-Dist: pyyaml>=6.0
31
+ Requires-Dist: requests>=2.31.0
32
+ Requires-Dist: rich>=13.0.0
33
+ Requires-Dist: typer[all]>=0.9.0
34
+ Description-Content-Type: text/markdown
35
+
36
+ # ELIZA CLI
37
+
38
+ Command-line interface for the [ELIZA](https://eliza.swiss) platform — for humans and AI agents.
39
+
40
+ > **New here?** Check out the [Quick Start Guide](QUICKSTART.md).
41
+
42
+ ## Installation
43
+
44
+ ```bash
45
+ # From PyPI
46
+ pip install myeliza-cli
47
+
48
+ # Or with uv
49
+ uv tool install myeliza-cli
50
+
51
+ # Or from source
52
+ git clone https://gitlab.com/eliza.swiss/myeliza-cli.git
53
+ cd myeliza-cli && uv sync
54
+ ```
55
+
56
+ ## Quick Start
57
+
58
+ ```bash
59
+ # Configure an instance
60
+ myeliza auth login --instance elizaag --url https://eliza.myeliza.ch/api --token YOUR_TOKEN --default
61
+
62
+ # Check connection
63
+ myeliza auth status
64
+
65
+ # List support tickets
66
+ myeliza issues list --tracker 2 --limit 10
67
+
68
+ # Get issue details
69
+ myeliza issues get 2530
70
+
71
+ # Add a followup
72
+ myeliza issues followup-add 2530 --comment "Fix deployed"
73
+
74
+ # List users
75
+ myeliza users list
76
+
77
+ # Add work time
78
+ myeliza time add --user 2 --date 2026-03-10 --start 08:00 --end 12:00
79
+
80
+ # List news streams
81
+ myeliza streams list
82
+
83
+ # Post a message to a stream
84
+ myeliza streams messages create --stream 1 --title "Update" --text "Deployed v2.0"
85
+
86
+ # List KPIs
87
+ myeliza kpi list
88
+
89
+ # Record a KPI measurement
90
+ myeliza kpi record 550e8400-e29b-41d4-a716-446655440000 --date 2026-03-10 --value 42
91
+ ```
92
+
93
+ ## Output Formats
94
+
95
+ ```bash
96
+ myeliza issues list -t 2 -l 5 # Rich table (default)
97
+ myeliza issues list -t 2 -l 5 -f json # JSON (for scripting/agents)
98
+ myeliza issues list -t 2 -l 5 -f csv # CSV
99
+ ```
100
+
101
+ ## Dry Run
102
+
103
+ ```bash
104
+ # Show the HTTP request without executing it
105
+ myeliza --dry-run issues list --tracker 2
106
+ ```
107
+
108
+ ## Configuration
109
+
110
+ Config is stored in `~/.myeliza/config.yaml`:
111
+
112
+ ```yaml
113
+ default: elizaag
114
+ instances:
115
+ elizaag:
116
+ url: https://eliza.myeliza.ch/api
117
+ token: your-token-here
118
+ iks2:
119
+ url: https://iks2.myeliza.ch/api
120
+ token: your-token-here
121
+ ```
122
+
123
+ ### Environment Variables (backward compatible)
124
+
125
+ ```bash
126
+ export ELIZA_ELIZAAG_URL=https://eliza.myeliza.ch/api
127
+ export ELIZA_ELIZAAG_TOKEN=your-token
128
+ export ELIZA_DEFAULT=elizaag
129
+ ```
130
+
131
+ ## AI Agent Integration
132
+
133
+ ### Bundled Skills (API Documentation)
134
+
135
+ The package includes 24 skill modules with detailed API documentation, examples and scripts. AI agents can discover them automatically:
136
+
137
+ ```bash
138
+ # Find the skills directory
139
+ myeliza skills-path
140
+ # → /home/user/.local/lib/python3.12/site-packages/myeliza_cli/skills/
141
+
142
+ # Each skill contains a SKILL.md with:
143
+ # - API endpoints and fields
144
+ # - CLI examples
145
+ # - Python scripts for common tasks
146
+ ```
147
+
148
+ **Agent workflow:**
149
+ 1. `pip install myeliza-cli` — install the package
150
+ 2. `myeliza auth login ...` — configure an ELIZA instance
151
+ 3. `myeliza skills-path` — find the skill documentation
152
+ 4. Read the relevant `SKILL.md` files — understand the API
153
+ 5. Use `myeliza` commands or MCP tools — interact with ELIZA
154
+
155
+ ### MCP Server (Model Context Protocol)
156
+
157
+ The CLI includes a built-in [Model Context Protocol](https://modelcontextprotocol.io) server, allowing AI agents to interact with ELIZA directly.
158
+
159
+ ### With Claude Code
160
+
161
+ ```bash
162
+ # Register ELIZA as MCP tool provider
163
+ claude mcp add myeliza -- myeliza mcp serve
164
+
165
+ # Now Claude Code can use ELIZA tools natively:
166
+ # "List the latest support tickets" → calls eliza_issues_list
167
+ # "Create an issue in tracker 2" → calls eliza_issues_create
168
+ ```
169
+
170
+ ### With OpenClaw
171
+
172
+ Add to your OpenClaw config (`openclaw.json`):
173
+
174
+ ```json
175
+ {
176
+ "mcp": {
177
+ "servers": {
178
+ "myeliza": {
179
+ "command": "myeliza",
180
+ "args": ["mcp", "serve"]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ ### Available MCP Tools (33)
188
+
189
+ | Tool | Description |
190
+ |------|-------------|
191
+ | `eliza_trackers_list` | List all trackers (Meldekreise) |
192
+ | `eliza_issues_list` | List issues with optional filters (tracker, state, limit) |
193
+ | `eliza_issues_get` | Get issue details by ID |
194
+ | `eliza_issues_create` | Create a new issue |
195
+ | `eliza_issues_update` | Update issue (state, title, assignment) |
196
+ | `eliza_issues_followups` | List followups for an issue |
197
+ | `eliza_issues_followup_add` | Add a followup comment |
198
+ | `eliza_dms_documents` | List documents (optional folder, type filter) |
199
+ | `eliza_dms_document_get` | Get document details by ID |
200
+ | `eliza_dms_folders` | List DMS folders |
201
+ | `eliza_dms_doctypes` | List document types |
202
+ | `eliza_users_list` | List users |
203
+ | `eliza_users_get` | Get user details |
204
+ | `eliza_time_list` | List work time entries |
205
+ | `eliza_time_add` | Add a work time entry |
206
+ | `eliza_streams_list` | List streams (Newskanäle) |
207
+ | `eliza_streams_messages_list` | List stream messages (optional stream filter) |
208
+ | `eliza_streams_messages_create` | Create a message in a stream |
209
+ | `eliza_kpi_list` | List KPIs (optional folder filter) |
210
+ | `eliza_kpi_record` | Record a KPI measurement |
211
+ | `eliza_processes_list` | List processes (filter by state, search) |
212
+ | `eliza_processes_get` | Get process details by ID |
213
+ | `eliza_processes_create` | Create a new process |
214
+ | `eliza_forms_list` | List form templates (optional folder filter) |
215
+ | `eliza_forms_get` | Get full template with sections and questions |
216
+ | `eliza_spaces_list` | List spaces (filter by state, search) |
217
+ | `eliza_spaces_get` | Get space details by ID |
218
+ | `eliza_spaces_card_create` | Create a card in a board card list |
219
+ | `eliza_spaces_meeting_create` | Create a meeting in a space |
220
+ | `eliza_spaces_meetingitems` | List meeting items (Traktanden) |
221
+ | `eliza_spaces_meetingitem_create` | Create a meeting item |
222
+ | `eliza_standards_list` | List standards (optional category filter) |
223
+ | `eliza_standards_get` | Get standard details by ID |
224
+
225
+ All MCP responses are **compact JSON** optimized for LLM consumption — HTML stripped, base64 images removed, nested objects flattened.
226
+
227
+ ### Testing the MCP Server
228
+
229
+ ```bash
230
+ # Start server manually (stdio)
231
+ myeliza mcp serve
232
+
233
+ # Test tools programmatically
234
+ python3 -c "
235
+ import asyncio
236
+ from myeliza_cli.mcp_server import call_tool
237
+ result = asyncio.run(call_tool('eliza_trackers_list', {}))
238
+ print(result[0].text)
239
+ "
240
+ ```
241
+
242
+ ## Commands
243
+
244
+ | Command | Status | Description |
245
+ |---------|--------|-------------|
246
+ | `myeliza auth` | ✅ | Authentication & instance management |
247
+ | `myeliza issues` | ✅ | Issues / Meldungen (CRUD + followups + trackers) |
248
+ | `myeliza users` | ✅ | Users & groups |
249
+ | `myeliza time` | ✅ | Time tracking & absences |
250
+ | `myeliza mcp` | ✅ | MCP server for AI agents |
251
+ | `myeliza dms` | ✅ | Document management |
252
+ | `myeliza streams` | ✅ | News streams & events |
253
+ | `myeliza kpi` | ✅ | KPIs / Kennzahlen |
254
+ | `myeliza processes` | ✅ | Process management (CRUD + steps + transitions) |
255
+ | `myeliza spaces` | ✅ | Spaces (boards, cards, comments, meetings) |
256
+ | `myeliza forms` | ✅ | Forms (templates, sections, questions) |
257
+ | `myeliza standards` | ✅ | Standards / Normen (categories, chapters) |
258
+ | `myeliza glossar` | ✅ | Glossary (CRUD) |
259
+ | `myeliza organisation` | ✅ | Employees, org units, functions, memberships |
260
+ | `myeliza contracts` | ✅ | Contracts, partners, cashflows |
261
+ | `myeliza projects` | ✅ | Projects, tasks, milestones, phases |
262
+ | `myeliza tutorials` | ✅ | E-learning courses, lessons, sections |
263
+ | `myeliza okr` | ✅ | OKR (objectives, key results, updates) |
264
+ | `myeliza swot` | ✅ | SWOT / risk management (measures, controls) |
265
+ | `myeliza dsg` | ✅ | Data protection (activities, TOMs, categories) |
266
+ | `myeliza bot` | ✅ | AI chat conversations |
267
+ | `myeliza measuring` | ✅ | Measuring tools / calibration tracking |
268
+ | `myeliza resources` | ✅ | Resource inventory & allocations |
269
+ | `myeliza businesscontext` | ✅ | Stakeholders & business context |
270
+ | `myeliza ims` | ✅ | Integrated management system (assets) |
271
+
272
+ ## Architecture
273
+
274
+ ```
275
+ src/myeliza_cli/
276
+ ├── main.py # Typer app with subcommand groups + --dry-run
277
+ ├── client.py # REST API client (auto-pagination, multi-instance, dry-run)
278
+ ├── config.py # Config management (~/.myeliza/config.yaml + env vars)
279
+ ├── output.py # Formatters (Rich table, JSON, CSV)
280
+ ├── mcp_server.py # MCP server (stdio transport, 33 tools)
281
+ └── commands/
282
+ ├── auth.py # login, logout, status, instances
283
+ ├── issues.py # list, get, create, update, followups, trackers
284
+ ├── users.py # list, get, groups
285
+ ├── time.py # list, add, absences
286
+ ├── dms.py # documents, folders, document types
287
+ ├── streams.py # streams, messages, events
288
+ ├── kpi.py # KPIs, folders, measurements
289
+ ├── processes.py # processes, steps, labels, transitions
290
+ ├── forms.py # templates, folders, sections, questions
291
+ ├── spaces.py # spaces, boards, cards, comments, meetings
292
+ ├── standards.py # standards, categories, chapters
293
+ ├── glossar.py # glossary entries
294
+ ├── organisation.py # employees, org units, functions
295
+ ├── contracts.py # contracts, partners, cashflows
296
+ ├── projects.py # projects, tasks, milestones, phases
297
+ ├── tutorials.py # e-learning courses, lessons
298
+ ├── okr.py # objectives & key results
299
+ ├── swot.py # SWOT measures, estimates, controls
300
+ ├── dsg.py # data protection (DSG/GDPR)
301
+ ├── bot.py # AI chat conversations
302
+ ├── measuring.py # measuring tools, calibration
303
+ ├── resources.py # resource inventory, allocations
304
+ ├── businesscontext.py # stakeholders, context issues
305
+ └── ims.py # integrated management system
306
+ ```
307
+
308
+ ## License
309
+
310
+ MIT — [ELIZA AG](https://eliza.swiss)
@@ -0,0 +1,275 @@
1
+ # ELIZA CLI
2
+
3
+ Command-line interface for the [ELIZA](https://eliza.swiss) platform — for humans and AI agents.
4
+
5
+ > **New here?** Check out the [Quick Start Guide](QUICKSTART.md).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ # From PyPI
11
+ pip install myeliza-cli
12
+
13
+ # Or with uv
14
+ uv tool install myeliza-cli
15
+
16
+ # Or from source
17
+ git clone https://gitlab.com/eliza.swiss/myeliza-cli.git
18
+ cd myeliza-cli && uv sync
19
+ ```
20
+
21
+ ## Quick Start
22
+
23
+ ```bash
24
+ # Configure an instance
25
+ myeliza auth login --instance elizaag --url https://eliza.myeliza.ch/api --token YOUR_TOKEN --default
26
+
27
+ # Check connection
28
+ myeliza auth status
29
+
30
+ # List support tickets
31
+ myeliza issues list --tracker 2 --limit 10
32
+
33
+ # Get issue details
34
+ myeliza issues get 2530
35
+
36
+ # Add a followup
37
+ myeliza issues followup-add 2530 --comment "Fix deployed"
38
+
39
+ # List users
40
+ myeliza users list
41
+
42
+ # Add work time
43
+ myeliza time add --user 2 --date 2026-03-10 --start 08:00 --end 12:00
44
+
45
+ # List news streams
46
+ myeliza streams list
47
+
48
+ # Post a message to a stream
49
+ myeliza streams messages create --stream 1 --title "Update" --text "Deployed v2.0"
50
+
51
+ # List KPIs
52
+ myeliza kpi list
53
+
54
+ # Record a KPI measurement
55
+ myeliza kpi record 550e8400-e29b-41d4-a716-446655440000 --date 2026-03-10 --value 42
56
+ ```
57
+
58
+ ## Output Formats
59
+
60
+ ```bash
61
+ myeliza issues list -t 2 -l 5 # Rich table (default)
62
+ myeliza issues list -t 2 -l 5 -f json # JSON (for scripting/agents)
63
+ myeliza issues list -t 2 -l 5 -f csv # CSV
64
+ ```
65
+
66
+ ## Dry Run
67
+
68
+ ```bash
69
+ # Show the HTTP request without executing it
70
+ myeliza --dry-run issues list --tracker 2
71
+ ```
72
+
73
+ ## Configuration
74
+
75
+ Config is stored in `~/.myeliza/config.yaml`:
76
+
77
+ ```yaml
78
+ default: elizaag
79
+ instances:
80
+ elizaag:
81
+ url: https://eliza.myeliza.ch/api
82
+ token: your-token-here
83
+ iks2:
84
+ url: https://iks2.myeliza.ch/api
85
+ token: your-token-here
86
+ ```
87
+
88
+ ### Environment Variables (backward compatible)
89
+
90
+ ```bash
91
+ export ELIZA_ELIZAAG_URL=https://eliza.myeliza.ch/api
92
+ export ELIZA_ELIZAAG_TOKEN=your-token
93
+ export ELIZA_DEFAULT=elizaag
94
+ ```
95
+
96
+ ## AI Agent Integration
97
+
98
+ ### Bundled Skills (API Documentation)
99
+
100
+ The package includes 24 skill modules with detailed API documentation, examples and scripts. AI agents can discover them automatically:
101
+
102
+ ```bash
103
+ # Find the skills directory
104
+ myeliza skills-path
105
+ # → /home/user/.local/lib/python3.12/site-packages/myeliza_cli/skills/
106
+
107
+ # Each skill contains a SKILL.md with:
108
+ # - API endpoints and fields
109
+ # - CLI examples
110
+ # - Python scripts for common tasks
111
+ ```
112
+
113
+ **Agent workflow:**
114
+ 1. `pip install myeliza-cli` — install the package
115
+ 2. `myeliza auth login ...` — configure an ELIZA instance
116
+ 3. `myeliza skills-path` — find the skill documentation
117
+ 4. Read the relevant `SKILL.md` files — understand the API
118
+ 5. Use `myeliza` commands or MCP tools — interact with ELIZA
119
+
120
+ ### MCP Server (Model Context Protocol)
121
+
122
+ The CLI includes a built-in [Model Context Protocol](https://modelcontextprotocol.io) server, allowing AI agents to interact with ELIZA directly.
123
+
124
+ ### With Claude Code
125
+
126
+ ```bash
127
+ # Register ELIZA as MCP tool provider
128
+ claude mcp add myeliza -- myeliza mcp serve
129
+
130
+ # Now Claude Code can use ELIZA tools natively:
131
+ # "List the latest support tickets" → calls eliza_issues_list
132
+ # "Create an issue in tracker 2" → calls eliza_issues_create
133
+ ```
134
+
135
+ ### With OpenClaw
136
+
137
+ Add to your OpenClaw config (`openclaw.json`):
138
+
139
+ ```json
140
+ {
141
+ "mcp": {
142
+ "servers": {
143
+ "myeliza": {
144
+ "command": "myeliza",
145
+ "args": ["mcp", "serve"]
146
+ }
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ ### Available MCP Tools (33)
153
+
154
+ | Tool | Description |
155
+ |------|-------------|
156
+ | `eliza_trackers_list` | List all trackers (Meldekreise) |
157
+ | `eliza_issues_list` | List issues with optional filters (tracker, state, limit) |
158
+ | `eliza_issues_get` | Get issue details by ID |
159
+ | `eliza_issues_create` | Create a new issue |
160
+ | `eliza_issues_update` | Update issue (state, title, assignment) |
161
+ | `eliza_issues_followups` | List followups for an issue |
162
+ | `eliza_issues_followup_add` | Add a followup comment |
163
+ | `eliza_dms_documents` | List documents (optional folder, type filter) |
164
+ | `eliza_dms_document_get` | Get document details by ID |
165
+ | `eliza_dms_folders` | List DMS folders |
166
+ | `eliza_dms_doctypes` | List document types |
167
+ | `eliza_users_list` | List users |
168
+ | `eliza_users_get` | Get user details |
169
+ | `eliza_time_list` | List work time entries |
170
+ | `eliza_time_add` | Add a work time entry |
171
+ | `eliza_streams_list` | List streams (Newskanäle) |
172
+ | `eliza_streams_messages_list` | List stream messages (optional stream filter) |
173
+ | `eliza_streams_messages_create` | Create a message in a stream |
174
+ | `eliza_kpi_list` | List KPIs (optional folder filter) |
175
+ | `eliza_kpi_record` | Record a KPI measurement |
176
+ | `eliza_processes_list` | List processes (filter by state, search) |
177
+ | `eliza_processes_get` | Get process details by ID |
178
+ | `eliza_processes_create` | Create a new process |
179
+ | `eliza_forms_list` | List form templates (optional folder filter) |
180
+ | `eliza_forms_get` | Get full template with sections and questions |
181
+ | `eliza_spaces_list` | List spaces (filter by state, search) |
182
+ | `eliza_spaces_get` | Get space details by ID |
183
+ | `eliza_spaces_card_create` | Create a card in a board card list |
184
+ | `eliza_spaces_meeting_create` | Create a meeting in a space |
185
+ | `eliza_spaces_meetingitems` | List meeting items (Traktanden) |
186
+ | `eliza_spaces_meetingitem_create` | Create a meeting item |
187
+ | `eliza_standards_list` | List standards (optional category filter) |
188
+ | `eliza_standards_get` | Get standard details by ID |
189
+
190
+ All MCP responses are **compact JSON** optimized for LLM consumption — HTML stripped, base64 images removed, nested objects flattened.
191
+
192
+ ### Testing the MCP Server
193
+
194
+ ```bash
195
+ # Start server manually (stdio)
196
+ myeliza mcp serve
197
+
198
+ # Test tools programmatically
199
+ python3 -c "
200
+ import asyncio
201
+ from myeliza_cli.mcp_server import call_tool
202
+ result = asyncio.run(call_tool('eliza_trackers_list', {}))
203
+ print(result[0].text)
204
+ "
205
+ ```
206
+
207
+ ## Commands
208
+
209
+ | Command | Status | Description |
210
+ |---------|--------|-------------|
211
+ | `myeliza auth` | ✅ | Authentication & instance management |
212
+ | `myeliza issues` | ✅ | Issues / Meldungen (CRUD + followups + trackers) |
213
+ | `myeliza users` | ✅ | Users & groups |
214
+ | `myeliza time` | ✅ | Time tracking & absences |
215
+ | `myeliza mcp` | ✅ | MCP server for AI agents |
216
+ | `myeliza dms` | ✅ | Document management |
217
+ | `myeliza streams` | ✅ | News streams & events |
218
+ | `myeliza kpi` | ✅ | KPIs / Kennzahlen |
219
+ | `myeliza processes` | ✅ | Process management (CRUD + steps + transitions) |
220
+ | `myeliza spaces` | ✅ | Spaces (boards, cards, comments, meetings) |
221
+ | `myeliza forms` | ✅ | Forms (templates, sections, questions) |
222
+ | `myeliza standards` | ✅ | Standards / Normen (categories, chapters) |
223
+ | `myeliza glossar` | ✅ | Glossary (CRUD) |
224
+ | `myeliza organisation` | ✅ | Employees, org units, functions, memberships |
225
+ | `myeliza contracts` | ✅ | Contracts, partners, cashflows |
226
+ | `myeliza projects` | ✅ | Projects, tasks, milestones, phases |
227
+ | `myeliza tutorials` | ✅ | E-learning courses, lessons, sections |
228
+ | `myeliza okr` | ✅ | OKR (objectives, key results, updates) |
229
+ | `myeliza swot` | ✅ | SWOT / risk management (measures, controls) |
230
+ | `myeliza dsg` | ✅ | Data protection (activities, TOMs, categories) |
231
+ | `myeliza bot` | ✅ | AI chat conversations |
232
+ | `myeliza measuring` | ✅ | Measuring tools / calibration tracking |
233
+ | `myeliza resources` | ✅ | Resource inventory & allocations |
234
+ | `myeliza businesscontext` | ✅ | Stakeholders & business context |
235
+ | `myeliza ims` | ✅ | Integrated management system (assets) |
236
+
237
+ ## Architecture
238
+
239
+ ```
240
+ src/myeliza_cli/
241
+ ├── main.py # Typer app with subcommand groups + --dry-run
242
+ ├── client.py # REST API client (auto-pagination, multi-instance, dry-run)
243
+ ├── config.py # Config management (~/.myeliza/config.yaml + env vars)
244
+ ├── output.py # Formatters (Rich table, JSON, CSV)
245
+ ├── mcp_server.py # MCP server (stdio transport, 33 tools)
246
+ └── commands/
247
+ ├── auth.py # login, logout, status, instances
248
+ ├── issues.py # list, get, create, update, followups, trackers
249
+ ├── users.py # list, get, groups
250
+ ├── time.py # list, add, absences
251
+ ├── dms.py # documents, folders, document types
252
+ ├── streams.py # streams, messages, events
253
+ ├── kpi.py # KPIs, folders, measurements
254
+ ├── processes.py # processes, steps, labels, transitions
255
+ ├── forms.py # templates, folders, sections, questions
256
+ ├── spaces.py # spaces, boards, cards, comments, meetings
257
+ ├── standards.py # standards, categories, chapters
258
+ ├── glossar.py # glossary entries
259
+ ├── organisation.py # employees, org units, functions
260
+ ├── contracts.py # contracts, partners, cashflows
261
+ ├── projects.py # projects, tasks, milestones, phases
262
+ ├── tutorials.py # e-learning courses, lessons
263
+ ├── okr.py # objectives & key results
264
+ ├── swot.py # SWOT measures, estimates, controls
265
+ ├── dsg.py # data protection (DSG/GDPR)
266
+ ├── bot.py # AI chat conversations
267
+ ├── measuring.py # measuring tools, calibration
268
+ ├── resources.py # resource inventory, allocations
269
+ ├── businesscontext.py # stakeholders, context issues
270
+ └── ims.py # integrated management system
271
+ ```
272
+
273
+ ## License
274
+
275
+ MIT — [ELIZA AG](https://eliza.swiss)
@@ -0,0 +1,54 @@
1
+ # ELIZA CLI in n8n Workflows
2
+
3
+ Die ELIZA CLI lässt sich in [n8n](https://n8n.io) Workflows über den **Execute Command**-Node einbinden. Damit können ELIZA-Daten (Issues, Verträge, Zeiterfassung etc.) in Automatisierungen verwendet werden.
4
+
5
+ ## Voraussetzungen
6
+
7
+ - `uv` installiert auf dem n8n-Server
8
+ - `eliza-cli` Repo geklont
9
+ - `.eliza/config.yaml` konfiguriert (oder Umgebungsvariablen)
10
+
11
+ ### Installation auf dem n8n-Server
12
+
13
+ ```bash
14
+ # Repo klonen
15
+ git clone https://gitlab.com/eliza.swiss/eliza-cli.git /opt/eliza-cli
16
+
17
+ # Config erstellen
18
+ mkdir -p /opt/eliza-cli/.eliza
19
+ cat > /opt/eliza-cli/.eliza/config.yaml << EOF
20
+ default: prod
21
+ instances:
22
+ prod:
23
+ url: https://meine-instanz.myeliza.ch/api
24
+ token: <API-TOKEN>
25
+ EOF
26
+ ```
27
+
28
+ ### Alternative: Umgebungsvariablen
29
+
30
+ Statt einer config.yaml können Instanzen auch über Umgebungsvariablen konfiguriert werden:
31
+
32
+ ```
33
+ ELIZA_PROD_URL=https://meine-instanz.myeliza.ch/api
34
+ ELIZA_PROD_TOKEN=<API-TOKEN>
35
+ ```
36
+
37
+ ## Grundprinzip
38
+
39
+ Alle CLI-Befehle mit `--format json` liefern JSON-Output, der in n8n direkt weiterverarbeitet werden kann:
40
+
41
+ ```bash
42
+ cd /opt/eliza-cli && uv run eliza issues list -i prod --tracker 2 --format json
43
+ ```
44
+
45
+ ## Beispiel-Workflows
46
+
47
+ - [Support-Tickets überwachen & Teams benachrichtigen](support-tickets-teams.md)
48
+
49
+ ## Tipps
50
+
51
+ - **Immer `--format json`** verwenden für maschinenlesbaren Output
52
+ - **`--limit`** setzen um die Datenmenge zu begrenzen
53
+ - **Arbeitsverzeichnis** im Execute Command Node auf das eliza-cli Repo setzen
54
+ - **Fehlerbehandlung:** Der Exit-Code ist `0` bei Erfolg, `1` bei Fehler