← Back to Skills Marketplace
odrobnik

Klientenportal

by Oliver Drobnik · GitHub ↗ · v1.5.1
cross-platform ✓ Security Clean
934
Downloads
0
Stars
1
Active Installs
11
Versions
Install in OpenClaw
/install klientenportal
Description
Automate RZL Klientenportal.at — a web-based portal by RZL Software for exchanging receipts, invoices, and reports with your tax accountant. Login/logout, up...
README (SKILL.md)

RZL Klientenportal

Automate klientenportal.at — a web portal by RZL Software for securely exchanging accounting documents between clients and their tax accountant.

Entry point: {baseDir}/scripts/klientenportal.py

Setup

See SETUP.md for prerequisites and setup instructions.

Commands

Login / Logout

python3 {baseDir}/scripts/klientenportal.py login          # Test login (validates credentials)
python3 {baseDir}/scripts/klientenportal.py logout         # Clear stored browser session

Upload Documents (Belegübergabe)

Upload receipts/invoices to a specific Belegkreis category:

python3 {baseDir}/scripts/klientenportal.py upload -f invoice.pdf --belegkreis KA
python3 {baseDir}/scripts/klientenportal.py upload -f *.xml --belegkreis SP
Code Name Use for
ER Eingangsrechnungen Incoming invoices (default)
AR Ausgangsrechnungen Outgoing invoices
KA Kassa Credit card payments
SP Sparkasse Bank account receipts

List Released Files

Show files your accountant has released (freigegebene Dokumente):

python3 {baseDir}/scripts/klientenportal.py released

Received Files (from Accountant)

List files received from your accountant (Kanzleidokumente / Auswertungen):

python3 {baseDir}/scripts/klientenportal.py received              # List all
python3 {baseDir}/scripts/klientenportal.py received -n 5          # Latest 5
python3 {baseDir}/scripts/klientenportal.py received --json         # JSON output

Output columns: Datei, Von, Dokumentbereich, Empfangen

Download Received Files

Download specific files from the received files list:

python3 {baseDir}/scripts/klientenportal.py received-download --latest                  # Latest file
python3 {baseDir}/scripts/klientenportal.py received-download 1 2 3                     # By index (1=latest)
python3 {baseDir}/scripts/klientenportal.py received-download "10-12_2025"              # By name pattern
python3 {baseDir}/scripts/klientenportal.py received-download "10-12_2025" -o ~/Downloads  # Custom output

Single-file downloads are auto-extracted from ZIP wrapper.

Download Kanzleidokumente (Legacy)

Download all available Kanzleidokumente at once:

python3 {baseDir}/scripts/klientenportal.py download                    # To default dir
python3 {baseDir}/scripts/klientenportal.py download -o /path/to/dir    # Custom output dir

Default output: /tmp/openclaw/klientenportal/

Options

  • --visible — Show the browser window (useful for debugging or first login)

Recommended Flow

login → upload / released / download → logout

Always call logout after completing all operations to clear the stored browser session.

