python Repeat the Sequence
Using __all__ = [] is mostly useless in the main program, and should probably be removed.

This is hard to read:
MSG_CORRECT = '\033[32mCorrect!\033[0m'
MSG_INCORRECT = '\033[31mIncorrect\033[0m'

This is much easier:
from colorama import Fore

MSG_CORRECT = Fore.GREEN + 'Correct!' + Fore.RESET
MSG_INCORRECT = Fore.RED + 'Incorrect' + Fore.RESET

Note: Style.RESET_ALL would be an exact translation of \033[0m.  Adjust as desired.

You could pull your loop body out into separate functions:
def generate_random_sequence(length: int, characters: str) -&gt; str:
    &quot;&quot;&quot;
    Generate a random sequence of characters.
    &quot;&quot;&quot;

    return ''.join(random.choices(characters, k=length))

def show_sequence(sequence: str, seconds_per_character: float) -&gt; None:
    &quot;&quot;&quot;
    Display a sequence to the user, one character at a time, on one line,
    using the given delay between characters.

    After the last character has been shown, clear the line.
    &quot;&quot;&quot;

    for i, ch in enumerate(sequence):
        print(' ' * i, ch, end='\r')
        time.sleep(seconds_per_character)

    print(' ' * len(sequence), ' ')

I've done several things here:

type-hints and a &quot;&quot;&quot;docstring&quot;&quot;&quot; have been added
sequence is computed in one step
removed the s variable, since it can be directly computed as ' ' * i
looped directly over the sequence, using enumerate to keep track of the index.
speed, length and characters are all arguments to the functions, so the challenge could become programmatically harder (ie, faster or longer)


With the above function, the main loop becomes simpler:
def main():
    k = 4
    lines = r'|\-/'
    seconds = 1

    init()

    while True:
        sequence = generate_random_sequence(k, lines)
        show_sequence(sequence, seconds)

        guess = input(MSG_ASK)
        if guess == sequence:
            print(MSG_CORRECT)
        else:
            print(MSG_INCORRECT)
            break

    deinit()