Skip to main content

An LLM-powered sysadmin.

Project description

Sysaidmin

Sysaidmin is an LLM-powered sysadmin for your machine. You can ask it to solve a problem, and it will run commands on your system (with your permission) to debug what's going on.

Installation

Using uv (recommended):

$ uv tool install sysaidmin

Or, to run directly:

$ uvx sysaidmin

Using pip (less recommended, but still good):

$ pip install sysaidmin

Specify your OpenAI API key:

$ export SYSAIDMIN_API_KEY=sk-youropenaiapikeygoeshere

Then run Sysaidmin with your issue:

$ sysaidmin "The foo process is emailing me and I don't know why."

Using other models

Any model that supports the OpenAI Chat Completions API can be used. For example, to use Google Gemini:

> sysaidmin --api-key=$GEMINI_API_KEY -m gemini-2.5-flash-preview-04-17 \
  -b "https://generativelanguage.googleapis.com/v1beta/openai" \
  "How do I list files?"

Environment variables

You can use the following environment variables in place of parameters:

  • SYSAIDMIN_BASE_URL: The base URL for the service.
  • SYSAIDMIN_API_KEY: The API key.
  • SYSAIDMIN_MODEL: The model to use.

Sample run:

$ sysaidmin "Whenever I try to SSH to localhost on port 22, it doesn't work. Can you fix it?"

==============================
Running command: ssh localhost
==============================
Press any key to continue, Ctrl-C to terminate...

ssh: connect to host localhost port 22: Connection refused


==============================
Running command: systemctl status sshd
==============================
Press any key to continue, Ctrl-C to terminate...

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-11-26 18:40:45 EET; 25s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 92469 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 92471 (sshd)
      Tasks: 1 (limit: 18824)
     Memory: 1.7M
        CPU: 9ms
     CGroup: /system.slice/ssh.service
             └─92471 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Νοε 26 18:40:45 zeus systemd[1]: Starting OpenBSD Secure Shell server...
Νοε 26 18:40:45 zeus sshd[92471]: Server listening on 0.0.0.0 port 8122.
Νοε 26 18:40:45 zeus sshd[92471]: Server listening on :: port 8122.
Νοε 26 18:40:45 zeus systemd[1]: Started OpenBSD Secure Shell server.


==============================
It appears that your SSH server is running, but it is not listening on the default SSH
port 22. Instead, it is listening on port 8122 for both IPv4 and IPv6 connections, as
indicated by the line "Server listening on 0.0.0.0 port 8122" and "Server listening on
:: port 8122."

To connect via SSH to localhost, you need to specify port 8122. You can do that by using
the following command:

```bash
ssh -p 8122 localhost
```

Try running this command, and it should allow you to connect to the SSH server running
on your local machine.
==============================

Your response: No, please change the port

==============================
Running command: sudo sed -i 's/#Port 22/Port 22/' /etc/ssh/sshd_config && sudo systemctl restart ssh
==============================
Press any key to continue, Ctrl-C to terminate...
^C

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sysaidmin-0.2.5.tar.gz (138.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sysaidmin-0.2.5-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file sysaidmin-0.2.5.tar.gz.

File metadata

  • Download URL: sysaidmin-0.2.5.tar.gz
  • Upload date:
  • Size: 138.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.12

File hashes

Hashes for sysaidmin-0.2.5.tar.gz
Algorithm Hash digest
SHA256 77c40710cead7bdcc6cb98b38d74dd05e1e1c24dbc450e3b983869a7c06da91f
MD5 eb534b82a2d3e6b43d1fe9c159dbaec8
BLAKE2b-256 01d8f2b32cc85a544d1487bbdda7ec48d214c0e551d2d0ae6bbbb49d707fe297

See more details on using hashes here.

File details

Details for the file sysaidmin-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: sysaidmin-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.12

File hashes

Hashes for sysaidmin-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f82026d920092f6bc093c12229ce5f56b6085304119236b32f90cf28c94ae257
MD5 8bfe82cd85b147a42099990c56ab8e2c
BLAKE2b-256 8d49b551690e7edfba4a1cb492ef8bfe45ad73efd46cf48d858ec16cfee26213

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page