Share your repls and programming experiences

← Back to all posts
Nano DOS - A Python 3 "Operating System" by JayBFC and HarveyH
JayBFC (28)

Nano DOS is a simple Python 3 operating system running on a few handlers, such as command handlers and parsers, program handlers and even more. It has a few built in external programs.

Lead Developer: @JayBFC
Assistant Developer: @HarveyH

Get your custom program included in Nano DOS!
To get your own program included in Nano DOS' program list, simply use the following format and put the link in the comments of this post. The best custom program will be featured on this post as well as your name in the credits list which is still in the future to come.

def programname():
    #Code of the program here

class programname_class:
    def __init__(self):

    def run_programname(self):

This "operating system" does not have much features yet, but me and @HarveyH started development just an hour or two ago.

Thanks for viewing this post and don't forget to give Nano DOS a try. Please, please leave feedback in the comments to make Nano DOS the best it can be.

Stay awesome :)


this should get featured its amazing

JayBFC (28)

@EduFaus Thanks so much! I really appreciate your comment.
Probably not featured just yet, i would say maybe after a few more updates.

Thanks again, though!

HarperframeInc (333)

Awesome! Currently working on a program to add to Nano Dos!

Edit: I'm done! It was finished in less than 1 day, so don't expect it to work properly:

NaK is a...

Nak is a program to use to emulate situations in python. Nak supports code from python, LuaH, HScript, and customNaK (NaK). It also supports NosDos and HOS emulation.

Why should you use NaK?

NaK is a better solution because NaK does not require users to use a separate computer to run a python / LuaH / HScript program. NaK also has a debugging tool. NaK also supports CK drives, unlike other python program. NaK also supports emulation for NosDos and HOS.

Downsides of NaK:

customNaK is very experimental and some features have been failing during development. Also, CK drive support is limited, and does not successfully use custom NaK code.


1.1 Dec. 27, 2018
NaK supports HScript
1.2 Dec. 27, 2018 - 28, 2018
NaK now has COMPLETE support for emulation.
NaK reached over 500 lines of code.
Please message me if you want your Python3 script or OS to be in NaK. If you are using python 2.7, NaK will not support your code or OS. Please update it to the newest version of python.

Also need to mention that due to python support, LuaH, HScript and customNaK could be easily manipulated. It is safer to stay away from assigning values. THIS INCLUDES THE OPERATING SYSTEMS.

JayBFC (28)

@HarperframeInc Thank you very much for this post. I will be sure to check it out. It sounds awesome and I will definitely consider adding it to Nano DOS. You are the first person to submit a custom program, meaning you will definitely be credited some time after development in the operating system. Again, thanks for posting this!

HarveyH (159)

@HarperframeInc Thx for adding LuaH as a supported language!

HarveyH (159)

@HarperframeInc I've got a new programming language called HScript if you want to implement it in. Here is the link -->

HarperframeInc (333)

@HarveyH I'll try to!
EDIT: Finished!

HarperframeInc (333)

@JayBFC I can code other programs for you if you want.

HarveyH (159)

@HarperframeInc Thank you! I'll tell you if I've added anything to HScript, it's also on repl talk if you want to upvote it there.

HarveyH (159)

@HarperframeInc And yet again thx you for including the ability to simulate HOS!

JayBFC (28)

@HarperframeInc You may create as many programs as you would like, we don't mind. Thank you for such a large contribution to our project!

Zavexeon (1027)

Cool. :D

I did a ruby shell with similar functionality a long time ago but nobody cared. LOL

Anyways, this is cool, I'm planning on learning Python sometime.

JayBFC (28)

@Zavexeon Thanks! I guess all I can say is good luck 😀

olafh10 (35)

Try executing this_is_canada.

Seriously @JayBFC? xD

HarveyH (159)

@olafh10 @JayBFC! WE HAVE WITNESSES!!!! (now people are going to think that were are Canadian, Eh?)

JayBFC (28)

@olafh10 lmao its the only text art flag i could find

HarveyH (159)

@olafh10 Trust us, we would've added the national anthem of Canada if we could XD

olafh10 (35)

@HarveyH lmao That would have been amazing 😂

ApoorvAgrawal (40)

Hi, I have a program, but it consists of 12 files, so how would I send them to you?

hg0428 (169)

Needs a lot of work.
1. Add error measages
2. Add color
3. More commands (e.g. make-file, cd, pwd)
4. Make it seem more like a Terminal System
To get some ideas you can view my post:

JayBFC (28)

@hg0428 Hello, thanks for your response. I won't be working on this project anymore - I have moved on to some other things. I do still work with python but not as much as before.

Reading through your suggestions, these are all things that I would add, but I unfortunately don't update this anymore.


Can it run doom?

XavierDD (90)

Hello I would like if the Unif language could be added. Math is not yet functional, but I am trying to get it to work. I have the module here.

MartinJK5417 (0)

NanoDOS is COOL!!! It's my first time playing with a py based OS. I cannot wait to get to this level of mastery. One problem, is the OS supposed to break if I misspell the program? I misspelled stopwatch and it had to reload. Is this normal?

JayBFC (28)

@MartinJK5417 Its just that i forgot to add the 'program not found' error. Also, thanks!

Ryanand (34)

I made an OS out of python before it was easy! (it was simple and did it by myself!)

JayBFC (28)

@Ryanand Thats nice to hear. Operating systems are quite a big thing in python and are fun to make. There will always be someone who has made something similar in the python community.

olafh10 (35)

@Ryanand I'm working on my own at the moment

Kapil3sh (0)

could you tell me where did you write import the programs from ( sorry I am new to python and Coding)

JayBFC (28)

@Kapil3sh So what you need to do is create a class which calls a function to start the program. This class is in another python file. In the main program, import the .py file which contains the class. You can then call the class to start the program

HappyFakeboulde (223)

Also, make it so it doesn't cause a pythonic error message from having an invalid number of arguments -- use try/except and display the error message as part of the shell, in a more user-friendly way.

HappyFakeboulde (223)

Y'know, in real operating systems/shells, you don't have a command just for running things (unless the things to run are scripts), instead, you just have a command for that program.

JayBFC (28)

@HappyFakeboulde Thanks for your comment. I have seen this on some text based operating systems, but i just though i might make it a little different. I will definitely take both of your points into consideration and maybe include them in a future update.

DavidRose1 (9)

for the program handler(correct me if i'm wrong), you can use elif instead of multiple if's

JayBFC (28)

@DavidRose1 Thanks for replying. I am aware of this but I like to use multiple if's for some reason. Although elif would work well too, I prefer to keep it with multiple if statements.

I hope you like Nano DOS :)

DavidRose1 (9)

@JayBFC Oh, I guess I could understand that. Nano DOS is pretty neat. Keep up the good work!