Software agents "living" and acting in a real world software environment, such as an operating system, a network, or a database system, can carry out many tasks for humans. Metacognition is very important for humans. It guides people to select, evaluate, revise, and abandon cognitive tasks, goals, and strategies. Thus, metacognition plays an important role in human-like software agents. Metacognition includes metacognitive knowledge, metacognitive monitoring, and metacognitive regulation. Conscious Mattie (CMattie), "living" in a Unix machine, automatically reads and understands email concerning seminars (in natural language), and composes and distributes weekly seminar schedule announcements. CMattie implements Baar's global workspace theory of consciousness and some other cognitive theories concerning metacognition, episodic memory, emotions, and learning. Thus, the CMattie project has its cognitive science side (cognitive modeling) as well as its computer s...