Automator: Decode Decode64 selection and display output in a new TextEdit window I would like to display a service in a context menu for a selected text which is a base64 string. The service has to decode it to string with a base64 via terminal script and display an output in a new TextEdit window.
I have a service in an Automator app which has a script shell with input as arguments and command:
&quot;$@&quot; | base64 --decode

There is a connected &quot;New TextEdit document action&quot; to the shell script.
This display empty window
If I change the command to pbpaste | base64 --decode and I will copy a base64 string to clipboard then the service works correctly.
How to pipeline the input argument, which is a base64 selected string, to 'base64 --decode' command?
I know the question is about TextEdit, but for anyone who would rather do this in BBEdit, you can create a TextFilter to process the selected text.
#!/usr/bin/python

import sys
  
def decode64(myString):
    return myString.decode('base64')

input = sys.stdin.read()
print decode64(input)

If you want to use python3, it's even easier:
#!/usr/local/bin/python3

import sys, base64

input = sys.stdin.read()
print base64.b64decode(input)

Save this to: ~/Library/Application Support/BBEdit/Text Filters, then you can access it from the Text Filters menu.