You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Python daemon launches on first plugin use so shell startup stays fast.
Configuration
~/.config/quip/config:
history_size = 256
Key
Default
Description
history_size
128
Max history entries (16-4096)
Further Reading
DESIGN.md — design rationale: why no libreadline, how the
lazy Python daemon works, how builtin redirection saves/restores file
descriptors, the backslash-continuation approach, and the fork-exec model.
ARCHITECTURE.md — system structure: the REPL loop,
command dispatch chain (builtin → plugin → fork+exec), pipeline
implementation with N-child fork/pipe, plugin IPC protocol, signal flow,
and a worked data-flow example.
Key Points
From
Key Takeaway
DESIGN.md
Zero deps. The stripped binary is ~39K and starts in ~2ms — no libreadline, no libffi, no JSON library.
DESIGN.md
Lazy daemon. The Python plugin process forks on first use, not at shell startup. First plugin call is ~100ms slower; subsequent calls are fast.
DESIGN.md
Builtin redirection. Unlike bash, quip must save/restore fds around builtins (echo > file), since they run in the shell process rather than a child.
DESIGN.md
fork+exec. External commands use fork() + execvp() for full control over signals and fds in the child.
ARCHITECTURE.md
Three-stage dispatch. Every command goes through builtin → plugin → fork+exec in sequence. Redirection is applied at every stage.
ARCHITECTURE.md
Pipeline plumbing. N children on N sides of |, each with pipe() + dup2(). Builtins in pipelines run in child processes like external commands.