Red cherry shrimps (RCS) are colourful, eat algae, and reproduce like guppies. They will never attack guppies, including fries. Male RCS are white and about 1cm, female RCS are bright red and twice as large. When a female red cherry shrimp gets pregnant, the area on the top of her head will turn yellow, these are her eggs. You shouldn't disturb pregnant RCS because they will drop their eggs is they feel threatened. Once these eggs are almost ready to hatch, the female RCS will lay the eggs and hold on to them using her tail, they will hatch in a few days. The baby shrimps are microscopic are will feed on algae.
Corydoras are peaceful fishes that will eat leftover food and, only if there's no leftovers left, algae. Corydoras will scavenge the bottom, and they will never hurt a guppy. Corydoras do not have scales, therefore, their skin can get burned by most medication. Always use half of the recommended dosage of medication on corydoras. Salt will injure corydoras as well.
Platies are peaceful livebearing fishes. They are active fishes that reproduce almost as fast as guppies. Platies, like guppies, have been selectively bred in various strains such as sunset, mickey mouse, etc. However, the colours of platies are limited to red, orange, yellow, and black.
Mollies are also peaceful livebearing fishes, just like platies. They will eat algae on the glass of the tank. They also require a bit of salt (1 tsp per 5 gallons). There are different species of mollies that varie slightly. The most common ones are the balloon molly, black molly, and sailfin molly.
Neon tetras are colourful little fishes that will not harm guppies. They always stays in shoals (groups), so they must be kept in at least groups of five. They need water that is slightly more acidic than guppies.
Danios are peaceful but fast. Although they won't intentionally injure guppies, guppies won't be able to outrun them if they start chasing guppies.
Plecos will eat algae and leftover food. Most plecos can grow fairly large (about 30cm). They rarely (almost never) grab a guppy as a snack if it gets hungry enough.
Male swordtails are aggressive towards each other, but swordtails are fine with guppies (1 males per tank). You should have a tight fitting lid on your aquarium because swordtails can easily jump out of an uncovered aquarium.
Angelfishes are generally peaceful with adult guppies. However, some larger angelfishes might attack guppies. Angelfishes need a tall tank, unlike guppies, which prefer a long tank.
Barbs will occasionally nip guppies' fins, but they aren't able to kill or cause serious damage to guppies.
Although many people say that bettas will rip apart guppies within seconds, it depends on the betta's personality. Just like humans, some bettas are more violent than others. You should only keep one betta per tank, male or female.