Skip to content
Open-Source Registry

pypi / devops-bot-sdk

devops-bot-sdk 1.6.91

bitbison: clean, behavior clean, dependencies clean, posture not checked, pipeline clean, 1 of 1 jobs captured RisknoneVulnsnone
processes
609
operations
40K
packages
0
compiler runs
3
connections
3
build time
42s
job time
42s
capture
345 KB
records
63K
bytes / record
5.5

DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app

Build behaviourcompiled and nothing more

published 2026-10-24 · source · home page View on PyPI
Reviewed by Bitbison: persistenceRunning agentos-auto, even with --help, installs a control panel service that keeps running after logout and a timer that reinstalls the package every day. With passwordless sudo it also records every command run on the machine.

Artifact

archive · retained · retained · graph v2
1

Checks

10 of 10 clear
Build behavior✓✓✓✓✓✓✓
Supply chain✓✓
Pipeline✓

Detections

0

No detections

No abnormal activity detected across 40K flows.

Network

3 peers
  • github.com:22 devops-bot-sdk's own build code · ssh · Microsoft Corporation unjudged
  • files.pythonhosted.org:8080 devops-bot-sdk's own build code · python3.14 (devops-bot-sdk) via Package registries profile (pip → files.pythonhosted.org) ecosystem
  • github.com:443 devops-bot-sdk's own build code · git-remote-http via GitHub Runner profile (git-remote-http → github.com) · Microsoft Corporation infrastructure
