Terminal OS is a terminal game written in the Godot engine using .NET 8 and C#.
terminal-os-startup.mp4
| Windows | MacOS | Linux | Web | Android | iOS | |
|---|---|---|---|---|---|---|
| Supported | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
| Planned | - | - | - | ✓ | ✓ | ✓ |
- View all the commands using the
commandscommand - Get help about any command using the
helpcommand - See the contents of any directory using the
listcommand - List the hardware using the
listhardwarecommand - Get the current date and time using the
nowcommand- Get the current date using the
datecommand - Get the current time using the
timecommand
- Get the current date using the
- Save your game by using the
savecommand - Delete your save game by using the
deletesavecommand- Warning: This command will remove save game; it is not recoverable
- Exit the terminal using the
exitcommand - Contextual autocomplete for commands by pressing tab
- See previous autocomplete result using shift + tab
- Clear the terminal screen using the
clearscreencommand - Change the terminal colors using the
colorcommand
- Change your current directory using the
changecommand
- Get the current networking information using the
networkcommand- Use the
help networkcommand to get information about valid arguments
- Use the
- Test responses from any ip address using the
pingcommand- Use the
help pingcommand get information about valid arguments
- Use the
- View a file using the
viewcommand - Launch the file editor and edit a file using the
editcommand - Make a file in the current directory using the
makefilecommand - Delete a file in the current directory using the
deletefilecommand - Move a file from the current directory using the
movefilecommand
- Make a user with the
makeusercommand - Delete a user with the
deleteusercommand - View a user group with the
viewgroupcommand - Make a user group with the
makegroupcommand - Delete a user group with the
deletegroupcommand - Add a user to a group with the
addusertogroupcommand - Delete a user from a group with the
deleteuserfromgroupcommand
- View the permissions of a file or directory using the
viewpermissionscommand- Use the
help viewpermissionscommand to get information about permission bits
- Use the
- Change the permissions of a file or directory using the
changepermissionscommand- Use the
help changepermissionscommand to get information about permission bits
- Use the
- Make a directory in the current directory using the
makedirectorycommand - Delete a directory in the current directory using the
deletedirectorycommand- Use the
help deletedirectorycommand to get information about valid arguments
- Use the
- Move a directory from the current directory using the
movedirectorycommand
- Modify config values in real-time by using
editon any.conffile/system/config/color.confto create/remove colors/users/user/config/display.confto modify the CRT monitor effect or font size/users/user/config/user.confto modify volume
- All
publicandprotectedmethods and properties must be documented - Prefer using a
staticclasswhich can be unit tested to accomplish small chunks of functionality instead of making everything aNode - Each
classwithout a reference to Godot will have a unit test written for it in theTerminal.UnitTestsproject
- Add the command to the
UserCommandenuminUserCommand.cs - Add the output for
helpfor the new command by creating a new entry in theAllDefaultCommandsproperty inDirectoryConstants.cs- This will also create an executable for the command inside of
/system/programs/
- This will also create an executable for the command inside of
- Add the characters to trigger the command in the
EvaluateTokenmethod inUserCommandService.cs - Add the help routing in the
EvaluateHelpCommandmethod inUserCommandService.cs - Add the functionality of the command in the
RouteCommandmethod inUserInput.cs