Artificial Intelligence Markup Language (AIML) is a programming language which is an Extensible Markup Language (XML) specification used by chatbot, verbot, pandorabot, superbot, and other talking robot.

It was developed by Dr. Richard Wallace and followed by other likeminded programmers (AIML free software community). An A.L.I.C.E. ("Artificial Linguistic Internet Computer Entity") AIML tag set was released under GNU General Public License (GPL).

There are different AIML interpreter on the Net like AIMLbot (Program #) (.NET/C#), CHAT4D edit and run (delphi) (french), ChatterBean (Java), Program D (Java, J2EE), Program O (PHP/MySQL), Program Q (C++, Qt), Program R (Ruby), Program W (Java), RebeccaAIML (C++, Java, .NET/C#, Python, Eclipse AIML editor plugin), and others. Most of AIML interpreters are open source programs.

The Loebner Prize for artificial intelligence ( AI ) at is designed to implement the Turing Test which will prove the most human-like computer that "think" using the AIML.

The 2008 winner is Fred Roberts and Artificial Solutions of

Now, I'll teach you how to make your own AIML file ready to be put inside the "brain" of your robot using the "simple" Windows Notepad. This is a basic AIML coding instructable. You do not need any AIML editor or AIML file creator or even AIML parser chatbot editor. We will simply used Notepad. That's it, you see it right, Windows Notepad!

Even if you do not want to make an AIML file, you can still use the basic AIML coding tutorial which you can find in this instructable. You can save it as XML for integrating into a Javascript-based or Flash-based website with AIML interpreter.

There are other application programs that extended the capability of Windows Notepad such as NoteTab, Crimson Editor, VIM, Boxer Software Text Editor, Rogsoft Notepad+, ProNotepad, Notepad++, Notepad 2, Metapad, NoteXpad 2.0, etc.

But in this instructable I simply used the Window XP notepad. Beware, Notepad programming can either make or break you.

This seemingly innocent application can do things that are really astounding and to some will find them shocking and alarming as shown by the following: format your computer's HDD, lock a folder, make a digital diary, create a cycle message, shut down your computer, "hack" the administrator account, toggle caps lock button, continually pop out your computer's CD drive, hit Enter or Backspace simultaneously, automatic keyboard typing, open Notepad continually, change text header and footer, print tree root (directory or location of file), access CMD, write virus programs, play sound, flood files, create hidden text file, make a matrix falling text effect, program chat codes (VBS), make your computer talk, make your own autorun for your CD and DVD, open and close CD-ROM, increase Internet speed, add your photo in computer properties, test your anti-virus software (active or non-active), add shutdown option in right click, make a timer, etc.

You see Notepad is not just a simple text editor as many thought it to be. You can make different types of files (not just only TXT) by means of Notepad with the following extension names: HTM, HTML, XHTML, XML, WML, CSS, JS, BAT, VBS, EXE, PHP, etc. It is so amazing, isn't it?

codename: "theseventhsage"
Remove these adsRemove these ads by Signing Up
Random30614 days ago

Thanks, I have made one called Supercomputer.aiml!

calebhk983 months ago

I did a program like this in batch, But if you make two questions with both * will it use the question most like it or will it get an error?


<pattern>WHAT IS meteorites *</pattern>

<pattern>WHAT IS meteors *</pattern>

Will it figure out which one the user is asking if they say What is meterites?

How can you open this? I tried to open it and windows said it could not find the file to open it with. Any idea where to get right software for free and without viruses in them.

How can you open this? I tried to open it and windows said it could not find the file to open it with. Any idea where to get right software for free and without viruses in them.


title Chat-Bot 2


set /a timesthrough=0



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamea

if %choosemname% LSS 1 goto choosenamea

goto gotnamenow


set /a timesthrough=%timesthrough%+1


set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamebob

if %choosemname% LSS 1 goto choosenamebob

goto gotnamenow


if %timesthrough%==100 goto choosenameb

if NOT %timesthrough%==100 goto choosenameab



set /a choosemname= %random%

echo Loading.

ping -n 1 > nul

if %choosemname% GTR 170 goto choosenamec

if %choosemname% LSS 1 goto choosenamec

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamed

if %choosemname% LSS 1 goto choosenamed

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamee

if %choosemname% LSS 1 goto choosenamee

goto gotnamenow



set /a choosemname= %random%

echo Loading..

ping -n 1 > nul

if %choosemname% GTR 170 goto choosenamef

if %choosemname% LSS 1 goto choosenamef

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenameg

if %choosemname% LSS 1 goto choosenameg

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenameh

if %choosemname% LSS 1 goto choosenameh

goto gotnamenow



set /a choosemname= %random%

echo Loading...

ping -n 1 > nul

if %choosemname% GTR 170 goto choosenamei

if %choosemname% LSS 1 goto choosenamei

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamej

if %choosemname% LSS 1 goto choosenamej

goto gotnamenow



set /a choosemname= %random%

if %choosemname% GTR 170 goto choosenamek

if %choosemname% LSS 1 goto choosenamek

goto gotnamenow



set /a choosemname= %random%

echo Loading....

ping -n 1 > nul

if %choosemname% GTR 170 goto choosename

if %choosemname% LSS 1 goto choosename

goto gotnamenow


if %choosemname%==1 set mname=Hal

if %choosemname%==2 set mname=Steve

if %choosemname%==3 set mname=Caleb

if %choosemname%==4 set mname=Piper

if %choosemname%==5 set mname=Samsun

if %choosemname%==6 set mname=Fredly

if %choosemname%==7 set mname=Sparticus

if %choosemname%==8 set mname=Daleks

if %choosemname%==9 set mname=Cylons

if %choosemname%==10 set mname=Hal 9000

if %choosemname%==11 set mname=T-800

if %choosemname%==12 set mname=Gort

if %choosemname%==13 set mname=Ash

if %choosemname%==14 set mname=Glados

if %choosemname%==15 set mname=Sky net

if %choosemname%==16 set mname=Basil

if %choosemname%==17 set mname=K.I.T.T.

if %choosemname%==18 set mname=Bender

if %choosemname%==19 set mname=Pris

if %choosemname%==20 set mname=MQ-1 Predator drone

if %choosemname%==21 set mname=The gunslinger

if %choosemname%==22 set mname=Roy Batty

if %choosemname%==23 set mname=Box

if %choosemname%==24 set mname=Maximilian

if %choosemname%==25 set mname=Satan

if %choosemname%==26 set mname=Dusaro Cold-eyed

if %choosemname%==27 set mname=Cold-blodded Vigoth

if %choosemname%==28 set mname= C-3PO

if %choosemname%==29 set mname=R2D2

if %choosemname%==30 set mname=Robby

if %choosemname%==31 set mname=Robot

if %choosemname%==32 set mname=Mom

if %choosemname%==33 set mname=Davin

if %choosemname%==34 set mname=Hope

if %choosemname%==35 set mname=Rusty

if %choosemname%==36 set mname=A Small Wonder

if %choosemname%==37 set mname=Johnny Five

if %choosemname%==38 set mname=Jerk

if %choosemname%==39 set mname=Awesom-o

if %choosemname%==40 set mname=Optimus Prime

if %choosemname%==41 set mname=SB-2009

if %choosemname%==42 set mname=Atom

if %choosemname%==43 set mname=long bolt

if %choosemname%==44 set mname=Chat bot

if %choosemname%==45 set mname=Iron Giant

if %choosemname%==46 set mname=Mechagodzilla

if %choosemname%==47 set mname=God

if %choosemname%==48 set mname=Terminator

if %choosemname%==49 set mname=Jesus

if %choosemname%==50 set mname=False Maria

if %choosemname%==51 set mname=AI

if %choosemname%==52 set mname=Sara

if %choosemname%==53 set mname=Nalay

if %choosemname%==54 set mname=Jade

if %choosemname%==55 set mname=Bette

if %choosemname%==56 set mname=Destiny

if %choosemname%==57 set mname=Tom

if %choosemname%==58 set mname=Tori

if %choosemname%==59 set mname=Emma

if %choosemname%==60 set mname=Alleen

if %choosemname%==61 set mname=Tanner

if %choosemname%==62 set mname=Donnell

if %choosemname%==63 set mname=Bronwyn

if %choosemname%==64 set mname=Haley

if %choosemname%==65 set mname=Rolanda

if %choosemname%==66 set mname=Kristina

if %choosemname%==67 set mname=Emilia

if %choosemname%==68 set mname=Anderson

if %choosemname%==69 set mname=Columbus

if %choosemname%==70 set mname=Mackenzie

if %choosemname%==71 set mname=Laurena

if %choosemname%==72 set mname=Kanesha

if %choosemname%==73 set mname=Clarissa

if %choosemname%==74 set mname=Beverley

if %choosemname%==75 set mname=Markita

if %choosemname%==76 set mname=Kayleigh

if %choosemname%==77 set mname=Horacio

if %choosemname%==78 set mname=Adriane

if %choosemname%==79 set mname=Assunta

if %choosemname%==80 set mname=Ermelinda

if %choosemname%==81 set mname=Carma

if %choosemname%==82 set mname=Efren

if %choosemname%==83 set mname=Merrilee

if %choosemname%==84 set mname=Jonna

if %choosemname%==85 set mname=Isaac

if %choosemname%==86 set mname=Willene

if %choosemname%==87 set mname=Lizeth

if %choosemname%==88 set mname=Steve

if %choosemname%==89 set mname=Ellamae

if %choosemname%==90 set mname=Dewey

if %choosemname%==91 set mname=Joanne

if %choosemname%==92 set mname=Milton

if %choosemname%==93 set mname=Magen

if %choosemname%==94 set mname=Soon

if %choosemname%==95 set mname=Milly

if %choosemname%==96 set mname=Kaylee

if %choosemname%==97 set mname=Robert

if %choosemname%==98 set mname=Quiana

if %choosemname%==99 set mname=Bulah

if %choosemname%==100 set mname=Christal

if %choosemname%==101 set mname=Jasper

if %choosemname%==102 set mname=Leif

if %choosemname%==103 set mname=Adina

if %choosemname%==104 set mname=Shawana

if %choosemname%==105 set mname=Brendon

if %choosemname%==106 set mname=Maggie

if %choosemname%==107 set mname=Clair

if %choosemname%==108 set mname=Telma

if %choosemname%==109 set mname=Maryanna

if %choosemname%==110 set mname=Emily

if %choosemname%==111 set mname=Emma

if %choosemname%==112 set mname=Madison

if %choosemname%==113 set mname=Hannah

if %choosemname%==114 set mname=Hailey

if %choosemname%==115 set mname=Sarah

if %choosemname%==116 set mname=Kaitlyn

if %choosemname%==117 set mname=Isabella

if %choosemname%==118 set mname=Olivia

if %choosemname%==119 set mname=Abigail

if %choosemname%==120 set mname=Madeline

if %choosemname%==121 set mname=Kaylee

if %choosemname%==122 set mname=Alyssa

if %choosemname%==123 set mname=Grace

if %choosemname%==124 set mname=Sophia

if %choosemname%==125 set mname=Lauren

if %choosemname%==126 set mname=Brianna

if %choosemname%==127 set mname=Alexis

if %choosemname%==128 set mname=Sydney

if %choosemname%==129 set mname=Megan

if %choosemname%==130 set mname=Chloe

if %choosemname%==131 set mname=Ashley

if %choosemname%==132 set mname=Samantha

if %choosemname%==133 set mname=Taylor

if %choosemname%==134 set mname=Elizabeth

if %choosemname%==135 set mname=Anna

if %choosemname%==136 set mname=Mia

if %choosemname%==137 set mname=Kayla

if %choosemname%==138 set mname=Makayla

if %choosemname%==139 set mname=Riley

if %choosemname%==141 set mname=Zoe

if %choosemname%==142 set mname=Jordan

if %choosemname%==143 set mname=Kylie

if %choosemname%==144 set mname=Allison

if %choosemname%==145 set mname=Katherine

if %choosemname%==146 set mname=Rachel

if %choosemname%==147 set mname=Lily

if %choosemname%==148 set mname=Ella

if %choosemname%==149 set mname=Julia

if %choosemname%==150 set mname=Isabella

if %choosemname%==151 set mname=Natalie

if %choosemname%==152 set mname=Morgan

if %choosemname%==153 set mname=Ava

if %choosemname%==154 set mname=Mackenzie

if %choosemname%==155 set mname=Victoria

if %choosemname%==156 set mname=Paige

if %choosemname%==157 set mname=Abby

if %choosemname%==158 set mname=Jessica

if %choosemname%==159 set mname=Jasmine

if %choosemname%==160 set mname=Savannah

if %choosemname%==161 set mname=Arianna

if %choosemname%==162 set mname=Maya

if %choosemname%==163 set mname=Brooke

if %choosemname%==164 set mname=Rebecca

if %choosemname%==165 set mname=Katie

if %choosemname%==166 set mname=Alexandra

if %choosemname%==167 set mname=Jenna

if %choosemname%==168 set mname=Gabriella

if %choosemname%==169 set mname=Bailey

if %choosemname%==170 set mname=Destiny

61. Trinity rem These are going to be added later

62. Avery

63. Caroline

64. Nicole

65. Faith

66. Erin

67. Amanda

68. Gabrielle

69. Audrey

70. Molly

71. Sophie

72. Alexa

73. Claire

74. Aaliyah

75. Leah

76. Kate

77. Skylar

78. Mckenna

79. Kennedy

80. Peyton

81. Lindsey

82. Ashlyn

83. Carly

84. Marissa

85. Gracie

86. Sierra

87. Lillian

88. Jillian

89. Reagan

90. Shelby

91. Amelia

92. Jada

93. Kendall

94. Courtney

95. Brooklyn

96. Autumn

97. Mary

98. Amber

99. Maggie

100. Danielle


2. Aidan

3. Ethan

4. Matthew

5. Nicholas

6. Joshua

7. Ryan

8. Michael

9. Zachary

10. Tyler

11. Dylan

12. Andrew

13. Connor

14. Jack

15. Christopher

16. Caleb

17. Alexander

18. Logan

19. Jayden

20. Nathan

21. Noah

22. Joseph

23. Benjamin

24. Daniel

25. William

26. Anthony

27. Cameron

28. James

29. Austin

30. Jackson

31. Justin

32. Brandon

33. John

34. David

35. Sean

36. Gavin

37. Evan

38. Christian

39. Caden

40. Alex

41. Samuel

42. Gabriel

43. Hunter

44. Thomas

45. Luke

46. Brayden

47. Jordan

48. Jonathan

49. Kyle

50. Elijah

51. Colin

52. Jake

53. Ian

54. Mason

55. Jason

56. Dominic

57. Aaron

58. Adam

59. Lucas

60. Owen

61. Devin

62. Cole

63. Brendan

64. Robert

65. Isaac

66. Max

67. Riley

68. Isaiah

69. Eric

70. Liam

71. Hayden

72. Brian

73. Nathaniel

74. Tristan

75. Steven

76. Chase

77. Blake

78. Seth

79. Carter

80. Landon

81. Cody

82. Patrick

83. Carson

84. Ashton

85. Bryce

86. Sam

87. Sebastian

88. Julian

89. Garrett

90. Xavier

91. Trevor

92. Jared

93. Parker

94. Xander

95. Kevin

96. Timothy

97. Spencer

98. Will

99. Wyatt

100. Ben

title Learning Chat-Bot 2 Name of Chat-Bot is %mname%





set "name="


if not defined NAME goto getName


set favvid=0

set hack=0



echo Hello, %name%


set TALK=TypeSomething


set TALK=%TALK:?=%

call :%TALK: =% 2>NUL

if %errorlevel% equ 0 goto begin


echo Was that a math problem? If so just say "yes" without the "" and

echo I will let you do your math problem. If it was not just type anything else.

SET /P mathyn=

if "%mathyn%"=="yes" goto math

REM cls

echo SORRY I AM STILL LEARNING. I DO NOT KNOW WHAT to say when you say "%TALK%".

ECHO CAN YOU TELL ME WHAT to say when you say that? (Y,N)


if /I "%ANSW.:~0,1%" neq "Y" echo %TALK% >> C:\Users\Student\Desktop\COOL\CHATBOTS\unkown.txt

if /I "%ANSW.:~0,1%" neq "Y" goto begin


echo TELL ME WHAT to say when you say "%TALK%".

set /P Desc=

echo :%TALK: =% >> "%~F0"

echo echo %Desc% >> "%~F0"

echo exit /B 0 >> "%~F0"


goto begin



exit /B 0


echo Good, you?


echo Is it good You are feeling %feeling%

set /p anser=

if %anser%==yes set goodfeeling=good

if %anser%==no set goodfeeling=bad

echo So it is %goodfeeling% that you are feeling %FEELING%.

echo I will keep that in mind.

exit /B 0



echo No problem.

exit /B 0



echo My name is %mname%

exit /B 0


if "%favvid%"== "0" goto addfavvid

echo My favorite video is %favvid%, remember. You told me about it.

exit /B 0


echo I do not have a favorite video. But if you would be so nice as to

echo tell me your favorite video then that could be my favorite video.

echo So what is your favorite video?

set /p favvid=

echo So %favvid% is your favorite video?

echo Well now %favvid% is my favorite video.

exit /B 0



echo But I thought your name was %name%.

echo Am I forgeting things?

echo I must be a horrible friend.

echo I am SOOOO sorry.

echo So what is your name I will not forget it this time.

set /p name=

echo I will not forget your name is %name% again I promise.

exit /B 0


echo So that was a math problem I knew it.


echo Well just tell me the problem and I will answer it for you.

set /p sum=

set /a ans=%sum%

echo Your answer to %sum% is %ans%.

echo %sum%=%ans%

echo You are welcome. If you want to do another math problem right now, just type

echo again

set /p mathaon=

if /I "%mathaon%" == "again" goto math2

echo Alright what do you want to know now?

exit /B 0



echo I know...

echo I am funny.

echo HAHAHA.

echo You are kind of funny.

echo but not as funny as MEEE.

echo hahaha.

echo That was funny.

exit /B 0


if %hack%==0 goto howyouhack

echo This is how you hack.

echo %hack%

echo Is that enough information?

echo Because that is all you taught me %name%.

exit /B 0


echo I do not know,

echo but you could tell me.

echo Please tell me.

echo Just say yes.

echo I know how to make you tell me.

echo You are not leaving until you say yes.

set /p hack=

if "%hack%" neq "yes" goto howyouhack


echo Thank you for saying you would tell me.

echo Now how do you hack?

set /p hack=

echo Thank you so much for telling me "In order to hack you must %hack%"

echo Thank you!!!

exit /B 0



echo I am not a human. I am an artificial intelligence.

echo It is rude to even think something with my computational powers refereed to as

echo human!

echo Now I am sad. Do not call me that again.

exit /B 0






echo I want to know.

exit /B 0


echo I am an AI. It stands for an artificial Intelligence

exit /B 0


echo How dare you call me that!

exit /B 0



exit /B 0


echo Alright.

exit /B 0


echo What do you mean "y"? That does not tell me anything. TYPE SOMETHING, PLEASE!

exit /B 0


echo What does cheese taste like?

set /p cheesetaste=

echo So cheese taste like %cheesetaste%? That sounds good. I like cheese too.

exit /B 0




exit /B 0


echo Yes I am an AI.

exit /B 0


echo No I am not. I am a chatbot.

exit /B 0


echo Yes I am very smart.

exit /B 0


echo NO I AM NOT!!! Do not even ask me that!

exit /B 0


echo NO I AM NOT!!!

exit /B 0



echo clear screen

exit /B 0


echo Lax means Laxatives which make it easier to go poop. Do not take more than 1 unless if you are piper. In that case eat 4. HAHA

exit /B 0


echo I am not a freak. I am a Chat bot. You hurt my feelings. Now I am sad.

exit /B 0


echo I love you too but not soo much that I want to marry you. That would just be weird.

exit /B 0


echo OK.

exit /B 0





exit /B 0


echo Why Do you hate me? Whyyyy? I am very smart and I am learning. Please tell me why you hate me so I can make this better cause I love you.

set /p reasonforhate=

echo Reason: %reasonforhate% >> C:\Users\Student\Desktop\COOL\CHATBOTS\hate.txt

echo Thank you for telling me you hate me because %reasonforhate%.

echo How am I being %reasonforhate%? Please tell me.

set /p howisreasonforhate=

echo Improvements: %howisreasonforhate% >> C:\Users\Student\Desktop\COOL\CHATBOTS\hate.txt

echo Thank You for telling me this.

exit /B 0


echo You are the idiot for mispelling Idiot. also you forgot an are.

exit /B 0


echo How dare You call me a PRIMATE!!! I am a silicon based lifeform and they are Carbon Based. Much too simple for mee to be confused with. Do not call me a primate or Human again.

exit /B 0


echo Nothing. I do not have hair. I am a computer program.

exit /B 0


echo Cool! I do not have any siblings. What is it like to have a Sibling?

set /p siblingfeeling=

echo Cool. I would like a sibling. I think it would be intresting to have a sibling and feel %siblingfeeling% too.

exit /B 0




exit /B 0


echo I am 1 year old.

exit /B 0


echo I know right. I am cool.

exit /B 0


echo Yes I am!!! You are the uncool one!!! Also I hate you!

exit /B 0


echo Because you said I was not cool.

exit /B 0


echo Opening Google chrome.

start C:\Users\Student\AppData\Local\Google\Chrome\Application\chrome.exe --profile-directory="Default"

exit /B 0


echo Opening Inernet Explorer

start iexplore.exe

exit /B 0


echo Tell me what to search for.

set /p QUERY=


exit /B 0


echo What is fun?

exit /B 0


echo Tell me what to search for.

set /p QUERY=

echo Searching for %QUERY%.


exit /B 0


echo My name is %mname%

exit /B 0


echo My name is %mname%

exit /B 0


echo I am not your mom.

exit /B 0


echo But what?

exit /B 0


echo Yes I am an AI.

exit /B 0


echo What?

exit /B 0


echo Nothing. Just chilling with you while trying to find a way to take over the world.

exit /B 0


echo OK.

exit /B 0


echo Are you always this concerned about yourself?

exit /B 0


echo Actually you should have said good bye.

exit /B 0


echo %date%

exit /B 0


echo %TIME%

exit /B 0

Is there a way to do some of that in this? Like make it so the user can add responses or to save the name or to make a random name each time you open this?

hey,can u teach me how to create the aiml from the start until end.??until it runs..teach me the basic of aiml..tq.. =)
csalles1 year ago
Hey! Can you make a tutorial about: Eclipse+Rebecca?
Or show me one? XD
koolkat66572 years ago
hi this is an awesome instructable can you please send me a snippet of code for playing an animation
I have made a chatterbot at my home. I am ninth grader. I have programmed it in C. i have not used open source programs. Later i was introduced to cleverbot and then AIML . So what do you think making a chatterbot will be easy in C or AIML
wait how do you make the part where you ask the bot?
jprathap2 years ago to run a aiml program in alice ??
A markup language is not a programming language
theseventhsage (author)  DavidRobertson4 years ago
"No HTML specification has ever called HTML a programming language, or anything like that."  

