mynotes-cli


Namemynotes-cli JSON
Version 0.3.7 PyPI version JSON
download
home_pageNone
SummaryCLI notes manager with tags, colored output, exports and shell autocompletion
upload_time2025-10-09 07:26:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords notes cli terminal tags productivity python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # πŸ“ mynotes-cli β€” Simple Terminal Notes Manager

> Manage colorful notes with tags, export to TXT/MD/PDF, and enjoy autocompletion in your terminal.

---

## πŸš€ Installation

### 1️⃣ Clone or unpack the project
```bash
git clone https://github.com/antoninsiska/mynotes-cli.git
cd mynotes-cli
```
Or if you have a ZIP file:
```bash
unzip mynotes-cli.zip
cd mynotes-cli
```

---

### 2️⃣ Install locally
```bash
pip install -e .
```
This command makes the `mynotes` command available in your Python environment.

> πŸ’‘ Optional (for PDF export):
> ```bash
> pip install reportlab
> ```

---

## βš™οΈ Enable autocompletion

`mynotes` uses **argcomplete**, which allows shell autocompletion by pressing `TAB`.

### 🐚 Bash
Run:
```bash
python -m argcomplete.global
```
Then restart your shell or reload it:
```bash
source ~/.bashrc
```

### πŸŒ€ Zsh
```bash
autoload -U bashcompinit && bashcompinit
eval "$(register-python-argcomplete --shell zsh mynotes)"
```
To make it persistent, add the last line to your `~/.zshrc`.

### 🐟 Fish
```bash
register-python-argcomplete --shell fish mynotes | source
```
Or permanently:
```bash
register-python-argcomplete --shell fish mynotes > ~/.config/fish/completions/mynotes.fish
```

---

## ⚑ Shortcut alias `my`
If you prefer shorter commands:
```bash
alias my="mynotes"
```
To make it persistent:
```bash
echo 'alias my="mynotes"' >> ~/.bashrc
source ~/.bashrc
```

---

## 🧠 Basic usage

### Add a note
```bash
mynotes add "Buy milk"
mynotes add "Finish presentation" --tags school fll
```

### List notes
```bash
mynotes list
mynotes list --tag school
```
> `list` shows a colorful table with tags (using **Rich**).  
> Use `--plain` for plain text output.

### Edit a note
```bash
mynotes edit 2 --text "Buy milk and eggs"
mynotes edit 2 --add-tags ftc --remove-tags school
```

### Delete a note
```bash
mynotes delete 1
```

---

## 🏷️ Tags

### List all tags
```bash
mynotes tag list
```

### Add a new tag
```bash
mynotes tag add school --color bright_blue
```

### Edit a tag
```bash
mynotes tag edit school --new-name School --color yellow
```

### Delete a tag
```bash
mynotes tag delete fll
```

> Available colors:  
> `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`  
> + bright variants such as `bright_blue`, `bright_yellow`.

Tags are automatically styled for contrast:  
- light colors β†’ black text  
- dark colors β†’ white text

---

## πŸ“€ Export

### To TXT
```bash
mynotes export --format txt --out notes.txt
```

### To Markdown
```bash
mynotes export --format md --out notes.md --tag ftc
```

### To PDF
```bash
mynotes export --format pdf --out notes.pdf
```

> PDF export uses `reportlab` (if installed). Otherwise, a simple fallback is used.

---

## πŸ“¦ Storage

- Notes: `~/.mynotes.json`  
- Tags: `~/.mynotes_tags.json`

You can override paths:
```bash
MYNOTES_PATH=/custom/path/notes.json MYNOTES_TAGS_PATH=/custom/path/tags.json mynotes list
```

---

## 🧩 Autocomplete examples

Try pressing `TAB`:
```bash
mynotes [TAB]          # β†’ add, list, edit, delete, tag, export
mynotes tag [TAB]      # β†’ list, add, edit, delete
mynotes list --tag [TAB]  # β†’ shows existing tags
mynotes edit [TAB]        # β†’ offers existing note IDs
```

---

## πŸ’‘ Tips

- `mynotes --l` is a shortcut for `mynotes list`
- `mynotes --a "text"` adds a note
- `mynotes --d 3` deletes note with ID 3

---

## 🧰 Troubleshooting

### ❌ `mynotes: command not found`
- Make sure your virtual environment is active  
- Reinstall:
  ```bash
  pip install -e .
  ```
- Or run manually:
  ```bash
  python -m mynotes.cli
  ```

### ❌ Autocompletion not working
- Run:
  ```bash
  python -m argcomplete.global
  ```
- Then restart your terminal.

---

## 🎨 Example output

