Deutsche Fassung

What is Phebe?

Phebe allows controlling a mobile phone connected to the computer, e.g. via USB. In its current state of development, Phebe is able to read the phonebook and read as well as delete short messages.

Phebe is a Python package, phebe, and contains a command-line interface that makes the package's functionality available to the user. Phebe requires Python 2.5.

Communication with the phone is done using AT commands as described in the developer guidelines by Sony-Ericsson. Phebe has only been tested against the SE K750i and a Linux 2.6 kernel so far. It may work with other devices by the same or other manufacturers. I'd very much appreciate test reports sent to


A simple terminal that allows the user to type in AT commands and prints the phone's response verbatim.
Shows how many slots are in use in each of the phonebooks and SMS storages.
Shows how many short messages to or from each contact are stored.
Lists all phonebook entries.
Lists all stored contacts. Currently, Phebe only recognizes the contacts' names and phone numbers.
Dumps all or selected short messages stored on the phone.
Dumps all or selected short messages stored on the phone, grouped by contact.
Deletes all or selected short messages from the phone.
Deletes whole conversations with all or selected contacts from the phone.

Commands printing larger amounts of text either offer the text to the user for paging or write it to a file.

The Python package phebe

The phebe package contains some modules and sub-packages which implement the communication with the phone as well as the needed data structures in Python.

The modules residing directly inside the phebe package implement basic components such as the data connection to the phone, analysis of the phone's response, data types for phone numbers and short messages, and the code shared by all of the Phebe project's command line tools.
Protocols directly implement the descriptions of AT commands and their expected response. Protocols are stateless. Current Phebe provides protocols for accessing the phonebook and the short message storage.
Proxies represent particular functional aspects of the phone. For example, the phonebook proxy is a list whose entries are accessed the usual Python way. Deleting an entry from the proxy immediately removes it from the phone. So proxies are stateful. Working with proxies eliminates the need to think about AT commands. Beside the phonebook proxy, there is another one for the short message storage.
This package provides data structures that are not related to the use of AT commands. They include contacts subsuming all phone numbers of and, in the future, other data about a person. Also included are conversations that collect all short messages from and to a person.