Usage Guidance
This skill appears to do what it says: automate klientenportal.at using Playwright. Before installing: (1) Prefer supplying credentials via the declared env vars rather than putting them in config.json; (2) be aware the skill creates a persistent Playwright profile under your workspace (CONFIG_DIR/.pw-profile) which can hold session cookies—run the provided logout command or remove that directory if you want to clear sessions; (3) install Playwright and Chromium in a controlled environment (or a sandbox/container) per SETUP.md to limit risk; (4) review the included script yourself if you need higher assurance (it contains explicit path resolution, file-permission hardening, and safe-path checks); and (5) verify the workspace path you grant (OPENCLAW_WORKSPACE) is not a privileged or system directory to avoid accidental writes to sensitive locations.
Capability Analysis
Type: OpenClaw Skill Name: klientenportal Version: 1.5.1 The OpenClaw AgentSkills bundle for RZL Klientenportal automation is classified as benign. The skill's purpose is clearly defined as interacting with `klientenportal.at` for document exchange. The Python script (`scripts/klientenportal.py`) demonstrates robust security practices, including output path sandboxing to restrict file writes to the workspace or `/tmp`, input file path validation to prevent uploads from arbitrary locations, and filename sanitization to mitigate path traversal. It also hardens permissions on configuration and profile directories and explicitly clears browser sessions. There is no evidence of data exfiltration to unauthorized endpoints, arbitrary command execution, persistence mechanisms, or prompt injection attempts in the `SKILL.md`.
Capability Assessment
Purpose & Capability
Name/description match the implementation: the script automates klientenportal.at using Playwright. Declared binaries (python3, playwright) and required env vars (portal id, user id, password) are appropriate and expected for this functionality.
Instruction Scope
SKILL.md and the script confine actions to driving the portal site (login, upload, list, download). The script does read/write a local config.json and stores a persistent Playwright profile; it does not reference external endpoints other than klientenportal.at. Note: config.json may contain plaintext credentials unless you supply env vars; the script hardens permissions (umask/chmod) but persistence of session data is functionally necessary for the skill.
Install Mechanism
This is instruction-only with an included Python script; there is no automated installer. The dependency (Playwright) is a standard library for browser automation and the README/SETUP instructs using pip and 'playwright install chromium'. No downloads from untrusted URLs or archive extraction are present in the bundle.
Credentials
Only the portal-specific credentials (KLIENTENPORTAL_PORTAL_ID, KLIENTENPORTAL_USER_ID, KLIENTENPORTAL_PASSWORD) are required. The script optionally uses OPENCLAW_WORKSPACE and OPENCLAW_TMP to determine paths; these are reasonable for locating config and temp output. No unrelated secrets or cloud credentials are requested.
Persistence & Privilege
always:false (normal). The skill stores a persistent Chromium user_data_dir under the workspace (CONFIG_DIR/.pw-profile) and writes config.json to the workspace dir or /tmp. This is consistent with the stated behavior, but means cookies/session tokens and possibly downloaded documents remain on disk until you remove them or run logout.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install klientenportal
  3. After installation, invoke the skill by name or use /klientenportal
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.5.1
fix: use /Users/oliver/clawd for workspace root to preserve symlink paths
v1.5.0
- Version bump to 1.5.0. - Internal updates to scripts/klientenportal.py. - No changes to user-facing features or documentation.
v1.4.4
Fix env var declarations: move into requires.env as array (ClawHub metadata recognition)
v1.4.3
Remove invented sensitivity metadata field
v1.4.2
Declare missing dependencies, env vars, and sensitivity in metadata
v1.4.1
Rename .clawdhubignore to .clawhubignore
v1.4.0
Document all commands precisely, clarify download scope
v1.3.1
Refactor: move setup/prerequisites to SETUP.md, keep SKILL.md lean
v1.3.0
Move setup/prerequisites to SETUP.md, keep SKILL.md lean
v1.2.1
Remove setup command; config via config.json or env vars with portal_id
v1.2.0
v1.2.0: Dependency declaration in frontmatter, setup via CLI flags/env vars (no interactive prompts), portal ID parameter, prerequisites section
Metadata
Slug klientenportal
Version 1.5.1
License
All-time Installs 1
Active Installs 1
Total Versions 11
Frequently Asked Questions

What is Klientenportal?

Automate RZL Klientenportal.at — a web-based portal by RZL Software for exchanging receipts, invoices, and reports with your tax accountant. Login/logout, up... It is an AI Agent Skill for Claude Code / OpenClaw, with 934 downloads so far.

How do I install Klientenportal?

Run "/install klientenportal" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Klientenportal free?

Yes, Klientenportal is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Klientenportal support?

Klientenportal is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Klientenportal?

It is built and maintained by Oliver Drobnik (@odrobnik); the current version is v1.5.1.

💬 Comments