LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

opi

search and install packages from OBS, Packman, and vendor repos on openSUSE

TLDR

Search for a package and pick a result to install
$ opi [filezilla]
copy
Install media codecs from Packman (and the official repo)
$ opi codecs
copy
Same codecs via the packman plugin alias
$ opi packman
copy
Search without running vendor plugins (OBS, Packman, and configured repos only)
$ opi -P [package]
copy
Install in non-interactive mode (no prompts)
$ opi -n [package]
copy
Search for several packages as separate queries
$ opi -m [package1] [package2]
copy
Print the version
$ opi -V
copy

SYNOPSIS

opi [-h] [-V] [-n] [-P] [-m] [-v] [query ...]

DESCRIPTION

opi (OBS Package Installer) is a Python CLI for openSUSE and SUSE Linux Enterprise. It searches community and third-party packages that are not always in the default distribution repositories, then hands the chosen package to zypper (which may prompt for sudo).Without plugins it looks at:1. the openSUSE Build Service2. Packman3. repositories already configured on the systemPlugins add named queries for popular vendor software (for example chrome, vscode, spotify, zoom, brave) and for Packman media codecs. Running `opi` with no arguments prints usage, including the current plugin list.opi is a search-and-install helper, not a full package manager. Removing or updating packages is still done with zypper.

PARAMETERS

query

Package name or substring. Searched on the openSUSE Build Service and Packman. Several arguments are ANDed unless -m is given.
-h, --help
Show help and exit.
-V, --version
Show the program version and exit.
-n
Non-interactive: do not prompt; accept the default/first matching action.
-P
Do not run plugins. Only search configured repositories, OBS, and Packman.
-m
Treat each query argument as its own package search instead of requiring all terms to match one result.
-v, --verbose
More talkative output.

CONFIGURATION

System config is `/etc/opi.cfg` (override the path with OPI_CONFIG). Keys live under an `[opi]` section:

$ [opi]
use_releasever_var = true
new_repo_auto_refresh = true
list_in_reverse = false
copy
use_releasever_var
Use `$releasever` in repository URLs so Leap/SLE upgrades keep working.
new_repo_auto_refresh
Refresh newly added repositories automatically. Set to `false` to skip that refresh.
list_in_reverse
Reverse the search-result order.

INSTALL

sudo zypper install opi
copy

CAVEATS

Requires openSUSE (Tumbleweed or Leap 42.1+) or SLE 12+, network access to OBS/Packman, and python3 with requests, lxml, and termcolor. Vendor plugins add third-party repositories; review what will be enabled before confirming. -n still installs software — it only skips prompts. Plugin names change as plugins are added or removed; `opi -h` is the live list.

HISTORY

opi is maintained by the openSUSE project (originally by Dominik Heidler, Guo Yunhe, and others) under the GPL-3.0 license. The current CLI is a Python 3 tool shipped from the distribution repositories.

SEE ALSO

zypper(8), rpm(8)

RESOURCES

Copied to clipboard
Kai