A downloadable tool for Windows and Linux

Buy Now$9.99 USD or more

Procedural Text Edit is a very powerful text editing tool driven by its own programming language. (free demo right below)

(See the official product page for additional information)

The demo version is equal to the full version, it only limits the input and program size. Therefore please get the demo and try it before buying the full version. This ensures that everything runs smoothly for you. 

.ptep programs are interpreted and run on input texts to produce the desired result. It’s available as GUI for very easy usage and as a console version to interoperate it with existing programs or scripts. The program’s functions are applied in sequence on the input, feeding their result to the next function.

Since the GUI displays the result in real-time, this makes it very easy to tune a complex program until it produces the expected result. The programs only have read access to the input. It therefore is impossible to break the input data. The available functions are grouped into different categories, explained below.  

(See the full documentation for all available functions. An up-to-date documentation as well as a README is also included in the download)


Actions directly alter the text. There’s actions to append text, align the input, sort it, move words, remove duplicates and much more. There’s also combinators to apply other actions e.g. per line, per word or at certain split characters.

sort word cs      // sort the words case sensitive
reverse char      // reverse everything character by character
forEach line {    // apply the following per line    
    prepend "[] " // prepends "[] " to every line    
    append "."    // appends "." to every line


Conditions can be used in if statements to only alter the text in certain cases. contains, endsWith, isNumber and many more. There’s also combinators such as all or not which make it possible to create really complex conditions. There’s also ifelse accepting a second set of actions that is executed if the condition is false.

// append "." to every number
//        "!" to others
ifElse (isNumber) {    
    append "."
} { 
    append "!"


With selectors actions can be applied to certain parts of the input. The selected part will be affected, while the rest will stay unchanged. There’s selectors such as after, between, firstN and nth.

// replace the third word of every line by "third"
forEach line {    
    select (nth word 3) {        
        replace "third"    

Currently known issues / shortcomings

  • Some functions might not work properly if there's multiple spaces between words (e.g. alignment functions), multiple spaces might be collapsed to one.
  • Case insensitive select methods might overwrite / change the case of the selection
  • Unicode is not supported or tested, but it's possible that your use case works anyway. I suggest trying it in the demo before purchase.

Feedback / bugs

Feel free to use the comment section to leave any feedback or report bugs. I'd love to further improve Procedural Text Edit.

I signed all the releases with my PGP key.

PlatformsWindows, Linux
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorMartin Buck Software
TagsText based, Typing
Average sessionAbout a half-hour


Buy Now$9.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $9.99 USD. You will get access to the following files:

proceduralTextEdit-1-0-0-linux64.zip 51 MB
proceduralTextEdit-1-0-0-win64.zip 59 MB
proceduralTextEdit-1-0-0-linux64.zip.gpg 566 bytes
proceduralTextEdit-1-0-0-win64.zip.gpg 566 bytes

Download demo

proceduralTextEdit-1-0-0-demo-linux64.zip 51 MB
proceduralTextEdit-1-0-0-demo-win64.zip 59 MB
proceduralTextEdit-1-0-0-demo-linux64.zip.gpg 566 bytes
proceduralTextEdit-1-0-0-demo-win64.zip.gpg 566 bytes

Development log

View all posts


Log in with itch.io to leave a comment.

(1 edit)

Curius about your Editor! I just found out your docu. Thanks for sharing!


I hope you like it :)