Skip to content

[Feature] Add pengine cli #90

@maximedogawa

Description

@maximedogawa

User Story

As a user
I want want to directly use the pengine cli to controll pengine
So that so that I can use pengine offline or have a telegram terminal deal.

Description

A a pengine cli that can be installed via the app. This cli should have a full commands libary and also have the full features that the app provides. CLI should send replies to the terminal output and messenger if enables. Default should be that both terminal and messenger are active.

Some Terminal commands should be market as native where the ai models should not have access to. that native command list should be same as configure setting in pengine via the ui. Additional features and settings should also be in the cli native command list. With '/command' should signal native terminal command. Ai model should never have direct access to the cli but can access mcp server tools and skills.

You can also control the terminal via telegram and the reply is every time in diff like this:

diff --git a/app.py b/app.py
index e69de29..4b825dc 100644
--- a/app.py
+++ b/app.py
@@ -1,3 +1,6 @@
+def hello():
+    print("Hello world")
+
 print("Start")

Telegram supports syntax highlighting for diff, so you get:
🟢 green additions
🔴 red deletions

This should be modular so that if I improve tools it should also be available for the terminal.

https://v2.tauri.app/plugin/cli/

This cli should have the same functionality that claude code.
https://github.com/anthropics/claude-code

Acceptance Criteria

  • add cli command list
  • combine commands ui and cli
  • add info how to install openssh for ssh connections to documentation and also on the ui section for install cli
  • Messages are formatted as monospace code blocks (terminal-style with prompts like user@bot:$)
  • Command outputs (logs, status, etc.) appear in bash-styled blocks
  • All code changes are returned as diff-formatted blocks with syntax highlighting
  • Supports command-style inputs (e.g. /deploy, git diff, logs)
  • Handles long outputs by splitting messages if needed
  • Optional: interactive elements (e.g. buttons for rerun, rollback)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions