Skip to main content

F7 is a productivity tool to manipulate strings using python,shell or AI

Project description

F7

I know a command that could do that

Screenshot of the app with grep() python command to find https links

F7 is an app to help you manipulate strings fast and easily using Python, the command line, or a local LLM.

Installation

Install using pip:

pip install f7

Or using pipx:

pipx install f7

Setup

Linux

Requirements: xsel on X, wl-clipboard on Wayland.

To create desktop files, run:

f7 register

That will create the main application desktop file and optionally register a startup file.

Next, go to your system's keyboard shortcuts settings (e.g., Settings > Keyboard > Shortcuts > Add Application on KDE or GNOME), and bind the f7 application to your preferred shortcut (e.g., F7 or F4).

You can also try registering the command <f7 path> show instead.

Windows

Run:

f7 register

That will register the startup registry key. The app listens for your configured shortcut. You can change the shortcut using the F7 settings in the tray menu.

macOS

Currently not supported, but may be possible using macOS's Shortcuts app (Shortcuts > + > Shell Script) or Automator.

If you find a way to make it work, feel free to open a PR or reach out!

Usage

  1. Select the Text: Highlight any text from any app.

  2. Activate F7: Hit your shortcut key. Screenshot of the F7 window appearing on todepond website

  3. Type Your Transformation:

    In the input field, use Python (default), command-line ($ prefix), or LLM (! prefix or suffix).

    Example using Python:

    [l.split()[0] for l in lines]
    

    (This tells the app: for each line, split it into words, and give me the first one.)

    Or using Bash:

    $cut -f1
    

    (Use $$cut -f1 for live preview.)

    Live preview will show up as you type:

    18109
    8679
    ...
    

    Screenshot of the F7 window appearing

  4. Hit Enter: Result is copied to your clipboard.

  5. Done! Paste it wherever you want.

Command Line Mode

You could also use $ prefix to run a command (then ctrl+enter to preview), or $$ fix to live-preview:

Command mode screenshot

Local AI (LLM) Setup

Supports two backends: Ollama and Llama.cpp.

1. Ollama Setup

  • Install Ollama: ollama.com
  • Pull a model: For example:
ollama pull phi3

You can find other available models on the Ollama library website.

  • Configure in App:

    1. Open F7 settings (/settings or tray menu)
    2. Go to AI tab
    3. Set Backend to ollama
    4. Set Model Name (e.g., phi3)

2. Llama.cpp Setup:

2. Llama.cpp Setup

  • Download a GGUF model: e.g., from Hugging Face

    • Recommended: Q4_K_M
  • Configure in App:

    1. Open F7 settings
    2. Go to AI tab
    3. Set Backend to llama_cpp
    4. Set path to the GGUF model
    5. Enable GPU if you have one (llama_cpp_use_GPU)

F7 python

F7 adds a few helpful twists to regular Python to speed things up:

  • Predefined variables: text (alias:s), lines, words

  • Auto-parsed content: _ var will try to parse the text as JSON, Python literal, CSV or base64.

  • Forgiving syntax: complete ({[ so half-written code like [ l for l in lines works!

  • List display: Lists show as joined lines ("\n".join(...)) instead of repr(...), so it easier to work with lines.

  • Auto-display: Typing text.upper or urldecode get output automatically if they match (str) → str, or a method of text.

  • Useful built-ins:

    • grep("foo") → like re.search(...) over lines
    • sub("a", "b") → like re.sub(...) on text
    • Other helpers: entropy, from_base64, from_tsv, etc.
  • Preloaded utils: Things like lnjoin = "\n".join, urlencode = quote_plus. also there are string formatters like snake_case, camel_case that came from string_utils

FAQ

F7 key triggers "caret browsing" in Chrome/uim

Unfortunately, Chrome doesn’t let you disable F7. Options:

  • Remap shortcut to something else (e.g. F4)

    • Windows: F7 settings > System > Hotkey
    • Linux: System Settings > Keyboard Shortcuts
    • Use a browser that allows shortcut customization (e.g., Brave, Vivaldi)
    • Remap F7 key to something else (e.g. using PowerToys on Windows bind F7 to alt+F7)

F7 key triggers caret browsing in Firefox

If you use caret browsing, consider remapping the shortcut. Otherwise, just click "Do not ask me again" and choose "No". Firefox will remember your choice.

How to report errors/problems/suggestions

please open a GitHub issue

How can I donate you

If you found this app useful, please buy me a coffee:

Buy Me A Coffee

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

f7-0.1.2.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

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

f7-0.1.2-py3-none-any.whl (57.3 kB view details)

Uploaded Python 3

File details

Details for the file f7-0.1.2.tar.gz.

File metadata

  • Download URL: f7-0.1.2.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.3 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for f7-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4400f9bb63e67185bd9dfbceee13a5c28be0b2c8b2901bd836b8b20b73d16e9d
MD5 0484e9ac8c4c57b26649c54e6c179ff9
BLAKE2b-256 f38bbb8395efcf7ea68d5e1b3b1d7538098fa2e89239efd03694a2d183d3b279

See more details on using hashes here.

File details

Details for the file f7-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: f7-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 57.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.3 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for f7-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b1ab41a676a8b5fc7782c760e8a31532834502704880c6c45a492fb1dd28301
MD5 f67ca571a43d251c096c527c16365040
BLAKE2b-256 40af03a3523c9a830f3ab2497f14162ddf37f15673d98f8656ce09d90621b9a6

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