```
πŸ“’ mynotes
┏━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ ID┃ Note               ┃ Tags       ┃ Created      ┃ Updated      ┃
┣━━━╋━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━╋━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━┫
┃ 1 ┃ Buy milk           ┃ school fll ┃ 5 min ago    ┃ -            ┃
┃ 2 ┃ Finish presentation┃ ftc        ┃ 1 h ago      ┃ 10 min ago   ┃
┗━━━┻━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━┻━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━┛
```

---

## 🧑 Author
**AntonΓ­n Ε iΕ‘ka**  
CLI utility built in Python using `argparse`, `rich`, `argcomplete`, and `reportlab`.  
Version: 0.3.0

Β© 2025 AntonΓ­n Ε iΕ‘ka β€” Licensed under the MIT License.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mynotes-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "notes, cli, terminal, tags, productivity, python",
    "author": null,
    "author_email": "Anton\u00edn \u0160i\u0161ka <your.email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/32/3b/b2f1eb6c993ebb9297885bc96de24c52eb1febd1867544389ad7230df0af/mynotes_cli-0.3.7.tar.gz",
    "platform": null,
    "description": "# \ud83d\udcdd mynotes-cli \u2014 Simple Terminal Notes Manager\n\n> Manage colorful notes with tags, export to TXT/MD/PDF, and enjoy autocompletion in your terminal.\n\n---\n\n## \ud83d\ude80 Installation\n\n### 1\ufe0f\u20e3 Clone or unpack the project\n```bash\ngit clone https://github.com/antoninsiska/mynotes-cli.git\ncd mynotes-cli\n```\nOr if you have a ZIP file:\n```bash\nunzip mynotes-cli.zip\ncd mynotes-cli\n```\n\n---\n\n### 2\ufe0f\u20e3 Install locally\n```bash\npip install -e .\n```\nThis command makes the `mynotes` command available in your Python environment.\n\n> \ud83d\udca1 Optional (for PDF export):\n> ```bash\n> pip install reportlab\n> ```\n\n---\n\n## \u2699\ufe0f Enable autocompletion\n\n`mynotes` uses **argcomplete**, which allows shell autocompletion by pressing `TAB`.\n\n### \ud83d\udc1a Bash\nRun:\n```bash\npython -m argcomplete.global\n```\nThen restart your shell or reload it:\n```bash\nsource ~/.bashrc\n```\n\n### \ud83c\udf00 Zsh\n```bash\nautoload -U bashcompinit && bashcompinit\neval \"$(register-python-argcomplete --shell zsh mynotes)\"\n```\nTo make it persistent, add the last line to your `~/.zshrc`.\n\n### \ud83d\udc1f Fish\n```bash\nregister-python-argcomplete --shell fish mynotes | source\n```\nOr permanently:\n```bash\nregister-python-argcomplete --shell fish mynotes > ~/.config/fish/completions/mynotes.fish\n```\n\n---\n\n## \u26a1 Shortcut alias `my`\nIf you prefer shorter commands:\n```bash\nalias my=\"mynotes\"\n```\nTo make it persistent:\n```bash\necho 'alias my=\"mynotes\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\n---\n\n## \ud83e\udde0 Basic usage\n\n### Add a note\n```bash\nmynotes add \"Buy milk\"\nmynotes add \"Finish presentation\" --tags school fll\n```\n\n### List notes\n```bash\nmynotes list\nmynotes list --tag school\n```\n> `list` shows a colorful table with tags (using **Rich**).  \n> Use `--plain` for plain text output.\n\n### Edit a note\n```bash\nmynotes edit 2 --text \"Buy milk and eggs\"\nmynotes edit 2 --add-tags ftc --remove-tags school\n```\n\n### Delete a note\n```bash\nmynotes delete 1\n```\n\n---\n\n## \ud83c\udff7\ufe0f Tags\n\n### List all tags\n```bash\nmynotes tag list\n```\n\n### Add a new tag\n```bash\nmynotes tag add school --color bright_blue\n```\n\n### Edit a tag\n```bash\nmynotes tag edit school --new-name School --color yellow\n```\n\n### Delete a tag\n```bash\nmynotes tag delete fll\n```\n\n> Available colors:  \n> `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`  \n> + bright variants such as `bright_blue`, `bright_yellow`.\n\nTags are automatically styled for contrast:  \n- light colors \u2192 black text  \n- dark colors \u2192 white text\n\n---\n\n## \ud83d\udce4 Export\n\n### To TXT\n```bash\nmynotes export --format txt --out notes.txt\n```\n\n### To Markdown\n```bash\nmynotes export --format md --out notes.md --tag ftc\n```\n\n### To PDF\n```bash\nmynotes export --format pdf --out notes.pdf\n```\n\n> PDF export uses `reportlab` (if installed). Otherwise, a simple fallback is used.\n\n---\n\n## \ud83d\udce6 Storage\n\n- Notes: `~/.mynotes.json`  \n- Tags: `~/.mynotes_tags.json`\n\nYou can override paths:\n```bash\nMYNOTES_PATH=/custom/path/notes.json MYNOTES_TAGS_PATH=/custom/path/tags.json mynotes list\n```\n\n---\n\n## \ud83e\udde9 Autocomplete examples\n\nTry pressing `TAB`:\n```bash\nmynotes [TAB]          # \u2192 add, list, edit, delete, tag, export\nmynotes tag [TAB]      # \u2192 list, add, edit, delete\nmynotes list --tag [TAB]  # \u2192 shows existing tags\nmynotes edit [TAB]        # \u2192 offers existing note IDs\n```\n\n---\n\n## \ud83d\udca1 Tips\n\n- `mynotes --l` is a shortcut for `mynotes list`\n- `mynotes --a \"text\"` adds a note\n- `mynotes --d 3` deletes note with ID 3\n\n---\n\n## \ud83e\uddf0 Troubleshooting\n\n### \u274c `mynotes: command not found`\n- Make sure your virtual environment is active  \n- Reinstall:\n  ```bash\n  pip install -e .\n  ```\n- Or run manually:\n  ```bash\n  python -m mynotes.cli\n  ```\n\n### \u274c Autocompletion not working\n- Run:\n  ```bash\n  python -m argcomplete.global\n  ```\n- Then restart your terminal.\n\n---\n\n## \ud83c\udfa8 Example output\n\n```\n\ud83d\udcd2 mynotes\n\u250f\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 ID\u2503 Note               \u2503 Tags       \u2503 Created      \u2503 Updated      \u2503\n\u2523\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b\n\u2503 1 \u2503 Buy milk           \u2503 school fll \u2503 5 min ago    \u2503 -            \u2503\n\u2503 2 \u2503 Finish presentation\u2503 ftc        \u2503 1 h ago      \u2503 10 min ago   \u2503\n\u2517\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251b\n```\n\n---\n\n## \ud83e\udde1 Author\n**Anton\u00edn \u0160i\u0161ka**  \nCLI utility built in Python using `argparse`, `rich`, `argcomplete`, and `reportlab`.  \nVersion: 0.3.0\n\n\u00a9 2025 Anton\u00edn \u0160i\u0161ka \u2014 Licensed under the MIT License.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "CLI notes manager with tags, colored output, exports and shell autocompletion",
    "version": "0.3.7",
    "project_urls": {
        "Homepage": "https://github.com/antoninsiska/mynotes-cli",
        "Issues": "https://github.com/antoninsiska/mynote-cli/issues",
        "Repository": "https://github.com/antoninsiska/mynotes-cli"
    },
    "split_keywords": [
        "notes",
        " cli",
        " terminal",
        " tags",
        " productivity",
        " python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "032efefcf1b75427778e809784632b37e3573be0f37ad04f98b00a517cb47293",
                "md5": "a594a7444d58f89f58a1d04c5c4f05ba",
                "sha256": "bdc69f050383cff2b714869360bcbc8e31c72b0889c91bce8816d68fd3883775"
            },
            "downloads": -1,
            "filename": "mynotes_cli-0.3.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a594a7444d58f89f58a1d04c5c4f05ba",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10064,
            "upload_time": "2025-10-09T07:26:17",
            "upload_time_iso_8601": "2025-10-09T07:26:17.674438Z",
            "url": "https://files.pythonhosted.org/packages/03/2e/fefcf1b75427778e809784632b37e3573be0f37ad04f98b00a517cb47293/mynotes_cli-0.3.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "323bb2f1eb6c993ebb9297885bc96de24c52eb1febd1867544389ad7230df0af",
                "md5": "43bce747c90958b6f910ff4428ca488c",
                "sha256": "f7fc39fa9633ef0020c4e7489e0d570adffe8598f925aa89cab5ce921aaa623f"
            },
            "downloads": -1,
            "filename": "mynotes_cli-0.3.7.tar.gz",
            "has_sig": false,
            "md5_digest": "43bce747c90958b6f910ff4428ca488c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 11499,
            "upload_time": "2025-10-09T07:26:18",
            "upload_time_iso_8601": "2025-10-09T07:26:18.801658Z",
            "url": "https://files.pythonhosted.org/packages/32/3b/b2f1eb6c993ebb9297885bc96de24c52eb1febd1867544389ad7230df0af/mynotes_cli-0.3.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 07:26:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "antoninsiska",
    "github_project": "mynotes-cli",
    "github_not_found": true,
    "lcname": "mynotes-cli"
}
        
Elapsed time: 1.78916s