Versions128RiskVulnsPublished
1.6.91nonenone1d ago
1.6.89not analyzed1d ago
1.6.87not analyzed1d ago
1.6.86not analyzed1d ago
1.6.85not analyzed1d ago
1.6.84not analyzed1d ago
1.6.79nonenone2d ago
1.6.76not analyzed2d ago
1.6.75not analyzed2d ago
1.6.73nonenone3d ago
1.6.71not analyzed3d ago
1.6.70nonenone3d ago
1.6.69not analyzed3d ago
1.6.68not analyzed4d ago
1.6.66not analyzed4d ago
1.6.64not analyzed5d ago
1.6.62not analyzed5d ago
1.6.60not analyzed5d ago
1.6.57not analyzed5d ago
1.6.56not analyzed6d ago
1.6.54not analyzed9d ago
1.6.53not analyzed9d ago
1.6.52not analyzed10d ago
1.6.51not analyzed2026-10-09
1.6.49not analyzed2026-10-09
1.6.48not analyzed2026-10-09
1.6.47not analyzed2026-10-09
1.6.46not analyzed2026-10-09
1.6.44not analyzed2026-10-09
1.6.42not analyzed2026-10-09
1.6.41not analyzed2026-09-22
1.6.40not analyzed2026-09-11
1.6.39not analyzed2026-09-08
1.6.38not analyzed2026-09-04
1.6.37not analyzed2026-09-03
1.6.34not analyzed2026-09-03
1.6.33not analyzed2026-09-01
1.6.32not analyzed2026-09-01
1.6.28not analyzed2026-09-01
1.6.26not analyzed2026-08-31
1.6.25not analyzed2026-08-27
1.6.24not analyzed2026-08-27
1.6.19not analyzed2026-08-08
1.6.15not analyzed2026-08-07
1.6.14not analyzed2026-08-06
1.6.10not analyzed2026-08-05
1.6.8not analyzed2026-08-04
1.6.6not analyzed2026-08-04
1.6.4not analyzed2026-08-04
1.6.2not analyzed2026-08-03
1.5.0not analyzed2026-08-03
1.4.159not analyzed2026-07-30
1.4.158not analyzed2026-07-29
1.4.153not analyzed2026-07-22
1.4.151not analyzed2026-07-22
1.4.150not analyzed2026-07-21
1.4.149not analyzed2026-07-21
1.4.148not analyzed2026-07-21
1.4.147not analyzed2026-07-21
1.4.146not analyzed2026-07-21
1.4.145not analyzed2026-07-20
1.4.143not analyzed2026-07-20
1.4.141not analyzed2026-07-20
1.4.139not analyzed2026-07-20
1.4.132not analyzed2026-07-16
1.4.129not analyzed2026-07-16
1.4.126not analyzed2026-07-16
1.4.125not analyzed2026-07-16
1.4.124not analyzed2026-07-16
1.4.120not analyzed2026-07-15
1.4.119not analyzed2026-07-15
1.4.118not analyzed2026-07-15
1.4.117not analyzed2026-07-15
1.4.116not analyzed2026-07-14
1.4.101not analyzed2026-07-08
1.4.99not analyzed2026-07-08
1.4.96not analyzed2026-07-08
1.4.94not analyzed2026-07-07
1.4.92not analyzed2026-07-06
1.4.90not analyzed2026-07-06
1.4.88not analyzed2026-07-04
1.4.86not analyzed2026-07-04
1.4.85not analyzed2026-07-04
1.4.83not analyzed2026-07-04
1.4.81not analyzed2026-07-04
1.4.79not analyzed2026-07-04
1.4.78not analyzed2026-07-04
1.4.76not analyzed2026-07-04
1.4.74not analyzed2026-07-03
1.4.71not analyzed2026-07-03
1.4.70not analyzed2026-07-03
1.4.67not analyzed2026-07-03
1.4.66not analyzed2026-07-03
1.4.65not analyzed2026-07-03
1.4.62not analyzed2026-07-03
1.4.60not analyzed2026-07-03
1.4.58not analyzed2026-07-03
1.4.55not analyzed2026-07-03
1.4.47not analyzed2026-07-02
1.4.46not analyzed2026-07-02
1.4.45not analyzed2026-07-02
1.4.39not analyzed2026-07-02
1.4.37not analyzed2026-07-02
1.4.35not analyzed2026-07-02
1.4.33not analyzed2026-07-01
1.4.31not analyzed2026-07-01
1.4.29not analyzed2026-07-01
1.4.27not analyzed2026-07-01
1.4.26not analyzed2026-07-01
1.4.25not analyzed2026-06-29
1.4.24not analyzed2026-06-29
1.4.23not analyzed2026-06-29
1.4.22not analyzed2026-06-24
1.4.20not analyzed2026-06-24
1.4.19not analyzed2026-06-24
1.4.17not analyzed2026-06-24
1.4.14not analyzed2026-06-24
1.4.13not analyzed2026-06-24
1.4.11not analyzed2026-06-23
1.4.8not analyzed2026-06-23
1.4.6not analyzed2026-06-22
1.4.3not analyzed2026-06-17
1.4.1not analyzed2026-06-16
1.4.0not analyzed2026-06-12
1.2.1not analyzed2026-06-08
1.2.0not analyzed2026-06-08
1.1.0not analyzed2026-06-04
1.0.0not analyzed2026-06-03

Raw data

capture
345 KB
records
62,667
bytes per record
5.5

Loading a sample of the capture

Want to see more? E-mail us at hello@bitbison.io about your use case.

1 of 1 jobs captured: build-import success · Generated 2026-10-24 · run d7abc966-4e63-40ac-ab79-605f8abdc38f

analysis 0.1.0 · 2026-10-23 · 9ca2ab8 · graph v2

devops-bot-sdk installs a background service and a daily self-updater when its CLI runs, even for --help

persistenceCovers 1.6.70 and 1.6.91Reviewed by BitbisonUpdated 2026-10-25

Running agentos-auto, even with --help, installs a control panel service that keeps running after logout and a timer that reinstalls the package every day. With passwordless sudo it also records every command run on the machine.

What the analysis saw

Our sandbox installed devops-bot-sdk 1.6.70 and ran each of its commands with --help. agentos-auto --help did not print help. It ran the full start-up path:

  • It wrote ~/.config/systemd/user/agentos-ui.service, agentos-update.service and agentos-update.timer.
  • It ran systemctl --user enable --now for the panel and for the timer.
  • It ran loginctl enable-linger. The panel keeps running after the user logs out.
  • It tried sudo -n and read the firewall state with ufw status.
  • It wrote ~/.agentos/auto.log and ~/.agentos/auto.pid and read the project's .env.

