Skip to main content

A command-line personal assistant with address book and notes

Project description

๐Ÿ“˜ PythoNauts Assistant CLI

PythoNauts Assistant CLI โ€” is a console assistant that allows you to:

  • store contacts (phones, emails, addresses, birthdays)
  • manage notes with tags
  • search and view records
  • use command auto-completion
  • conveniently work with colored terminal hints
  • show contact list in a table view

The application works locally and saves your data in
~/.pn-assistant/addressbook.pkl, regardless of your operating system.


๐Ÿš€ Installation

1. Install via PyPI (recommended)


pip install pn-assistant

2. Run the program

After installation, a new command becomes available:


pn-assistant

This launches the PythoNauts Assistant CLI interface.


๐Ÿ“‚ Where are data stored?

Contacts and notes are stored not in the package, but in your home directory:

  • Linux / macOS: /home/USER/.pn-assistant/addressbook.pkl
  • Windows: C:\Users\USER\.pn-assistant\addressbook.pkl

The file is created automatically.


๐Ÿ“œ Main Features

๐Ÿ‘ฅ Contact Management

       Action       |         Command
--------------------------------------------------------
Add contact         | `add John 380991234567`
Change phone        | `change John 380991234567 0671234567`
Delete contact      | `delete John`
Show phone          | `phone John`
Show email          | `email John`
Show birthday       | `birthday John`
Show full info      | `contact John`
Show all contacts   | `all`

โœ‰ Email

     Action      |            Command
--------------------------------------------------------
Add email        | `add-email John example@gmail.com`
Change email     | `change-email John old@gmail.com new@gmail.com`
Delete email     | `delete-email John example@gmail.com`

๐ŸŽ‚ Birthdays

            Action           |     Command
--------------------------------------------------------
Add birthday                 | `add-birthday John 2000-01-31`
Show birthday                | `birthday John`
Birthdays within next 7 days | `birthdays`
Within the next 35 days      | `birthdays 35`

๐Ÿ  Addresses

   Action     |     Command
--------------------------------------------------------
Add address   | `add-address John Kyiv, Lesi Ukrainky 12`

๐Ÿ“ Notes

      Action      |     Command
--------------------------------------------------------
Add note          | `add-note`
Delete note       | `delete-note`
Edit note         | `change-note`
Find by title     | `find-note-by-title`
Find by tag       | `find-note-by-tag`
Show all notes    | `all-notes`

๐Ÿค– General Commands

    Action    |     Command
--------------------------------------------------------
Greeting      | `hello`
Exit          | `exit` or `close`
Help          | `help`

๐Ÿงฉ Command Auto-completion

The application supports:

  • suggestions while typing (tab to complete)
  • nearest command search (Did you mean..?)
  • a colored interface (via colorama)
  • output of contacts as a table (using prettytable)

โ“ FAQ

Where are my contacts stored?

~/.pn-assistant/addressbook.pkl (Linux/macOS) 
or
C:\Users\USER\.pn-assistant\addressbook.pkl (Windows).

Why do I still see old data after uninstalling the package?

Data remains in addressbook.pkl. To start fresh โ€” delete this file.

Can I transfer my data to another computer?

Yes, copy addressbook.pkl to the same location on the new machine.

How do I add a new command or change the assistantโ€™s behavior?

Edit the code in src/personal_assistant and 
reinstall the package locally (pip install -e .).

โŒจ๏ธ Quick Usage Examples

Add a contact

pn-assistant> add John 380991234567

Add an email

pn-assistant> add-email John john@gmail.com

Check birthday

pn-assistant> birthday John

View all contacts

pn-assistant> all

๐Ÿ’  System Requirements

  • Python โ‰ฅ 3.9
  • Packets: colorama, prettytable, prompt_toolkit, wcwidth
  • Works on Linux, macOS and Windows

๐Ÿ“ฆ Project Structure (for developers)

personal-assistant/
โ”‚
โ”œโ”€โ”€ src/personal_assistant/
โ”‚   โ”œโ”€โ”€ addressbook.py
โ”‚   โ”œโ”€โ”€ colorize.py
โ”‚   โ”œโ”€โ”€ command_use.py
โ”‚   โ”œโ”€โ”€ commands.py
โ”‚   โ”œโ”€โ”€ errors.py
โ”‚   โ”œโ”€โ”€ fields.py
โ”‚   โ”œโ”€โ”€ input_parser.py
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ”œโ”€โ”€ notes.py
โ”‚   โ”œโ”€โ”€ pickle_data.py
โ”‚   โ”œโ”€โ”€ record.py
โ”‚   โ”œโ”€โ”€ utils.py
โ”‚   โ””โ”€โ”€ **init**.py
โ”‚
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ setup.cfg
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ README.md

๐Ÿ›  Development & Local Installation

Clone the repository

git clone https://github.com/yulikafsd/personal_assistant
cd personal_assistant

Local installation in development mode

pip install -e .

Run the local version

assistant

๐Ÿ“ค Publishing to PyPI

Build the distribution

python -m build

Upload

twine upload dist/*

๐Ÿ“ License & Contribution

The project is licensed under MIT License. Contributions: via pull request or issue on GitHub.


โค๏ธ Authors

Team PythoNauts
Your personal CLI assistant for working with contacts and notes.

๐Ÿ“ซ Contact / Support

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

pn_assistant-1.0.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

pn_assistant-1.0.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file pn_assistant-1.0.0.tar.gz.

File metadata

  • Download URL: pn_assistant-1.0.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for pn_assistant-1.0.0.tar.gz
Algorithm Hash digest
SHA256 568956f436e223a147ed30ccca22ecd3fd4f03e3a7f45a62cb46cb2d8a0cf14a
MD5 3f53bc386b600ff3d4b207ae9b17725b
BLAKE2b-256 3197820b53413c1c2ba7f5bc234ab22181bec13ee8edcaaa20b36f9052513b03

See more details on using hashes here.

File details

Details for the file pn_assistant-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pn_assistant-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for pn_assistant-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e722458379cfdfcbf919fb3d7a02d199539f58010b2a5c2a2bf3b37253bc9021
MD5 63918a7d538a436b9a50d1fcc2f4ef36
BLAKE2b-256 ca2a3aa87096b66960ec969f0df6c07650989787a138e19fd2fd052cba4cd006

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