# Olive

Olive
is
a
private
Microsoft
PowerToys
Command
Palette
extension.
It
searches
animated
GIFs
with
Klipy
and
allow
you
to
quickly
the
one
that
suits
you
best!

## Requirements

-

Windows
10/11
with
PowerToys
and
Command
Palette
enabled.

-

.NET
SDK

10.

-

Windows
SDK
`10.0.22621.0`
or
a
compatible
newer
SDK.

-

A
Klipy
API
key.

## Klipy API Key

Olive
stores
the
Klipy
key
locally
in
its
Command
Palette
settings.
Do
not
put
the
key
in
source
code,
Git,
environment
variables,
or
the
package.

To
configure
it,
open
Command
Palette,
open
the
context
commands
for
`Olive GIF Picker`,
open
Olive
settings,
paste
the
key
into
`Klipy API key`,
then
save.

## Build

```powershell
dotnet build .\Olive.sln -c Debug -p:Platform=x64
```

## Package

```powershell
.\scripts\Build-OlivePackage.ps1
```

Or
double-click:

```text
scripts\Build-OlivePackage.cmd
```

This
creates
the
shareable
package
in
`dist\OlivePackage`.

The
private
signing
file
is
exported
to
`dist\private\OlivePrivate.pfx`.
Do
not
share
it
unless
the
recipient
must
be
able
to
sign
Olive
builds.

## Install

From
`dist\OlivePackage`:

```powershell
.\Install-Olive.ps1
```

Or
double-click:

```text
Install-Olive.cmd
```

The
script
asks
for
administrator
rights,
imports
`OlivePrivate.cer`
into
`Cert:\LocalMachine\Root`,
then
opens
the
`.msix`
with
Windows
App
Installer.

Restart
PowerToys
after
installation.

## Uninstall

From
`dist\OlivePackage`
or
`scripts\`:

```powershell
.\Uninstall-Olive.ps1
```

Or
double-click:

```text
Uninstall-Olive.cmd
```

By
default,
uninstall
removes
the
Olive
package,
the
Olive
certificate
from
`Cert:\LocalMachine\Root`,
and
Olive
user
data.

Use
`-KeepCertificate`
to
keep
the
certificate.

Use
`-KeepUserData`
to
keep
Olive
user
data.

## Usage

1.

Open
PowerToys
Command
Palette.

2.

Launch
`Olive GIF Picker`.

3.

Search
for
a
GIF.

4.

Select
a
result
with
Enter.

5.

Paste
with
Ctrl+V
in
an
app
that
accepts
animated
GIF
files.

## Sharing

-

Share
only
`dist\OlivePackage`.

-

Do
not
share
`dist\private\OlivePrivate.pfx`.

-

Do
not
include
the
Klipy
API
key
in
the
package.

-

Each
user
must
set
the
Klipy
key
in
Olive
settings.

## Notes

-

Olive
copies
GIFs
as
files
to
preserve
animation.

-

Some
apps
may
reject
file
pasting
or
use
fallback
text
only.

-

GIFs
are
downloaded
in
memory
when
copied.
