Metadata-Version: 2.4
Name: safari-bookmarks-cli
Version: 0.6.1
Summary: A cli to manage bookmarks in the Safari web browser.
Project-URL: Homepage, https://github.com/evilmarty/safari-bookmarks-cli
Project-URL: Bug Tracker, https://github.com/evilmarty/safari-bookmarks-cli/issues
Author-email: Marty <marty@zalega.me>
License-File: LICENSE
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Requires-Dist: pydantic~=2.1
Provides-Extra: build
Requires-Dist: hatch; extra == 'build'
Provides-Extra: tests
Requires-Dist: flake8~=7.1; extra == 'tests'
Requires-Dist: pytest~=8.2; extra == 'tests'
Description-Content-Type: text/markdown

# safari-bookmarks-cli

A cli to manage bookmarks in the Safari web browser.

This utility interacts with Safari's `Bookmarks.plist` file. When it detects changes it is reloaded without intervention.

**Note** macOS 10.14+ requires Full Disk Access for the application being used. ie. Terminal, iTerm, etc.

## Installation

You can install safari-bookmarks-cli via pip:

```shell
pip3 install safari-bookmarks-cli

# verify installation
safari-bookmarks --version
```

## Usage

The following assumes the default location for Safari's bookmarks, which is `~/Library/Safari/Bookmarks.plist`. If this is not the case you can specify an alternate location by passing the arguments `-f <elsewhere>`.

For a full list of commands and options just run:

```shell
safari-bookmarks --help
```

### To list all bookmarks run

```shell
safari-bookmarks list
```

### To list all bookmarks in the menubar

```shell
safari-bookmarks list "BookmarksMenu"
```

### Add a new bookmark to the menubar

```shell
safari-bookmarks add --title "New bookmark" --url "http://example.com" "BookmarksMenu"
```

### Add a new bookmark to the menu

```shell
safari-bookmarks add --title "New folder" --list "BookmarksBar"
```

### Move a bookmark to a different folder

```shell
safari-bookmarks move "BookmarksMenu" "New bookmark" --to "BookmarksBar" "New folder"
```

### Remove a bookmark or folder

**Note** removing a folder will also remove all bookmarks and folders within it.

```shell
safari-bookmarks remove "BookmarksBar" "New folder"
```

### Empty a folder

```shell
safari-bookmarks empty "BookmarksBar" "New folder"
```

## Testing

Clone the repository:

```shell
git clone https://github.com/evilmarty/safari-bookmarks-cli.git
```

Install pytest and flake8

```shell
pip3 install pytest flake8
```

Run them

```shell
pytest && flake8
```
