---
name: "cepl"
section: "1"
platform: "linux"
package: "cepl"
version: "32.1.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/cepl"
---

# cepl(1)

a C and C++ REPL

## NAME

cepl - a C and C++ REPL

## SYNOPSIS

```
cepl [-hpvw] [-a<out.s>] [-c<compiler>] [-e<code to evaluate>] [-l<library>] [-I<include directory>] [-L<library directory>] [-s<standard>] [-o<out.c>]
```

## DESCRIPTION

A readline C and C++ REPL with history, tab-completion, and undo.

## USAGE

The following environment variables are respected: **CFLAGS**, **LDFLAGS**, **LDLIBS**, and **LIBS**.

Command history is read from and saved to *~/.cepl\_history*.

To switch between C/C++ modes, specify your C or C++ compiler with *-c* such as:

    *cepl -cg++ -lboost\_filesystem -lboost\_context -lboost\_system*

to run in C++ mode linking against Boost and compiling with g++, or:

    *cepl -cclang -lelf*

to run in C mode linking against libelf and compiling with clang.

When the *-l* flag is passed, the library argument is scanned for symbols which are then added to readline completion.

### OPTIONS

Command line options:

**-a**, **--asm**		Name of file to output assembly to

**-c**, **--compiler**	Specify alternate compiler

**-e**, **--eval**	Evaluate argument as C/C++ code

**-h**, **--help**	Show help/usage information

**-o**, **--output**	Name of the file to output C/C++ code to

**-p**, **--parse**	Disable addition of dynamic library symbols to readline completion

**-s**, **--std**		Specify which C/C++ standard to use

**-v**, **--version**	Show version information

**-w**, **--warnings**	Compile with **-Wall** **-Wextra** **-pedantic** flags

**-l**			Link against specified library (flag can be repeated)

**-I**			Search directory for header files (flag can be repeated)

**-L**			Search directory for libraries (flag can be repeated)

### COMMANDS

Lines prefixed with a **;** are interpreted as commands (**\[\]** text is optional)

**;f\[unction\]**	Line is defined outside of main() (e.g. **;f #define SWAP2(X) ((((X) \>\> 8) & 0xff) \| (((X) & 0xff) \<\< 8))**)

**;h\[elp\]**		Show help

**;m\[an\]**		Show manpage for argument (e.g. **;m strpbrk**)

**;q\[uit\]**		Exit CEPL

**;r\[eset\]**		Reset CEPL to its initial program state

**;u\[ndo\]**		Incremental undo (can be repeated)

## NOTES

Please direct any bug/issue reports, as well as any feature requests, to \<*https://github.com/alyptik/cepl*\>

## AUTHORS

 •  . Joey Pabalinas \<*joeypabalinas@gmail.com.com*\>
