This repository has been completely reset for legal reasons:
- All commits have been cleaned up and rewritten.
- There is no trace of old challenge records left in the history.
- History rewritten to zero
- Each commit has been purged of all references to old challenges.
- The history now contains only authorised code.
- Branches and tags
- Only the main branch remains
- All other branches have been deleted.
The heart of the project was not the challenges but the software itself. You have to see it as a real return to the source, and a chance to do something great.
The general operation remains unchanged:
- Clone the repository:
git clone https://github.com/c-bertran/codeshell.git
cd codeshell
- Follow the detailed tutorial to generate new challenges from scratch.
- Make a pull request to offer it to everyone!
- Lightweight history focused on current content
- No dependency on old content; we start from a fully mastered base
- Clear foundations for developing new features
If you have any questions or suggestions, please leave a message. Enjoy your use and development!
- Challenges
- How to use
- Config codeshell
- Create or install custom challenge
- Contributor
- Disclaimer
- License
CodeShell provides a comprehensive practice environment for coding challenges:
- Multiple exercises available per level, chosen randomly
- Exponential waiting times for correction simulation
- Git-based submission system for your solutions
- Automated code review checking for forbidden functions and memory leaks
- Trace functionality when exercises allow it
- Program comparison with expected outputs
Some enhanced features have been added:
- Multilingual interface (currently available in
French
andEnglish
) - Two special modes:
Infinite
: Disables the timer for unlimited practice timeDoom
: Advanced difficulty mode - if you fail, the entire workspace is reset along with git history
CodeShell is designed to work with custom challenges. After the project reset, no specific challenges are included by default.
You can:
- Create your own challenges using the built-in tools
- Install community-created challenges
- Contribute new challenges to the community
Visit the Create or install custom challenge section to get started!
Launch your favorite command prompt, and simply run the program:
./codeshell
If a rights problem occurs during the execution, make the following command:
chmod +x codeshell && ./codeshell
Args | Definition |
---|---|
-C or --custom | Create the folder that can contain the challenges created by other people, and also the configuration file |
-N or --new | Launch the cli to create the boilerplate for a new challenge |
CodeShell is dependent on several external software. Under Linux, the installation can be done by the software itself at startup. However under MacOS you will have to install them yourself. Here is the list with their versions to help you
Software | Version |
---|---|
bash | >= 4.0 |
clang | >= 13.0 |
git | >= 2.20 |
valgrind | >= 3.10 |
You can configure the behavior of codeshell via the config.json
file in the challenges folder.
It has the following options:
{
"checkUpdate": true,
"checkLib": true,
"signature": true,
"challenge": "my_challenge",
"lang": "en_US",
"options": {
"doom": false,
"infinite": false,
}
}
- checkUpdate
boolean
: Checks if a new version is available - checkLib
boolean
: Checks if the necessary libraries are installed - signature
boolean
: Print the application's logo and signature - challenge
string
: Id of the challenge - lang
string
: Selected lang ('en_US', 'fr_FR') - options.doom
boolean
: All work and git is reset if grademe failed - options.infinite
boolean
: There is no time limit anymore
Starting with version 0.3.0
codeshell allows you to create your own challenges in a simple and concise way.
If you want to share your challenge, don't hesitate to open a issue with the challenge label so that it can be added to a list.
- Create a
challenges
directory in the root of the application, or launch./codeshell -C
- Paste custom challenge in this directory
- Start application, if challenge is correct, it will appear in the selection list
You can create custom challenges by adding new exercises: Contributing
Thanks to you and your help, codeshell is getting better every day. I would like to thank those people who gave their time 🧡
CodeShell is an independent coding practice tool. All challenges and exercises are community-created and original content. If you find any issues or have suggestions for improvements, don't hesitate to open an issue.
This project has been completely rebranded and cleaned of any proprietary content. Any forks created before 07/04/2025 may contain outdated content that is not endorsed or maintained by this project.
CodeShell Copyright (C) 2022 - ... Clément Bertrand
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.