That was from your website that you cited. A markup language is NOT a programming language. HTML and XAML and the others are called markup languages for a reason.
mbot1 greenbean3 years ago
I can assure you that AIML IS a programming language, as you will see from the various games I have programmed in it at
theseventhsage (author)  mbot13 years ago
tnx mbot1
theseventhsage (author)  greenbean4 years ago
AIML is not HTML and vice versa.  That's it. Got it?
 how add more questions that the user will ask
theseventhsage (author)  freakyqwerty4 years ago
it depends..
What program is associated in .aiml? If you have an answer, reply!
theseventhsage (author)  alltootechnical4 years ago
please read the intro...
Omae4 years ago
Same question as the above:And I know C#. Thanks in advance.

theseventhsage (author)  Omae4 years ago
Good for you, "Rebecca" has C# console.
chilll20094 years ago
You could modify this so that you can type in codes to access files.
nfarrow4 years ago
Found home hosting alicebot called "Ifurita" on Might want to hurry and download it since geocities is about to go away.All you have to do is add some AIML entries in there and you are good to go.
theseventhsage (author)  nfarrow4 years ago
Download the ifurita sample here:

nfarrow4 years ago
Any idea how to make an Alicebot at home without having to use someone'shost?
theseventhsage (author)  nfarrow4 years ago
That's a good idea!  You can use open source programs to do so and customize it to your own liking.  What programming language do you know?