Welcome To Hackerman Text
Hackerman Text is free for personal, educational, hobby, and evaluation use. Commercial use requires a license.
Hackerman Text is currently in alpha. Please expect bugs, rough edges, and features that may change.
Please report bugs or other issues here: Issues.
Feature requests are welcome here: Feature requests.
Other useful links: Documentation, End User License Agreement, Privacy Policy.
Code completion
Code completion is currently being reworked. The built-in auto complete and code completion flow will likely be replaced by single custom Ollama-powered completion command. Hosted completion support for Mistral and Inception may be removed unless latency can be kept reliably below a few hundred milliseconds.

Hackerman Text supports code completion through local and hosted models. For the best current experience, Ollama is recommended. Hosted providers such as Mistral and Inception can also be configured, but these paths are more likely to change during the alpha.
Ollama
Install Ollama and download a FIM-enabled model. A good starting point is qwen2.5-coder.
Then open your .hackerman config file. You can do this
by right-clicking in the editor, or by pressing
Cmd + Shift + P and selecting Open Config
File.
Find the [models] section and configure code completion
like this:
[models]
-- ollama
code_completion ollama, qwen2.5-coder:1.5b
After saving the config, trigger completion with Code Completion.
Mistral
To use Mistral, create a Mistral account and generate an API key. See the Mistral quickstart.
Open your .hackerman config file, find the
[models] section, and replace API_KEY with
your Mistral API key:
[models]
-- cloud providers
code_completion mistral, codestral-latest, API_KEY
After saving the config, trigger completion with Code Completion.
Inception
To use Inception, create an Inception account and generate an API key. See the Inception authentication guide.
Open your .hackerman config file, find the
[models] section, and replace API_KEY with
your Inception API key:
[models]
-- cloud providers
code_completion inception, mercury-coder, API_KEY
After saving the config, trigger completion with Code Completion.
Inline shell commands
Shell and Python eval
Hackerman Text can run shell commands and evaluate small expressions
directly inside ordinary text files. By default, inline commands are
enabled only in .txt, .md, and
.org files.
You can change the enabled file types in your .hackerman
config file:
inline_command_in_files txt, md, org,
inline_shell_start_symbol %
Move the cursor to a command line and trigger Inline
Commands, or press Cmd + Shift + Return.
% echo 'hello'
hello
42**42
150130937545296572356771972164254457814047970568738777235893533016064
Org-mode code execution
In Org files, Hackerman Text can execute code blocks written in Python, Lua, JavaScript, and Hy.
(defn main [name]
(print "Welcome to Hy in org-mode," name "!")
)
(main name)
Move the cursor inside the code block and trigger Inline
Commands, or press Cmd + Shift + Return. Results are
inserted back into the document:
#+RESULTS: True
: Welcome to Hy in org-mode, Michael !
Custom editor commands
Custom editor commands let you extend Hackerman Text with your own
Python scripts. This feature is disabled by default and must be enabled
in your .hackerman config file:
scripts_enabled true
allow_unsafe_scripts false -- allow imports

Scripts are loaded from:
~/.../Application Support/Hackerman Text/.hackerman-scripts
You can also point Hackerman Text to your own script file. This requires a restart:
path_to_scripts_file path/to/plugins.py -- path to scripts file, requires restart
Tips and tricks
Right-click in the editor, or press Cmd + Shift + P, to
open the command palette. This shows the available commands and their
active key bindings.
Double-click a line number to fold that line. You can also use
Cmd + L.
Double-click a word to select it. To add another matching word to the
selection, hold Cmd and double-click the next word.
Select some text, then use Select Next Match or
Cmd + E to select the next exact match. Use Unselect
Next Match or Cmd + Shift + E to remove the last added
match.
To select every match in a file, open Find In File with
Cmd + F, search for the text, press Esc, then
trigger Select Matches.
Selecting a brace highlights the matching opening or closing brace.
If project search or file navigation does not behave as expected,
make sure a project folder has been opened. Drop a project folder onto
the editor, or open Show File Explorer with
Cmd + P and search for the folder name, for example
myproject/.