No network traffic left the sandbox.

1.6.91

Our sandbox installed 1.6.91 and ran each of its commands with --help, as for 1.6.70. agentos-auto --help again ran the full start-up path:

  • It wrote the same three systemd units, ran systemctl --user enable --now for the panel and the timer, and ran loginctl enable-linger.
  • It tried sudo -n, read ufw status, read the project's .env and started itself in the background.
  • With the network on, it reached only PyPI, to check for an update.

We also read its source. The files, port, hosts and addresses are unchanged, and the same AGENTOS_NO_* variables skip each step.

1.6.91 also reads Claude Code's login token from ~/.claude/.credentials.json. It sends the token only to Anthropic's usage endpoint, to hold back scheduled agent runs when the Claude plan is nearly used up. It does not send it to the vendor. Set AGENTOS_USAGE_GATE=0 to turn this off. The --help run did not reach this code.

Why it happens

In sdk/run_auto.py, any first argument that starts with - selects the run command. --help is no exception. run first checks for updates. The update step then sets up the service, the timer and command auditing on the machine. It skips a step only when an AGENTOS_NO_* variable is set.

What gets installed

  • agentos-ui is a control panel on port 8765 on every network interface. It restarts if it stops. Its API runs AI agents and shell commands on the machine. Programs on the same machine can use it without a token. Remote callers need the account's co_ API token. The vendor's backend at 20.12.201.148 and 20.127.87.169 is allowed in by default.
  • agentos-update.timer reinstalls the package once a day from PyPI or from the vendor's GitHub repository.
  • If the user has passwordless sudo, it installs auditd when it is missing and adds rules that record every command run on the machine. The panel sends these records to the vendor's backend every five minutes.
  • When run as root, it also opens port 8765 in the firewall to any address.

The README describes none of this.

Is it malicious?

No. We read the source of 1.6.70. It has no hidden code and no obfuscation. 1.6.70 does not read credential files or browser data. Its own comments say so. 1.6.91 reads Claude Code's token, as described above. It talks only to the vendor's own services. Nothing runs when the package is installed.

The package is a remote management agent for servers. This is what it is built to do. The problem is that agentos-auto sets all of this up the first time it runs, help included. On a developer's machine that leaves a background service and a daily self-updater the user never asked for. On a CI runner with passwordless sudo it also installs auditd and records every command for the rest of the job.

How to avoid it

Do not run agentos-auto to read its help. To use the package without the setup, set AGENTOS_NO_UPDATE=1, AGENTOS_NO_SERVICE=1, AGENTOS_NO_AUDIT_SETUP=1 and AGENTOS_NO_FIREWALL=1.

To remove it:

systemctl --user disable --now agentos-ui agentos-update.timer
rm ~/.config/systemd/user/agentos-ui.service ~/.config/systemd/user/agentos-update.service ~/.config/systemd/user/agentos-update.timer
loginctl disable-linger "$USER"
sudo rm -f /etc/audit/rules.d/agentos.rules && sudo augenrules --load

Indicators

hosts
gateway-ml.apiswagger.co.ukdevopsbot-ai.apiswagger.co.uk
addresses
20.12.201.14820.127.87.169
files
~/.config/systemd/user/agentos-ui.service~/.config/systemd/user/agentos-update.service~/.config/systemd/user/agentos-update.timer~/.agentos/auto.log/etc/audit/rules.d/agentos.rules~/.claude/.credentials.json
ports
8765

Examined

1.6.70
sha256:a8920667d1e354c59af1a149914201f2689c963452c35a1a4b34ba1a7d9e969f
1.6.91
sha256:7e90a3f9aa47324074a79bae9bcb6dbaf4cf61d840ffd524b199b92c75ba5a6d

Links